Repository navigation
fix(release): strip semver prerelease suffix from CFBundleShortVersionString - #862
Merged
Merged
Conversation
…nString App Store Connect rejects a prerelease in this key with error 90060, the same way it rejects one in CFBundleVersion with 90058. #582 fixed only CFBundleVersion, so every prerelease still fails consumers' TestFlight uploads. Stamp the `major.minor.patch` core into both keys and check Apple's format for both in verify_framework_plist.
XCFramework BuildThis PR's XCFramework is available for testing. Add the following to your .package(url: "https://github.com/wordpress-mobile/GutenbergKit", branch: "pr-build/862")Built from e3833af |
dcalhoun
approved these changes
Oct 30, 2026
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.
Description
Fixes WordPress-iOS and Jetpack TestFlight uploads, which fail for any GutenbergKit prerelease. App Store Connect rejects
GutenbergKitResources.frameworkwith error 90060 becauseCFBundleShortVersionStringis0.20.0-alpha.1.Failing build: https://buildkite.com/automattic/wordpress-ios/builds/35667
Root cause: #582 stripped the prerelease suffix from
CFBundleVersiononly. It kept the full version inCFBundleShortVersionStringon the belief that Apple accepts it there. Apple does not. The build #582 was fixing, 33627, reported 90060 alongside 90058. It went unnoticed because WordPress-iOS then moved to the stable 0.19.0, and 0.20.0-alpha.1 is the first prerelease it has used since.Changes:
major.minor.patchcore intoCFBundleShortVersionStringas well, so both keys read0.20.0.verify_framework_plistcheck Apple's format for both keys, so a bad value fails this repo's build rather than a consumer's upload.The shipped framework no longer shows which prerelease it came from. Nothing reads that value: artifacts are identified by git SHA and resolved by CDN URL plus SwiftPM checksum.
This fix only reaches new builds. The 0.20.0-alpha.1 artifact on the CDN can't change, so WordPress-iOS needs a new GutenbergKit release, then a version bump.
Testing instructions
./build_xcframework.shat0.20.0-alpha.1exits 0, and both slices (ios-arm64,ios-arm64_x86_64-simulator) stamp0.20.0for both keys.verify_framework_plistaccepts that plist.verify_framework_plistfails onCFBundleShortVersionStringset to0.20.0-alpha.1(does not match expected '0.20.0').verify_framework_plistfails on1.2.3.4when it matches the expected value (must be at most three ... (altool 90060)).To print the stamped values: