Repository navigation
fix(ios): name the app NOOP, and say per-platform whether a build installs beside - #2719
Merged
Merged
Conversation
…talls beside 749c941 dropped the .staging suffix from every iOS-family bundle id because iOS has no App Store app to install beside (NoopApp is closed), so the overlay served no purpose there and only broke sideloading. It did not carry that to PRODUCT_NAME, which has read "NOOP Staging" since 719477a. So the iOS app has been shipping a production bundle identifier under a staging product name, signed releases included: the bundle was NOOP Staging.app, with an executable to match. The same oversight reached the release notes. Both fork workflows announced "NOOP Staging identity, installs beside the official app (separate data)" for all three platforms at once. Since 749c941 that is false for iOS, which carries the production id, so a sideload REPLACES an installed official app and uses its data. Android (.staging via -PstagingRelease) and macOS (.noop.staging, kept deliberately per #39) genuinely do install beside. The claim is now made per platform, and the iOS line says plainly that it replaces, because believing the old wording could cost someone the data they expected to be left alone. macOS is untouched and still consistent with itself. Nothing keys off the iOS product name: the WKCompanion reference uses the bundle id, StrandTests' TEST_HOST points at the macOS NOOP Staging.app rather than the iOS bundle, Info.plist already set CFBundleName and CFBundleDisplayName to NOOP, and both workflows locate the built bundle by a *.app glob. Not claimed as the cause of the Apple Health symptom in #2514: the plist display names were already NOOP, so what Health reads there is still unestablished. Refs #2514
5 tasks done
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.
What this PR does
Two leftovers from
749c94118, which gave the iOS family the production bundle id.1. The iOS app was named "NOOP Staging".
749c94118dropped the.stagingsuffix from every iOS-family bundle id, with its reason stated outright: iOS has no App Store app to install beside (NoopApp is closed), so the overlay served no purpose there and only broke sideloading via AltStore. It enumerated the ids it changed and never reachedPRODUCT_NAME, which has read"NOOP Staging"since719477a8d. That setting sits in the target'sbaseblock with no per-configuration override, so every iOS build including the signed release producedNOOP Staging.appwith an executable to match, under a production bundle identifier. By that commit's own reasoning the name serves no purpose on iOS either.2. Both fork workflows told iOS users the wrong thing about their data. The release footer and the testing-build notes each announced "NOOP Staging identity, installs beside the official app (separate data)" for all three platforms at once. Since
749c94118that is false for iOS: it carries the production id, so a sideload replaces an installed official app and uses its data. Android (.stagingvia-PstagingRelease) and macOS (.noop.staging, kept deliberately per #39) genuinely do install beside. The claim is now made per platform, and the iOS line says plainly that it replaces, since believing the old wording could cost someone data they expected to be left alone.Type of change
Blast radius checked
macOS is untouched and still consistent with itself (
.noop.staging+"NOOP Staging"). Nothing keys off the iOS product name:WKCompanionAppBundleIdentifierresolves from the bundle id, not the product name.StrandTests'sTEST_HOSTpoints at the macOSNOOP Staging.app, not the iOS bundle, so it still tracks the target it hosts.StrandiOS/Resources/Info.plistalready setCFBundleNameandCFBundleDisplayNametoNOOP, so the home-screen label does not change. What changes is the.appdirectory name andCFBundleExecutable.*.appglob, so packaging is unaffected.How it was tested
project.yml:NOOPiOSis now$(BUNDLE_ID_PREFIX).noop+NOOP,Strandstays$(BUNDLE_ID_PREFIX).noop.staging+NOOP Staging.app-build.ymlpath-matchesproject.ymland runs both Apple legs on the PR head.Not claimed
This is not offered as the cause of the Apple Health symptom in #2514. The shipped plist already carried
NOOPfor both display keys, so what Apple Health actually reads for that source name is still unestablished, and the test that would settle it is a fresh install on a device that has never had NOOP.Related issues
Refs #2514