Fix xcodegen clobbering Info.plist/entitlements; add device-install script#1
Merged
Merged
Conversation
XcodeGen's `info:`/`entitlements:` blocks *generate* those files on every `xcodegen generate`, overwriting the hand-authored ones in the source tree. Because project.yml carried no `properties:`, each run silently stripped required keys, and the loss only ever showed up at runtime (CI checks compilation only), so it went unnoticed: - iOS: lost `UIBackgroundModes=[audio]` (background audio for long sessions), `MPNowPlayingInfoPropertyMediaType`, launch screen + orientations. - watchOS: lost `WKApplication=true` — installd then rejects the embedded watch bundle, blocking install of the iOS app on device/simulator. - macOS: lost `NSHighResolutionCapable`, now-playing media type, and the app-sandbox / network.client entitlements (built unsandboxed). Move these keys into project.yml's `info.properties` / `entitlements.properties` so xcodegen emits them every time. Also add `WKCompanionAppBundleIdentifier` to pair the watch app with its iOS host (referenced in a comment but never actually present). Verified: the regenerated bundles carry the keys, the macOS app is sandboxed again, and the full iOS+watch bundle installs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…iPhone Auto-detects the connected device UDID and the Apple Development team (from the signing cert), builds CascadeiOS with automatic signing, and installs + launches it via devicectl. Uses -allowProvisioningDeviceRegistration so a freshly-connected device is registered with the team on first run. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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
XcodeGen's
info:/entitlements:blocks generate those files on everyxcodegen generate, overwriting the hand-authored ones in the source tree. Becauseproject.ymlcarried noproperties:, each run silently stripped required keys — and since CI only checks compilation, the loss never surfaced:UIBackgroundModes=[audio](background audio for long sessions),MPNowPlayingInfoPropertyMediaType, launch screen + orientations.WKApplication=true→ installd rejects the embedded watch bundle, blocking install of the iOS app on device/simulator.NSHighResolutionCapable, now-playing media type, and the app-sandbox / network.client entitlements (built unsandboxed).Fix
Move these keys into
project.yml'sinfo.properties/entitlements.propertiesso xcodegen emits them every time. Also addWKCompanionAppBundleIdentifierto pair the watch app with its iOS host (referenced in a comment but never actually present).Plus
apps/apple/scripts/install-device.sh— one command to build, sign, install, and launch CascadeiOS on a connected iPhone (auto-detects device + team, registers the device on first run).Verified
UIBackgroundModes,WKApplication, sandbox entitlement).🤖 Generated with Claude Code