Guard CloudKit startup in non-entitled builds#322
Open
tymrtn wants to merge 1 commit intoTermiT:masterfrom
Open
Guard CloudKit startup in non-entitled builds#322tymrtn wants to merge 1 commit intoTermiT:masterfrom
tymrtn wants to merge 1 commit intoTermiT:masterfrom
Conversation
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
Flycut can crash when iCloud sync is enabled in builds that do not have valid iCloud entitlements (common in local/unsigned debug workflows).
Root cause
MJCloudKitUserDefaultsSyncassumes CloudKit startup is always valid, then proceeds into container/account setup paths that can throw/trap when:Solution
Harden CloudKit startup in
MJCloudKitUserDefaultsSyncby:iCloud.<bundleIdentifier>when needed).com.apple.developer.icloud-container-identifiers) before enabling CloudKit.Files changed
MJCloudKitUserDefaultsSync/MJCloudKitUserDefaultsSync/MJCloudKitUserDefaultsSync.mWhy this is safe
Validation
xcodebuild -project MJCloudKitUserDefaultsSync/MJCloudKitUserDefaultsSync.xcodeproj -scheme MJCloudKitUserDefaultsSync -configuration Debug buildAdditional context
Top-level app build on Xcode 26 may hit an unrelated existing project build-cycle warning in this repository; this PR intentionally does not change project build-phase wiring and is scoped only to the CloudKit crash guard.
Closes #321