From 7acfb841224df15c0c77291c74a1233909b1743c Mon Sep 17 00:00:00 2001 From: Remy Moll Date: Sat, 14 Dec 2024 18:41:11 +0100 Subject: [PATCH] keep using match --- frontend/.github/workflows/build_app_ios.yaml | 15 ++-- frontend/ios/Runner/AppDelegate.swift | 2 +- frontend/ios/fastlane/Fastfile | 71 +++---------------- frontend/ios/{ => fastlane}/local.env.sample | 2 +- 4 files changed, 24 insertions(+), 66 deletions(-) rename frontend/ios/{ => fastlane}/local.env.sample (93%) diff --git a/frontend/.github/workflows/build_app_ios.yaml b/frontend/.github/workflows/build_app_ios.yaml index d0ac83d..e753b5c 100644 --- a/frontend/.github/workflows/build_app_ios.yaml +++ b/frontend/.github/workflows/build_app_ios.yaml @@ -40,7 +40,13 @@ jobs: secret/release GOOGLE_MAPS_API_KEY | GOOGLE_MAPS_API_KEY ; secret/release IOS_ASC_KEY_ID | IOS_ASC_KEY_ID ; secret/release IOS_ASC_ISSUER_ID | IOS_ASC_ISSUER_ID ; - secret/release IOS_ASC_KEY_P8 | IOS_ASC_KEY_P8 ; + secret/release IOS_ASC_KEY | IOS_ASC_KEY ; + secret/release IOS_MATCH_REPO_SSH_KEY_BASE64 | IOS_MATCH_REPO_SSH_KEY_BASE64 ; + + - name: Setup SSH key for match git repo + run: echo "$MATCH_REPO_SSH_KEY" | base64 --decode > ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa + env: + MATCH_REPO_SSH_KEY: ${{ steps.load-secrets.outputs.IOS_MATCH_REPO_SSH_KEY_BASE64 }} - name: Install fastlane run: bundle install @@ -53,6 +59,7 @@ jobs: BUILD_NUMBER: ${{ github.run_number }} # BUILD_NAME is implicitly available GOOGLE_MAPS_API_KEY: ${{ steps.load-secrets.outputs.GOOGLE_MAPS_API_KEY }} - IOS_ASC_KEY_ID: ${{ GOOGLE_MAPS_API_KEY.IOS_ASC_KEY_ID }} - IOS_ASC_ISSUER_ID: ${{ GOOGLE_MAPS_API_KEY.IOS_ASC_ISSUER_ID }} - IOS_ASC_KEY_P8: ${{ GOOGLE_MAPS_API_KEY.IOS_ASC_KEY_P8 }} + IOS_ASC_KEY_ID: ${{ steps.load-secrets.outputs.IOS_ASC_KEY_ID }} + IOS_ASC_ISSUER_ID: ${{ steps.load-secrets.outputs.IOS_ASC_ISSUER_ID }} + IOS_ASC_KEY: ${{ steps.load-secrets.outputs.IOS_ASC_KEY }} + MATCH_PASSWORD: ${{ steps.load-secrets.outputs.IOS_MATCH_PASSWORD }} diff --git a/frontend/ios/Runner/AppDelegate.swift b/frontend/ios/Runner/AppDelegate.swift index 6896c5d..675b021 100644 --- a/frontend/ios/Runner/AppDelegate.swift +++ b/frontend/ios/Runner/AppDelegate.swift @@ -10,7 +10,7 @@ import GoogleMaps ) -> Bool { // load the key from env let key = ProcessInfo.processInfo.environment["GOOGLE_MAPS_API_KEY"]! - GMSServices.provideAPI(key) + GMSServices.provideAPIKey(key) GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } diff --git a/frontend/ios/fastlane/Fastfile b/frontend/ios/fastlane/Fastfile index 6d3d041..f1c8b14 100644 --- a/frontend/ios/fastlane/Fastfile +++ b/frontend/ios/fastlane/Fastfile @@ -7,72 +7,27 @@ platform :ios do app_store_connect_api_key( key_id: ENV["IOS_ASC_KEY_ID"], issuer_id: ENV["IOS_ASC_ISSUER_ID"], - key_content: ENV["IOS_ASC_KEY_P8"], + key_content: ENV["IOS_ASC_KEY"], is_key_content_base64: true, in_house: false ) end - desc "Installs signing certificate in the keychain and downloads provisioning profiles from App Store Connect" - lane :prepare_signing do |options| - team_id = CredentialsManager::AppfileConfig.try_fetch_value(:team_id) - api_key = lane_context[SharedValues::APP_STORE_CONNECT_API_KEY] - - keychain_name = "signing" - keychain_password = "temp" - - delete_keychain( - name: keychain_name - ) if File.exist? File.expand_path("~/Library/Keychains/#{keychain_name}-db") - - create_keychain( - name: keychain_name, - password: keychain_password, - default_keychain: true, - unlock: true, - timeout: 3600 - ) - - import_certificate( - certificate_path: ENV["SIGNING_KEY_FILE_PATH"], - certificate_password: ENV["SIGNING_KEY_PASSWORD"], - keychain_name: keychain_name, - keychain_password: keychain_password - ) - - # fetches and installs provisioning profiles from ASC - sigh( - adhoc: options[:adhoc], - api_key: api_key, - readonly: true - ) - end - desc "Deploy a new version to closed testing (testflight)" lane :deploy_testing do build_name = ENV["BUILD_NAME"] build_number = ENV["BUILD_NUMBER"] - - app_identifier = CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier) load_asc_api_token - prepare_signing + api_key = lane_context[SharedValues::APP_STORE_CONNECT_API_KEY] - profile_name = "App Provisioning Profile" # replace with the name of the profile to use for the build - output_name = "example-iOS" # specify the name of the .ipa file to generate - export_method = "app-store" # specify the export method - - # turn off automatic signing during build so correct code signing identity is guaranteed to be used - update_code_signing_settings( - use_automatic_signing: false, - targets: ["main-target"], # specify which targets to update code signing settings for - code_sign_identity: "Apple Distribution", # replace with name of code signing identity if different - bundle_identifier: app_identifier, - profile_name: profile_name, - build_configurations: ["Release"] # only toggle code signing settings for Release configurations + sync_code_signing( + api_key: api_key, + type: "appstore", + readonly: true, ) - + sh( "flutter", @@ -87,10 +42,6 @@ platform :ios do build_app( skip_build_archive: true, archive_path: "../build/ios/archive/Runner.xcarchive" - provisioningProfiles: { - app_identifier => profile_name - } - ) upload_to_testflight @@ -99,11 +50,12 @@ platform :ios do desc "Deploy a new version as a full release" lane :deploy_release do - build_name = ENV["BUILD_NAME"] build_number = ENV["BUILD_NUMBER"] - + + load_asc_api_token api_key = lane_context[SharedValues::APP_STORE_CONNECT_API_KEY] + sync_code_signing( api_key: api_key, type: "appstore", @@ -135,6 +87,5 @@ platform :ios do automatic_release: true, # automatically release the app after review ) + end end - - diff --git a/frontend/ios/local.env.sample b/frontend/ios/fastlane/local.env.sample similarity index 93% rename from frontend/ios/local.env.sample rename to frontend/ios/fastlane/local.env.sample index 0a5698e..4c7e9ba 100644 --- a/frontend/ios/local.env.sample +++ b/frontend/ios/fastlane/local.env.sample @@ -2,8 +2,8 @@ # DO NOT EDIT THIS FILE # Copy this file to local.env and edit the values to match your local environment IOS_ASC_KEY_ID="sample" +IOS_ASC_KEY="sample" IOS_ASC_ISSUER_ID="sample" -IOS_ASC_KEY_P8="sample" SIGNING_KEY_FILE_PATH="sample" SIGNING_KEY_PASSWORD="sample" BUILD_NAME="sample"