Fix startup crash in sideloaded builds without iCloud entitlements

Sideloading tools re-sign the app with a team that cannot register the
iCloud.stream.yattee.app container, and CKContainer(identifier:) fatally
traps when the entitlement is missing. Detect availability by parsing
the embedded provisioning profile, skip creating any CloudKit objects
when the entitlement is absent, and show an explanation in iCloud
settings instead of the sync toggle.
This commit is contained in:
Arkadiusz Fal
2026-07-27 20:08:21 +02:00
parent 7c07189023
commit 40f043b769
4 changed files with 135 additions and 28 deletions

View File

@@ -12147,6 +12147,28 @@
}
}
},
"settings.icloud.unavailable" : {
"comment" : "Label shown instead of the iCloud sync toggle when the app installation lacks iCloud entitlements",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "iCloud Sync Unavailable"
}
}
}
},
"settings.icloud.unavailable.footer" : {
"comment" : "Footer explaining why iCloud sync is unavailable in sideloaded installations",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "This copy of Yattee was installed without iCloud access, so sync is not available. iCloud sync requires installing the app from the App Store or TestFlight."
}
}
}
},
"settings.icloud.update.message" : {
"comment" : "Message explaining that newer app version is needed for some synced data",
"localizations" : {