Advanced Build Settings
The Xojo IDE provides an additional tab in the Inspector for advanced build settings in iOS projects. You can access it by selecting "iOS" under the "Build Settings" section in the Navigator, then clicking the gear icon in the Inspector.

Entitlements
Allows the user to provide the XML formatted file with the Capabilities / entitlements not found under the Capabilities section.
Capabilities
App Groups
An app group allows multiple apps developed by the same team to access one or more shared containers.
Registering App Groups: https://developer.apple.com/help/account/identifiers/register-an-app-group
Apple Pay
Enable and configure this capability when your iOS app is going to process Apple Pay payments.
When configuring this capability, it is necessary to add the list of merchant IDs for which your app can accept Apple Pay payments. These are typically in reverse domain notation, starting with the string merchant. For example
merchant.com.yourcompany
.
Associated Domains
Associated domains establish a secure association between domains and your app so you can share credentials or provide features in your app from your website. For example, an online retailer may offer an app to accompany their website and enhance the user experience.
Shared web credentials, universal links, Handoff, and App Clips all use associated domains. Associated domains provide the underpinning to universal links, a feature that allows an app to present content in place of all or part of its website. Users who don't download the app get the same information in a web browser instead of the native app.
More information about how to configure this capability: https://developer.apple.com/documentation/xcode/configuring-an-associated-domain
Background Modes
There are a limited number of background execution modes your app can support that enable it to run when in the background, such as playing audio, receiving location updates, or processing scheduled tasks. For apps that adopt one or more of these modes, the system launches or resumes the app, in the background, and affords it time to process any related events.
The modes are:
Audio, Airplay and Picture in Picture (Audio)
Location updates (Location)
Voice over IP (VOIP)
External accessory communication (External Accessory)
Uses Bluetooth LE accessories (Bluetooth Central)
Acts as a Bluetooth LE accessory (Bluetooth Peripheral)
Background fetch (Fetch)
Push notifications (Remote Notification)
Background processing (Background Processing)
More information about how to configure this capability: https://developer.apple.com/documentation/xcode/configuring-background-execution-modes
Camera Access
In iOS the user must explicitly grant permission for each app to access the camera and microphone. Before your app can use a capture device for the first time, the system presents an alert with an app-specific message that you specify, to ask the user to grant your app access to the capture device.
For example, this capability is required when using the MobileImagePicker control or the Barcode class.
Custom URL Schemes
Custom URL schemes provide a way to reference resources inside your app. Users tapping a custom URL in an email, for example, launch your app in a specified context. Other apps can also trigger your app to launch with specific context data; for example, a photo library app might display a specified image.
URLs must start with your custom scheme name. Add parameters for any options your app supports. For example, a photo library app might define a URL format that includes the name or index of a photo album to display. Examples of URLs for such a scheme could include the following:
myphotoapp:albumname?name="albumname"
myphotoapp:albumname?index=1
URLs are received by your app in the App.HandleURL event.
Data Protection
Data protection allows an app that accesses sensitive user data to use the built-in encryption available on some devices. When your applications designates a specific file as protected, the system stores that file on-disk in an encrypted format
In addition to enabling this capability, the provisioning profiles created for the app (Distribution or Development) also are required to include the com.apple.developer.default-data-protection entitlement.
For use with Declares.
File Sharing
When you enable File Sharing for an iOS app, you can use the macOS Finder to sync files to or from the app's Documentation folder on the device.
In order to enable File Sharing, click on iOS under Build Settings in the Xojo IDE Navigator then in the Inspector, click the File Sharing switch.
Build your app and deploy it to a device. Now any files that your app creates in the SpecialFolder.Documents folder are now accessible through the Finder when your device is connected to the computer via USB.
Also indicates whether your app shares its Documents folder through iTunes.
Game Center
For gaming apps, this allows players to connect to the Game Center service, enabling them to interact with their friends, view leader boards, or play head to head in your game.
Note
Toggling this switch also indicates that the device must be capable of running GameKit.
Health Kit
Allows your app, with user permission, to store and retrieve personal health information.
Home Kit
Allows your app to interact with HomeKit accessories and create home configurations.
iCloud
Enables your app to store data and documents in iCloud. It requires adding the relevant entitlements to the profiles and also accessing the files using Declares.
(Relevant thread in the Forum: https://forum.xojo.com/t/store-file-to-icloud/72825/20)
Inter-App Audio
Allows your app to send audio and to receive audio from other inter-app audio-enabled apps.
Note
This was deprecated by Apple in iOS 13.
Keychain Sharing
Sharing keychain items between multiple targets of the same app, or between different apps that belong to the same developer, relies on the concept of an access group — a collection of targets that all share a common keychain group. When a particular target wants to make a keychain item accessible to the rest of the access group, it specifies the shared keychain group when writing that item to the keychain, which can be useful for apps that need to share account credentials and other sensitive information.
Location
Allows you to add messages that will be displayed when asking users for access to their location. There is one message each for When In Use and Always.
Maps
A routing app, an iOS app that provides point-to-point directions, requires Maps capability to make those directions available to Maps and other apps. Maps capability allows an app to provide specific directions beyond what the Maps app supports, including subway routes, hiking trails, and bike paths.
Personal VPN
With the Personal VPN feature in macOS and iOS, your app can create and manage a VPN configuration that uses one of the built-in VPN protocols (IPsec or IKEv2). The user must explicitly authorize your app the first time it saves a VPN configuration.
More info for configuration: https://developer.apple.com/documentation/bundleresources/entitlements/com.apple.developer.networking.vpn.api?language=objc
Photos Access
Allows you to add a message indicating why your app needs access to the user's Photo Library. This is used with the Image Picker control.
Push Notifications
Specifies whether the device should use the development or production Apple Push Notification service when registering for push notifications. Xojo will automatically set this value based on whether or not you are building for the App Store. This works with Xojo's NotificationCenter class.
Shortcut Items
Allows you to specify the default set of shortcut items. The editor accepts a comma delimited list of SFSymbols, UIApplicationShortcutIconTypes and/or images from your project.
Time-Sensitive Notifications
This priority is just like Active for Notifications, except that it can break through system controls such as notification summary and Focus if it has been allowed by the user. This priority should only be used when the notification requires immediate attention. For example, medication reminders, account security and package delivery alerts.
Related Documentation: https://documentation.xojo.com/api/user_interface/notifications/notificationcontent.html
User Authentication
Allows your app to use Touch ID/Face ID. Enable this when using Xojo's UserAuthentication class.
Wallet
Allows your app to add items to and delete items from the Wallet.
The Wallet app on iOS allows users to organize their passes — tickets, gift cards, loyalty cards, boarding passes, and the payment cards they use with Apple Pay. By integrating with PassKit (Apple Pay and Wallet), your app can access any related passes and allow the user to manage them.
Wireless Accessories
Allows your app to configure MFi Wi-Fi accessories which are devices compatible with HomeKit, AirPlay Audio, Find My and CarPlay.
Privacy
Apple did introduce a privacy policy that requires the inclusion of a privacy manifest file in new and updated apps created for iOS, iPadOS, tvOS and VisionOS distributed through the AppStore.
if your apps only relies on the Xojo provided iOS framework functionality, then you don't need to do anything at all. When building or running the iOS app, Xojo will create and add the required PrivacyInfo.xcprivacy file for you.
If you are using Declare calls or rely on iOS third party libraries or plug-ins, then you should check with the developer to know if any of the calls made fall into the Privacy Categories listed by Apple (keep in mind that these can change over time), and select those under the Privacy Editor.
Related Blog Post: https://blog.xojo.com/2024/06/26/ios-privacy-editor/