Repository navigation
fix(ios-release): enforce current TestFlight toolchain - #1830
Merged
Merged
Conversation
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.
Problem
The TestFlight workflow selected Xcode 26 through
DEVELOPER_DIR, but Tauri resolved the system-selected Xcode 16.4 and produced an IPA with the iOS 18.5 SDK. App Store Connect rejected that IPA with HTTP 409.altoolstill returned exit code 0, so the upload job appeared successful even though validation and upload both failed.Solution
Switch the runner's system Xcode selection to the discovered Xcode 26 installation, verify
xcode-select,xcrun, and the iPhoneOS SDK before building, and reject exported apps whoseDTSDKNameis older than iOS 26. Capturealtooloutput and require explicit validation/upload success markers while treating known failure output as an error even when the command exits successfully.Potential risks
The workflow intentionally stops if GitHub changes the installed Xcode path layout or Apple changes all recognized
altoolsuccess wording. This favors a visible release failure over a false successful upload. The checks affect only the protected iOS release workflow and do not change app runtime behavior or persisted data. Rollback is reverting this commit, though that would restore the false-positive upload risk.Verification
node --test scripts/ios-release/*.test.mjs— passed 29 tests, including outdated SDK rejection and analtool409 response with exit code 0runblock from.github/workflows/ios-testflight.ymland parsed it withbash -n— passed.github/workflows/ios-testflight.ymlwith Ruby YAML — passedgit diff --check origin/develop...HEAD— passeddevelopenvironment after merge