diff --git a/.github/workflows/default-workflow.yml b/.github/workflows/default-workflow.yml index dcc7df3..75b87ba 100644 --- a/.github/workflows/default-workflow.yml +++ b/.github/workflows/default-workflow.yml @@ -1,10 +1,8 @@ name: default-workflow -on: [push] -# TODO: -# on: -# push: -# branches: -# - main +on: + push: + branches: + - main jobs: test: name: Run tests @@ -90,6 +88,4 @@ jobs: - name: Build debug run: bundle exec fastlane ios build_debug - - # - name: Decode and save FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT.json - # run: echo "${{ secrets.FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_JSON }}" | base64 -d > ./FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT.json \ No newline at end of file + \ No newline at end of file diff --git a/.github/workflows/release-workflow.yaml b/.github/workflows/release-workflow.yaml new file mode 100644 index 0000000..c307356 --- /dev/null +++ b/.github/workflows/release-workflow.yaml @@ -0,0 +1,180 @@ +name: release-workflow +on: [push] +# TODO: +# on: +# push: +# branches: +# - release/* +jobs: + test: + name: Run tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.1.1" # TODO: keep this somewhere where it's easy to change + + - name: Install gems + run: bundle install + + - name: Install FVM + run: curl -fsSL https://fvm.app/install.sh | bash + + - name: Set up FVM + run: fvm use + + - name: Run virtual machine tests + run: bundle exec fastlane run_vm_tests + + build_android: + name: Build Android release + runs-on: ubuntu-latest + needs: test + steps: + - uses: actions/checkout@v4 + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.1.1" # TODO: keep this somewhere where it's easy to change + + - name: Install gems + run: bundle install + + - name: Install FVM + run: curl -fsSL https://fvm.app/install.sh | bash + + - name: Set up FVM + run: fvm use + + - name: Decode and save google-services.json + run: echo "${{ secrets.GOOGLE_SERVICES_JSON }}" | base64 -d > ./android/app/google-services.json + + - name: Decode and save key.properties + run: echo "${{ secrets.ANDROID_KEY_PROPERTIES }}" | base64 -d > ./android/key.properties + + - name: Decode and save keystore + run: echo "${{ secrets.COCKTAILR_UPLOAD_KEYSTORE_JKS }}" | base64 -d > ./android/app/cocktailr-upload-keystore.jks + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Build release + run: bundle exec fastlane android build_release + + - name: Upload build artifact + uses: actions/upload-artifact@v4 + with: + name: app-release-apk + path: ./build/app/outputs/flutter-apk/app-release.apk + + build_ios: + name: Build iOS release + runs-on: macos-latest + needs: test + steps: + - uses: actions/checkout@v4 + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.1.1" # TODO: keep this somewhere where it's easy to change + + - name: Install gems + run: bundle install + + - name: Install FVM + run: | + brew tap leoafarias/fvm + brew install fvm + + - name: Set up FVM + run: fvm use + + - name: Decode and save GoogleServices-Info.plist + run: echo "${{ secrets.GOOGLESERVICE_INFO_PLIST }}" | base64 -d > ./ios/Runner/GoogleService-Info.plist + + - name: Decode and save App Store Connect API key + run: echo "${{ secrets.APP_STORE_CONNECT_API_KEY }}" | base64 -d > ./APP_STORE_CONNECT_API_KEY.p8 + + - name: Set `MATCH_PASSWORD` environment variable + run: echo "MATCH_PASSWORD=${{ secrets.MATCH_PASSWORD }}" >> $GITHUB_ENV + + - name: Build release + run: | + echo "${{ secrets.CERTIFICATES_REPO_SSH_KEY }}" > private_key + chmod 600 private_key + ssh-keygen -lf private_key + eval "$(ssh-agent -s)" + ssh-add private_key + + mkdir -p ~/.ssh + ssh-keyscan github.com >> ~/.ssh/known_hosts + + bundle exec fastlane ios build_release + + - name: Upload build artifact + uses: actions/upload-artifact@v4 + with: + name: cocktailr-ipa-folder + path: ./build/ios/ipa/ + + distribute_android: + name: Distribute Android release + runs-on: ubuntu-latest + needs: [build_android, build_ios] + steps: + - uses: actions/checkout@v4 + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.1.1" # TODO: keep this somewhere where it's easy to change + + - name: Install gems + run: bundle install + + - name: Decode and save Firebase App Distribution service account + run: echo "${{ secrets.FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_JSON }}" | base64 -d > ./FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT.json + + - name: Download build artifact + uses: actions/download-artifact@v4 + with: + name: app-release-apk + path: ./build/app/outputs/flutter-apk + + - name: Distribute release + run: bundle exec fastlane android distribute_firebase + + distribute_ios: + name: Distribute iOS release + runs-on: macos-latest + needs: [build_android, build_ios] + steps: + - uses: actions/checkout@v4 + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.1.1" # TODO: keep this somewhere where it's easy to change + + - name: Install gems + run: bundle install + + - name: Decode and save Firebase App Distribution service account + run: echo "${{ secrets.FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_JSON }}" | base64 -d > ./FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT.json + + - name: Download build artifact + uses: actions/download-artifact@v4 + with: + name: cocktailr-ipa-folder + path: ./build/ios/ipa/ + + - name: Distribute release + run: bundle exec fastlane ios distribute_firebase \ No newline at end of file diff --git a/APP_STORE_CONNECT_API_KEY.p8 b/APP_STORE_CONNECT_API_KEY.p8 new file mode 100644 index 0000000..1d09f03 --- /dev/null +++ b/APP_STORE_CONNECT_API_KEY.p8 @@ -0,0 +1,6 @@ +-----BEGIN PRIVATE KEY----- +MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgTKOGjUuJGMAIT2SY +3Auu0XK1u1z1EWwYLDZD3sf6PMegCgYIKoZIzj0DAQehRANCAASyT1gLu8uYkAdd +AR0C/uUBDCXD51XHrmdDRbs5IiSwzNXeLlU3ABd3nmPg5LSmEhbru8rCNU8+h4hY +X4OTRuAg +-----END PRIVATE KEY----- \ No newline at end of file diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 6727840..977354e 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -27,15 +27,15 @@ platform :android do desc "Distribute to Firebase App Distribution" lane :distribute_firebase do Dir.chdir("..") do - android_artifact_path = File.expand_path("./build/app/outputs/flutter-apk/app-release.apk", Dir.pwd) - service_credentials_file = File.expand_path("./FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_KEY.json", Dir.pwd) + apk_path = File.expand_path("./build/app/outputs/flutter-apk/app-release.apk", Dir.pwd) + service_credentials_file = File.expand_path("./FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT.json", Dir.pwd) firebase_app_distribution( app: "1:30086613147:android:9d5c7c6b5005dcdddb1e3e", service_credentials_file: service_credentials_file, groups: "in-the-pocket", android_artifact_type: "APK", - android_artifact_path: android_artifact_path, + android_artifact_path: apk_path, ) end end @@ -43,6 +43,37 @@ end ### iOS ### platform :ios do + ### Certificates & Provisioning Profiles ### + desc "Run match command for the given type" + lane :match_for_type do |options| + app_store_connect_api_key_filepath = File.expand_path("./APP_STORE_CONNECT_API_KEY.p8", Dir.pwd) + + app_store_connect_api_key = app_store_connect_api_key( + key_id: "W3A5H672YF", + issuer_id: "cbd3c437-ddc9-4d9c-a6e5-1618213abb22", + key_filepath: app_store_connect_api_key_filepath, + duration: 1200, + in_house: false, + ) + + match( + type: options[:type], + git_url: "git@github.com:BramDC3/cocktailr-app-match.git", + app_identifier: "com.crowncorp.cocktailr", + api_key: app_store_connect_api_key, + ) + end + + desc "Run match development" + lane :match_development do + match_for_type(type: "development") + end + + desc "Run match adhoc" + lane :match_adhoc do + match_for_type(type: "adhoc") + end + ### Build ### desc "Build iOS debug (for simulator)" lane :build_debug do @@ -54,6 +85,10 @@ platform :ios do desc "Build iOS release" lane :build_release do Dir.chdir("..") do + setup_ci + + match_adhoc + sh("fvm flutter build ipa --release --export-options-plist ios/Runner/ExportOptions.plist") end end diff --git a/fastlane/Matchfile b/fastlane/Matchfile deleted file mode 100644 index e248f5c..0000000 --- a/fastlane/Matchfile +++ /dev/null @@ -1,11 +0,0 @@ -git_url("git@github.com:BramDC3/cocktailr-app-match.git") - -storage_mode("git") -readonly(false) -force(false) - -app_identifier("com.crowncorp.cocktailr") -username("crowncorpbe@gmail.com") - -# Can be: appstore, adhoc, enterprise or development -type("adhoc") diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 6cf5140..a112bd4 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -8,16 +8,16 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 16428832DE586E7B6338B8C5 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1396E753FE026BF22AC964EF /* Pods_Runner.framework */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 4CD56EB583F8B151CA621C95 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C5C2B8F10FD3B14C467F149 /* GoogleService-Info.plist */; }; + 5EF05FEC9C14E1F900B7376B /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8F2D628437F609D9AC15879 /* Pods_Runner.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 74D2435D2C8D97CD007DF3EB /* ExportOptions.plist in Resources */ = {isa = PBXBuildFile; fileRef = 74D2435C2C8D97CD007DF3EB /* ExportOptions.plist */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - BF1B547E7B71017F96B9919F /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49F67D4C6EE22AD4B5522BAC /* Pods_RunnerTests.framework */; }; + 9D4FC316B46032A482047951 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 48EE4512EBA08C594A5BB3A2 /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -44,18 +44,17 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 1396E753FE026BF22AC964EF /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0F6423ED2FEBF86A9DF15808 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 1ED945122B6B0E7538DD5E8F /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - 221000CD657947BA7F33F552 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 3D048D596F0F6BDA81F6B696 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - 4114BBC5BB2B4AB8BA65BD35 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - 49F67D4C6EE22AD4B5522BAC /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5FBEF1921A5DE45C7323500B /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 48EE4512EBA08C594A5BB3A2 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 55ECAD1F0D5D66CAEE1B0A3A /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 5686BEB27764AF6C78635902 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 5ED0A91CD7DBF8EB235E90F8 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 72E1DC7B0C2F561E7BF35B46 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 74D2435C2C8D97CD007DF3EB /* ExportOptions.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = ExportOptions.plist; sourceTree = ""; }; @@ -68,7 +67,8 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A82523E67966E1891DB5FEE7 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + C87F3E68EB57F6E3B88940A8 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + F8F2D628437F609D9AC15879 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -76,7 +76,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 16428832DE586E7B6338B8C5 /* Pods_Runner.framework in Frameworks */, + 5EF05FEC9C14E1F900B7376B /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -84,7 +84,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF1B547E7B71017F96B9919F /* Pods_RunnerTests.framework in Frameworks */, + 9D4FC316B46032A482047951 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -99,11 +99,11 @@ path = RunnerTests; sourceTree = ""; }; - 40348CC9CF612F807D3432E2 /* Frameworks */ = { + 4DB9B5200C5AED6BAA8D6192 /* Frameworks */ = { isa = PBXGroup; children = ( - 1396E753FE026BF22AC964EF /* Pods_Runner.framework */, - 49F67D4C6EE22AD4B5522BAC /* Pods_RunnerTests.framework */, + F8F2D628437F609D9AC15879 /* Pods_Runner.framework */, + 48EE4512EBA08C594A5BB3A2 /* Pods_RunnerTests.framework */, ); name = Frameworks; sourceTree = ""; @@ -127,8 +127,8 @@ 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, F2FFCBF65C1D330BA91772D5 /* Pods */, - 40348CC9CF612F807D3432E2 /* Frameworks */, 8C5C2B8F10FD3B14C467F149 /* GoogleService-Info.plist */, + 4DB9B5200C5AED6BAA8D6192 /* Frameworks */, ); sourceTree = ""; }; @@ -160,12 +160,12 @@ F2FFCBF65C1D330BA91772D5 /* Pods */ = { isa = PBXGroup; children = ( - A82523E67966E1891DB5FEE7 /* Pods-Runner.debug.xcconfig */, - 1ED945122B6B0E7538DD5E8F /* Pods-Runner.release.xcconfig */, - 3D048D596F0F6BDA81F6B696 /* Pods-Runner.profile.xcconfig */, - 4114BBC5BB2B4AB8BA65BD35 /* Pods-RunnerTests.debug.xcconfig */, - 221000CD657947BA7F33F552 /* Pods-RunnerTests.release.xcconfig */, - 5FBEF1921A5DE45C7323500B /* Pods-RunnerTests.profile.xcconfig */, + C87F3E68EB57F6E3B88940A8 /* Pods-Runner.debug.xcconfig */, + 5686BEB27764AF6C78635902 /* Pods-Runner.release.xcconfig */, + 0F6423ED2FEBF86A9DF15808 /* Pods-Runner.profile.xcconfig */, + 55ECAD1F0D5D66CAEE1B0A3A /* Pods-RunnerTests.debug.xcconfig */, + 5ED0A91CD7DBF8EB235E90F8 /* Pods-RunnerTests.release.xcconfig */, + 72E1DC7B0C2F561E7BF35B46 /* Pods-RunnerTests.profile.xcconfig */, ); path = Pods; sourceTree = ""; @@ -177,7 +177,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 079D0FD025562A4A5CBE791C /* [CP] Check Pods Manifest.lock */, + 882A5E0C2D85E6EC130C5B13 /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, BF0B71E192030C46F2C001F5 /* Frameworks */, @@ -196,14 +196,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - E129AD0EA8F8287A5300EF45 /* [CP] Check Pods Manifest.lock */, + 081C681E9920B6B142433B52 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - B9683AFEF7E208CFD045382C /* [CP] Embed Pods Frameworks */, + 60C9EC7A70EDAF7947DDC740 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -277,7 +277,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 079D0FD025562A4A5CBE791C /* [CP] Check Pods Manifest.lock */ = { + 081C681E9920B6B142433B52 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -292,7 +292,7 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -315,22 +315,7 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 9740EEB61CF901F6004384FC /* Run Script */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Run Script"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; - }; - B9683AFEF7E208CFD045382C /* [CP] Embed Pods Frameworks */ = { + 60C9EC7A70EDAF7947DDC740 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -347,7 +332,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - E129AD0EA8F8287A5300EF45 /* [CP] Check Pods Manifest.lock */ = { + 882A5E0C2D85E6EC130C5B13 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -362,13 +347,28 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -501,7 +501,7 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4114BBC5BB2B4AB8BA65BD35 /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = 55ECAD1F0D5D66CAEE1B0A3A /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -519,7 +519,7 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 221000CD657947BA7F33F552 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 5ED0A91CD7DBF8EB235E90F8 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -535,7 +535,7 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5FBEF1921A5DE45C7323500B /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 72E1DC7B0C2F561E7BF35B46 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic;