What are entitlements?
Entitlements are key-value pairs that grant an app permission to use specific protected system capabilities, such as push notifications, iCloud, App Groups, Sign in with Apple, or associated domains. They tell iOS that your app is allowed to do something privileged, and they are sealed into the app's code signature so the system can trust them. Without the right entitlement, the matching capability simply will not work.
How entitlements work
In Xcode you usually do not edit entitlements by hand. You turn on a capability in the project's Signing and Capabilities settings, and Xcode writes the corresponding key into an .entitlements file. When you build, those values are embedded into the code signature. For the build to be valid, each entitlement must also be enabled on the App ID in your developer account and present in the provisioning profile. This three way match, between the entitlements file, the App ID, and the profile, is what lets Apple verify that you are authorized to use the capability.
Common entitlements
Many everyday iOS features depend on an entitlement. Push notifications require the aps-environment entitlement. iCloud and CloudKit, App Groups for sharing data between an app and its extensions, Sign in with Apple, HealthKit, and associated domains for Universal Links all have their own entitlements. Some, like the Push Notifications or HealthKit capabilities, also have App Store review expectations: Apple checks that an app actually uses a capability it declares.
Entitlements versus Info.plist and how AppFlight handles them
It is easy to confuse entitlements with Info.plist privacy strings, but they do different jobs. An entitlement grants the right to use a capability and is part of the signature. An Info.plist usage description, like the text shown when the app asks for camera access, configures the runtime permission prompt. AppFlight builds native Swift and SwiftUI projects and configures the entitlements a capability needs as part of wiring features and signing the build, so the entitlements file, App ID, and provisioning profile stay in sync rather than being edited by hand.
FAQ
What is the difference between entitlements and Info.plist keys?
Entitlements grant the app the right to use a protected capability and are sealed into the code signature. Info.plist keys configure the app and include privacy purpose strings shown to the user. A camera permission prompt comes from Info.plist; the right to use iCloud comes from an entitlement.
Where are entitlements stored?
During development they live in an .entitlements file that Xcode manages when you toggle capabilities. At build time the values are embedded into the app code signature, and they must line up with the App ID and provisioning profile Apple issued.
Why does adding a capability sometimes break signing?
Each entitlement has to be enabled on your App ID and reflected in the provisioning profile. If you add an entitlement the profile does not include, signing fails until the App ID and profile are updated to match.