Pass the team id and a gym-safe export method to fastlane lanes - #11
Open
adamXbot wants to merge 1 commit into
Open
Pass the team id and a gym-safe export method to fastlane lanes#11adamXbot wants to merge 1 commit into
adamXbot wants to merge 1 commit into
Conversation
Two gaps that only affect the fastlane path, both of which fail a release after the signed archive has already been built. The team_id input fed the pipeline's own xcodebuild steps and the ExportOptions plist it generates. In fastlane mode neither is used, so a lane had no way to learn the team id at all — a repo whose signing needs it aborts on a dispatched archive, and a repo whose Release build needs DEVELOPMENT_TEAM fails even the unsigned validate build. It is an input rather than a secret, so exporting it into the validate job keeps that job secret-free. Separately, gym's allow-list still accepts only app-store; app-store-connect is Xcode 15.4+'s name for the same method and this workflow defaults to it. A lane passing EXPORT_METHOD to gym, or letting gym read a plist declaring the new name, dies at export. GYM_EXPORT_METHOD carries the translated spelling so lanes do not each have to know. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two gaps in the fastlane path of
ios-release.yml. Both fail a release after the signed archive has been built, which is the expensive place to fail.1. The team id never reaches the lane
team_idfeeds the pipeline's own xcodebuild steps and the ExportOptions plist it generates. In fastlane mode neither is used, so a lane has no way to learn it. Consequences seen while wiring three repos:DEVELOPMENT_TEAMset fails even the unsigned validate buildNow exported as
TEAM_IDin both the validate and archive fastlane steps. It is an input, not a secret, so the validate job stays secret-free.2.
app-store-connectis not a valid gym export methodapp-store-connectis Xcode 15.4+'s name for what fastlane still callsapp-store. gym's allow-list (gym/lib/gym/options.rb) accepts only the old spelling and callsUI.user_error!otherwise. Because gym doesGym.config[:export_method] ||= hash[:method], it also picks the bad value up out of an ExportOptions plist that a lane passes it.This workflow defaults
export_methodtoapp-store-connect, so any lane that forwards it — or that hands gym a modern plist — dies at export.GYM_EXPORT_METHODnow carries the translated spelling.Worth knowing
AdamXweb/TrainieTalkie, the reference consumer, has the same latent problem: its committedScripts/ExportOptions.plistdeclaresapp-store-connectand its archive lane passes it to gym without settingexport_method. Its archive job has never run — no job matching "archive" appears in any recorded run — so this has never surfaced. Itsios-release.ymlhas also failed every run since it adopted the shared pipeline on 2026-08-06, which is worth a separate look.Needs a
v1retag after merge, along with #9 and #10.🤖 Generated with Claude Code