My #1 piece of advice here is that if you're an independent app developer using a personal apple id, put CI/CD off for a while and just release from local. Just because something can be automated doesn't mean it should
In hindsight, implementing CI before feeling the crunch to scale was not worth the time and was a premature optimization. Being enrolled as an Organization also allows for easier and more idiomatic setups.
-
Read the
fastlane
CI best practices and these tips before getting started, not just for troubleshooting -
You're in a very slow troubleshooting loop where you need to push-to-test.
act --no-container
probably won't even change that because your local keychain will be different -
(I think) you'll need to use
match
, and (I think) anappstore
cert even for testflight -
set manual signing iOS after
match appstore
(will need to restart xcode)should see something like
2_code_signing.patch
in the resultinggit diff
-
(I think) this keychain password prompt issue was one of the things preventing code signing capabilities.
-
Check your logs carefully every failure and avoid hair-pulling mode
-
If you get prompts from
match
like "Did you create the bucket?" for google cloud, you likely aren't passing the bucket name (or other credentials) all the way down -
Omitted from the general 2fa docs is that you need
skip_waiting_for_build_processing
andapple_id
to only useFASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
forupload_to_testflight
-
upload_to_test_flight
'sapple_id
is different from that supplied elsewhere -
it is the "Apple ID property in the App Information section in App Store Connect", not your top-levelapple_id
.
my current action workfow: https://github.com/micimize/major_todo_app/blob/master/.github/workflows/todo-app-flutter.yml