Repository navigation
Stamp the numeric core of the computed version as the iOS marketing version [patch] - #242
Merged
Merged
Conversation
…ersion [patch] ios package stamped KtsuBuild's computed version into CFBundleShortVersionString unchanged, so a prerelease such as 1.4.3-pre.1 produced an archive App Store Connect rejects at upload (ITMS-90060), after the toolchain was provisioned and the signing material imported. The computed default now drops the prerelease label and build metadata, and PackageAsync rejects any version that is not one to three period-separated integers, including an explicit --version, before it touches the toolchain or the keychain. Fixes #181 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012pbZwi7vwvGLLZY7UmE1po
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012pbZwi7vwvGLLZY7UmE1po
…overed by tests Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012pbZwi7vwvGLLZY7UmE1po
|
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.



Fixes #181
What was wrong
When
--versionwas not passed,ios packagestamped KtsuBuild's computed version intoCFBundleShortVersionStringunchanged. That version is often a prerelease, for example1.4.3-pre.1after a Dependabot-only change or from a-pre.Ntag on the Skip path. App Store Connect accepts only one to three period-separated integers, soios uploadwas rejected with ITMS-90060. The rejection came at the very end, after the toolchain was provisioned and the signing material imported.Change
IosService.ToMarketingVersionreduces a computed version to itsMajor.Minor.Patchcore by dropping the prerelease label and build metadata.ResolveIosShortVersionAsyncuses it and logs when it changes the version.IosService.IsValidShortVersionaccepts one to three period-separated non-negative integers.PackageAsyncthrowsArgumentExceptionwith a clear message for any other value, including an explicit--version 2.0.0-beta.1. The check runs straight after the signing gate, before head detection, Xcode selection, the workload install and the keychain import. Without signing material the command is still a no-op.--versionhelp text and CLAUDE.md now describe the rule.Tests
PackageAsync_InvalidShortVersion_ThrowsBeforeAnyProcessCallscovers2.0.0-beta.1,1.4.3-pre.1,1.2.3.4,v1.2.3and the empty string. Each one throws without enumerating heads and without making any process call.ToMarketingVersion_DropsPrereleaseAndBuildMetadata:1.4.3-pre.1becomes1.4.3, and so on.IsValidShortVersionaccept and reject rows.🤖 Generated with Claude Code
https://claude.ai/code/session_012pbZwi7vwvGLLZY7UmE1po
Generated by Claude Code