Context
Production iOS sync needs several entitlements / Info.plist keys that aren't codified or documented. Missing them causes App Review rejections or silent runtime failures.
Required (see §5 of the research doc)
aps-environment (development / production) — APNs.
UIBackgroundModes: remote-notification (silent-push wake). Add processing / fetch only if a BGTaskScheduler opportunistic top-up is added — do not rely on it (iOS 26 does not guarantee background grants).
- Decide against
com.apple.developer.networking.multicast — it needs Apple approval and mDNS is not used for WAN. Document this so nobody re-adds an mDNS dependency expecting it to work on device.
NSLocalNetworkUsageDescription + NSBonjourServices only if any LAN discovery is attempted; otherwise omit to avoid the Local Network permission prompt entirely (relay-only is cleaner on iOS).
Task
Ship a documented entitlements / Info.plist template + consumer-app docs. Note the APNs token-based (.p8) relay config and the apns-push-type: background / apns-priority: 5 expectations that match WaveSyncPushHandler.
References
- Gap P1-4 in
docs/research/ios-sync-state-of-the-art.md
Context
Production iOS sync needs several entitlements / Info.plist keys that aren't codified or documented. Missing them causes App Review rejections or silent runtime failures.
Required (see §5 of the research doc)
aps-environment(development/production) — APNs.UIBackgroundModes:remote-notification(silent-push wake). Addprocessing/fetchonly if aBGTaskScheduleropportunistic top-up is added — do not rely on it (iOS 26 does not guarantee background grants).com.apple.developer.networking.multicast— it needs Apple approval and mDNS is not used for WAN. Document this so nobody re-adds an mDNS dependency expecting it to work on device.NSLocalNetworkUsageDescription+NSBonjourServicesonly if any LAN discovery is attempted; otherwise omit to avoid the Local Network permission prompt entirely (relay-only is cleaner on iOS).Task
Ship a documented entitlements / Info.plist template + consumer-app docs. Note the APNs token-based (
.p8) relay config and theapns-push-type: background/apns-priority: 5expectations that matchWaveSyncPushHandler.References
docs/research/ios-sync-state-of-the-art.md