@@ -107,59 +107,22 @@ jobs:
107107 - run : make example-flutter-test
108108 - run : make example-flutter-analyze
109109 - run : make example-dart-format
110- - name : Prepare certificate and provisioning profile
111- env :
112- IOS_CERTIFICATE_PASSWORD : ${{ secrets.IOS_CERTIFICATE_PASSWORD }}
113- IOS_CERTIFICATE_BASE64 : ${{ secrets.IOS_CERTIFICATE_BASE64 }}
114- IOS_PROVISIONING_PROFILE_BASE64 : ${{ secrets.IOS_PROVISIONING_PROFILE_BASE64 }}
115- IOS_KEYCHAIN_PASSWORD : ${{ secrets.IOS_KEYCHAIN_PASSWORD }}
116- run : |
117- CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
118- PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision
119- KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
120-
121- # import certificate and provisioning profile from secrets
122- echo -n "$IOS_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH
123-
124- echo -n "$IOS_PROVISIONING_PROFILE_BASE64" | base64 --decode -o $PP_PATH
125-
126- # create temporary keychain
127- security create-keychain -p "$IOS_KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
128- security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
129- security unlock-keychain -p "$IOS_KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
130-
131- # import certificate to keychain
132- security import $CERTIFICATE_PATH -P "$IOS_CERTIFICATE_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
133- security set-key-partition-list -S apple-tool:,apple: -k "$IOS_KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
134- security list-keychain -d user -s $KEYCHAIN_PATH
135-
136- # apply provisioning profile
137- mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
138- cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles
139- - name : Install App Store Connect API key
140- env :
141- IOS_API_KEY_BASE64 : ${{ secrets.IOS_API_KEY_BASE64 }}
142- IOS_API_KEY_ID : ${{ secrets.IOS_API_KEY_ID }}
143- run : |
144- API_KEY_PATH=$RUNNER_TEMP/AuthKey_${IOS_API_KEY_ID}.p8
145- echo -n "$IOS_API_KEY_BASE64" | base64 --decode -o $API_KEY_PATH
146- - name : Create fastlane api key json
147- env :
148- API_ISSUER : ${{ secrets.IOS_API_KEY_ISSUER }}
149- API_KEY : ${{ secrets.IOS_API_KEY_ID }}
150- run : |
151- export API_KEY_PATH=$RUNNER_TEMP/AuthKey_${API_KEY}.p8
152- make fastlane-api-key-json
110+ - uses : authgear/gh-actions-install-apple-certificate-and-provisioning-profile@v1
111+ with :
112+ certificate_base64 : ${{ secrets.IOS_CERTIFICATE_BASE64 }}
113+ certificate_password : ${{ secrets.IOS_CERTIFICATE_PASSWORD }}
114+ provisioning_profile_base64 : ${{ secrets.IOS_PROVISIONING_PROFILE_BASE64 }}
115+ - uses : authgear/gh-actions-create-fastlane-api-key-json-file@v1
116+ with :
117+ api_key_id : ${{ secrets.IOS_API_KEY_ID }}
118+ api_key_issuer : ${{ secrets.IOS_API_KEY_ISSUER }}
119+ api_key_base64 : ${{ secrets.IOS_API_KEY_BASE64 }}
120+ output_path : ./build/fastlane-api-key.json
153121 - run : make example-pod-install
154122 - run : make example-build-ios-app
155123 - name : Upload to TestFlight
156124 if : ${{ github.ref == 'refs/heads/main' }}
157125 run : make example-upload-ios-app
158- - name : Clean up keychain and provisioning profile
159- if : ${{ always() }}
160- run : |
161- security delete-keychain $RUNNER_TEMP/app-signing.keychain-db
162- rm ~/Library/MobileDevice/Provisioning\ Profiles/build_pp.mobileprovision
163126
164127 deploy-android :
165128 runs-on : macos-14
0 commit comments