diff --git a/.DS_Store b/.DS_Store index 934d8f4..0572934 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.github/scripts/import-certificate.sh b/.github/scripts/import-certificate.sh new file mode 100644 index 0000000..4525860 --- /dev/null +++ b/.github/scripts/import-certificate.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -euo pipefail + +security create-keychain -p "" build.keychain +security list-keychains -s build.keychain +security default-keychain -s build.keychain +security unlock-keychain -p "" build.keychain +security set-keychain-settings +security import <(echo $SIGNING_CERTIFICATE_P12_DATA | base64 --decode) \ + -f pkcs12 \ + -k build.keychain \ + -P $SIGNING_CERTIFICATE_PASSWORD \ + -T /usr/bin/codesign +security set-key-partition-list -S apple-tool:,apple: -s -k "" build.keychain diff --git a/.github/scripts/import-profile.sh b/.github/scripts/import-profile.sh new file mode 100644 index 0000000..1267d71 --- /dev/null +++ b/.github/scripts/import-profile.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set -euo pipefail + +mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles +echo "$PROVISIONING_PROFILE_DATA" | base64 --decode > ~/Library/MobileDevice/Provisioning\ Profiles/profile.mobileprovision diff --git a/.github/scripts/set-env-from-xcodeproj.sh b/.github/scripts/set-env-from-xcodeproj.sh new file mode 100644 index 0000000..78f9ce7 --- /dev/null +++ b/.github/scripts/set-env-from-xcodeproj.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +set -euo pipefail + +SCHEME="$(xcodebuild -list -json | jq -r '.project.schemes[0]')" +PRODUCT_NAME="$(xcodebuild -scheme "$SCHEME" -showBuildSettings | grep " PRODUCT_NAME " | sed "s/[ ]*PRODUCT_NAME = //")" +echo "::set-env name=PRODUCT_NAME::$PRODUCT_NAME" diff --git a/.github/workflows/ios-appstore.yml b/.github/workflows/ios-appstore.yml new file mode 100644 index 0000000..aa5ee41 --- /dev/null +++ b/.github/workflows/ios-appstore.yml @@ -0,0 +1,69 @@ +name: Build iOS App and Deploy + +on: + push: + branches: + - main + - develop + pull_request: + +jobs: + deploy: + runs-on: macos-latest + + steps: + - name: Checkout project + uses: actions/checkout@v2 + + - name: CHMOD +x scripts + run: | + chmod +x .github/scripts/*.sh + + - name: Open ios folder + run: | + cd ios + + - name: Set environment variables from project settings + run: | + exec .github/scripts/set-env-from-xcodeproj.sh + + - name: Import signing certificate + env: + SIGNING_CERTIFICATE_P12_DATA: ${{ secrets.P12_BASE64 }} + SIGNING_CERTIFICATE_PASSWORD: ${{ secrets.CERTIFICATE_PASSWORD }} + run: | + exec .github/scripts/import-certificate.sh + + - name: Import provisioning profile + env: + PROVISIONING_PROFILE_DATA: ${{ secrets.MOBILEPROVISION_BASE64 }} + run: | + exec .github/scripts/import-profile.sh + + - name: Build app + run: | + fastlane run build_app + + - name: Upload build artifacts + uses: actions/upload-artifact@v2 + with: + name: build.log + path: ~/Library/Logs/gym/*.log + + - name: Upload release assets + if: startsWith(github.ref, 'refs/tags/v') + uses: softprops/action-gh-release@v1 + with: + files: | + ${{ env.PRODUCT_NAME }}.ipa + ${{ env.PRODUCT_NAME }}.app.dSYM.zip + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Upload app to App Store Connect + if: startsWith(github.ref, 'refs/tags/v') + env: + APP_STORE_CONNECT_USERNAME: ${{ secrets.APP_STORE_CONNECT_USERNAME }} + APP_STORE_CONNECT_PASSWORD: ${{ secrets.APP_STORE_CONNECT_PASSWORD }} + run: | + xcrun altool --upload-app -t ios -f "$PRODUCT_NAME.ipa" -u "$APP_STORE_CONNECT_USERNAME" -p "$APP_STORE_CONNECT_PASSWORD" diff --git a/ios/Podfile.lock b/ios/Podfile.lock index a7cf7b8..7b50f33 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -633,7 +633,7 @@ SPEC CHECKSUMS: Flipper-RSocket: d9d9ade67cbecf6ac10730304bf5607266dd2541 FlipperKit: d8d346844eca5d9120c17d441a2f38596e8ed2b9 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 - glog: 85ecdd10ee8d8ec362ef519a6a45ff9aa27b2e85 + glog: bbaccdf9af7ec106ed6f0eb086217dc2bf37414c libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 libwebp: 98a37e597e40bfdb4c911fc98f2c53d0b12d05fc OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b @@ -648,7 +648,7 @@ SPEC CHECKSUMS: Permission-PhotoLibrary: ddb5a158725b29cb12e9e477e8a5f5151c66cc3c Permission-SpeechRecognition: fdab73ea6aec7103fef3ef8719194e9ef65dbb9e RadarSDK: 71706b7bc57c8cef02c4fadb3e71e92eb746d80a - RCT-Folly: 803a9cfd78114b2ec0f140cfa6fa2a6bafb2d685 + RCT-Folly: 19dac003a3f572f05a3b77277df72906a73469f1 RCTRequired: 3c77b683474faf23920fbefc71c4e13af21470c0 RCTTypeSafety: 720b1841260dac692444c2822b27403178da8b28 React: 25970dd74abbdac449ca66dec4107652cacc606d diff --git a/ios/ProjectAccessibility.xcodeproj/project.pbxproj b/ios/ProjectAccessibility.xcodeproj/project.pbxproj index 9b58117..fca8540 100644 --- a/ios/ProjectAccessibility.xcodeproj/project.pbxproj +++ b/ios/ProjectAccessibility.xcodeproj/project.pbxproj @@ -136,7 +136,6 @@ B7E8F1892175DCF8962DB987 /* Pods-ProjectAccessibility-ProjectAccessibilityTests.debug.xcconfig */, 02F602DD29E5A74B2B228A7E /* Pods-ProjectAccessibility-ProjectAccessibilityTests.release.xcconfig */, ); - name = Pods; path = Pods; sourceTree = ""; }; @@ -464,6 +463,7 @@ "DEBUG=1", "$(inherited)", ); + HEADER_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = ProjectAccessibilityTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -488,6 +488,7 @@ buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; COPY_PHASE_STRIP = NO; + HEADER_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = ProjectAccessibilityTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -514,7 +515,9 @@ CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = ""; + DEVELOPMENT_TEAM = 4JDV9X82QN; ENABLE_BITCODE = NO; + HEADER_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = ProjectAccessibility/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -525,7 +528,7 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_BUNDLE_IDENTIFIER = com.app.normal.bartimeus.projectaccessibility; PRODUCT_NAME = ProjectAccessibility; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -541,6 +544,8 @@ CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = ""; + DEVELOPMENT_TEAM = 4JDV9X82QN; + HEADER_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = ProjectAccessibility/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -551,7 +556,7 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_BUNDLE_IDENTIFIER = com.app.normal.bartimeus.projectaccessibility; PRODUCT_NAME = ProjectAccessibility; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; diff --git a/ios/ProjectAccessibility.xcodeproj/xcshareddata/xcschemes/ProjectAccessibility.xcscheme b/ios/ProjectAccessibility.xcodeproj/xcshareddata/xcschemes/ProjectAccessibility.xcscheme index 02ffcac..7a7d244 100644 --- a/ios/ProjectAccessibility.xcodeproj/xcshareddata/xcschemes/ProjectAccessibility.xcscheme +++ b/ios/ProjectAccessibility.xcodeproj/xcshareddata/xcschemes/ProjectAccessibility.xcscheme @@ -75,7 +75,7 @@ diff --git a/ios/ProjectAccessibility.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/ProjectAccessibility.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/ProjectAccessibility.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/ProjectAccessibility/AppDelegate.h b/ios/ProjectAccessibility/AppDelegate.h index ef1de86..9ffffb6 100644 --- a/ios/ProjectAccessibility/AppDelegate.h +++ b/ios/ProjectAccessibility/AppDelegate.h @@ -1,5 +1,7 @@ #import #import +#import "ReactNativeConfig.h" +@import RadarSDK; @interface AppDelegate : UIResponder diff --git a/ios/ProjectAccessibility/Info.plist b/ios/ProjectAccessibility/Info.plist index cf6b7ff..33fefa1 100644 --- a/ios/ProjectAccessibility/Info.plist +++ b/ios/ProjectAccessibility/Info.plist @@ -36,19 +36,27 @@ NSCameraUsageDescription - $(PRODUCT_NAME) wilt graag je camera gebruiken + De camera wordt gebruikt om een volledig antwoord op de vraag te kunnen geven. NSLocationAlwaysAndWhenInUseUsageDescription - $(PRODUCT_NAME) wilt graag locatie gebruiken voor locatiebepaling + De locatie wordt gebruikt om zo de dichtsbijzijnde onderdelen te kunnen tonen in de vragenlijst. NSLocationAlwaysUsageDescription - $(PRODUCT_NAME) wilt graag locatie gebruiken voor locatiebepaling + De locatie wordt gebruikt om zo de dichtsbijzijnde onderdelen te kunnen tonen in de vragenlijst. NSLocationWhenInUseUsageDescription NSMicrophoneUsageDescription - $(PRODUCT_NAME) wilt graag je microfoon gebruiken. + De microfoon wordt gebruikt om een volledig antwoord op de vraag te kunnen geven. NSPhotoLibraryAddUsageDescription NSPhotoLibraryUsageDescription - $(PRODUCT_NAME) wilt graag je gallerij openen + $(PRODUCT_NAME) wilt graag je gallerij openen om een foto toe te voegen aan je antwoord voor de vragenlijst. + NSContactsUsageDescription + $(PRODUCT_NAME) wilt graag je contacten openen. + NSAppleMusicUsageDescription + $(PRODUCT_NAME) wilt graag je Apple Music openen. + NSSpeechRecognitionUsageDescription + $(PRODUCT_NAME) wilt graag je spraak herkenning gebruiken. + NSLocationWhenInUseUsageDescription + De locatie wordt gebruikt om zo de dichtsbijzijnde onderdelen te kunnen tonen in de vragenlijst. UIAppFonts Muli-ExtraBold.ttf @@ -81,8 +89,6 @@ UISupportedInterfaceOrientations UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight UIViewControllerBasedStatusBarAppearance