Describe your question in as much detail as possible:
I am trying to use fastlane to build and deploy Unity generated xcode project. I am using App Store Connect api_key to avoid 2FA. This works great when I run script on Mac or ssh into Mac then running script. However, once this script is run via GitLab runner, when calling pilot to deploy the ipa file to TestFlight. I keep getting error.
- What are you seeing, and how does that differ from what you expect to see?
The error I get from log is
Authentication credentials are missing or invalid. - Provide a properly configured and signed bearer token, and make sure that it has not expired. Learn more about Generating Tokens for API Requests https://developer.apple.com/go/?id=api-generating-tokens
But when running script directly without going through cicd process, it works well.
The part to deploy to TestFlight is as the following.
app_identifier = CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier)
api_key = lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
output_name = "app.ipa"
pilot(
api_key: api_key,
app_identifier: app_identifier,
ipa: output_name,
skip_submission: true,
skip_waiting_for_build_processing: true,
distribute_external: false,
notify_external_testers: false,
)
The runner on Mac is registered as user without using sudo.
I speculate the runner may need some sort of environment variables or privilege but I just could not figure it out. Does anyone run into such issue?