iOS: ship production bundle ID (fixes #26 AltStore install)#27
Merged
Conversation
…nstall)
The iOS app/widgets/watch shipped as com.noopapp.noop.staging, but the AltStore source
manifest — and every historical release — declares com.noopapp.noop. AltStore keeps the
ipa's bundle ID when it re-signs, so .staging != the source's declared ID and the install
was rejected ('bundle ID does not match the one specified by the source').
iOS has no App Store app to install 'beside' (and NoopApp is closed), so the .staging
overlay served no purpose there and only broke sideloading. Drop it from the iOS-family
targets (app, widgets, watch, complications, WKCompanion ref) so the ipa is the production
com.noopapp.noop the manifest already declares — restoring installs + the update path from
8.2.2. The Swift code already assumes this identity (StorePaths/WatchScoreSnapshot use the
production id/group). macOS bundle id + the shared app group are left unchanged.
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 #26 — v8.3.1 fails to install via AltStore with "bundle ID com.noopapp.noop.staging does not match the one specified by the source (com.noopapp.noop)".
Root cause
The iOS app/widgets/watch shipped as
com.noopapp.noop.staging(aproject.ymloverlay), but the AltStore manifest — and every historical release (7.x–8.2.2) — declarescom.noopapp.noop. AltStore keeps the ipa's bundle ID when it re-signs, so.staging≠ the declared ID → rejected. It surfaced now because the AltStore automation added the first.stagingipa (8.3.1) to the production manifest.Fix
Drop
.stagingfrom the iOS-family targets (app, widgets, watch, complications,WKCompanionAppBundleIdentifier) so the ipa is the productioncom.noopapp.noopthe manifest already declares — restoring installs and the update path from 8.2.2. iOS has no App Store app to sit "beside" (and NoopApp is closed), so.stagingserved no purpose on iOS. The Swift code already assumes this identity (StorePaths.productionBundleID,WatchScoreSnapshot.appGroupId = group.com.noopapp.noop).Left unchanged: the macOS bundle ID and the shared
APP_GROUP_ID(independent of the iOS bundle ID; AltStore free-signing strips app-group entitlements anyway).After merge
Re-cut as 8.3.2 to publish a production ipa + refresh the manifest (the current 8.3.1 entry points at the broken
.stagingipa). CI build verifies the iOS compile; I'll confirm the built ipa'sCFBundleIdentifieriscom.noopapp.noopbefore we ship.