iOS 14 SDK Upgrade Guide
This guide describes Braze-related changes introduced in iOS 14 and the required upgrade steps for your Braze iOS SDK integration.
For a complete list of new iOS 14 updates, see Apple’s iOS 14 Page.
Summary of iOS 14 breaking changes
- Apps targeting iOS 14 / Xcode 12 must use our official iOS 14 release.
- Geofences are no longer supported by iOS for users who choose the new approximate location permission.
- Use of the “Last Known Location” targeting features will require an upgrade to Braze iOS SDK v3.26.1+ for compatibility with approximate location permission. Note that if you are using XCode 12, you will need to upgrade to at least v3.27.0.
- As of iOS 14.5, IDFA collection and certain data sharing require the new AppTrackingTransparency Framework permission prompt.
- If you use the “Ad Tracking Enabled” field for campaign targeting or analytics, you will need to upgrade to Xcode 12 and use the new AppTrackingTransparency framework to report end users’ opt-in status.
|If Your App Uses:||Upgrade Recommendation||Description|
|Xcode 12||Upgrade to iOS SDK v3.27 or above||Customers using Xcode 12 must use v3.27.0+ for compatibility. If you experience any issues or questions related to our iOS 14 compatibility, please open a new Github Issue.|
|Most Recent Location||Upgrade to iOS SDK v3.26.1 or above||If you use the Most Recent Location targeting feature and are still using XCode 11, you should upgrade to at least iOS SDK v3.26.1 which supports the new Approximate Location feature. Older SDKs will not be able to reliably collect location when a user upgrades to iOS 14 and choose Approximate Location.
Even though your app might not target iOS 14, your end users may upgrade to iOS 14 and begin to use the new location accuracy option. Apps that do not upgrade to iOS SDK v3.26.1+ will not be able to reliably collect location attributes when users provide their approximate location on iOS 14 devices.
|IDFA Ad Tracking ID||Upgrade to Xcode 12 and iOS SDK v3.27 may be required||Sometime in 2021, Apple will begin to require a permission prompt for the collection of the IDFA. At that time, apps must upgrade to Xcode 12 and use the new
Apps that do not use the new iOS 14 APIs will be unable to collect IDFA, and will instead collect a blank ID (
iOS 14 Behavior Changes
Approximate Location Permission
When requesting location permission, users will now have a choice to provide their precise location (previous behavior), or the new approximate location. Approximate location will return a larger radius in which the user is located, instead of their exact coordinates.
Geofences are no longer supported by iOS for users who choose the new approximate location permission. While no updates are required for your Braze SDK integration, you may need to adjust your location-based marketing strategy for campaigns that rely on geofences.
To continue to collect users’ last known location when approximate location is granted, your app will need to upgrade to at least v3.26.1 of the Braze iOS SDK. Keep in mind that the location will be less precise, and based on our testing has been upwards of 12,000 meters (7+ miles). When using the last known location targeting options in the Braze Dashboard, be sure to increase the location’s radius to account for new approximate locations (we recommend at least a 1 mile/1.6km radius).
Apps that do not upgrade the Braze iOS SDK to at least v3.26.1 will no longer be able to use location tracking when approximate location is granted on iOS 14 devices.
Users who have already granted location access will continue to provide precise location after upgrading.
Note that if you are using XCode 12, you will need to upgrade to at least v3.27.0.
For more information on Approximate Location, see Apple’s What’s New In Location WWDC Video.
IDFA and App Tracking Transparency
IDFA (Identifier for Advertisers) is an identifier provided by Apple for use with advertising and attribution partners for cross-device tracking and is tied to an individual’s Apple ID.
Starting in iOS 14.5, a new permission prompt (launched by the new
AppTrackingTransparency framework) must be shown to collect explicit user consent for IDFA. This permission prompt to “track you across apps and websites owned by other companies” will be requested similarly to how you’d prompt users to request their location.
If a user does not accept the prompt, or if you do not upgrade to Xcode 12’s
AppTrackingTransparency framework, then a blank IDFA value (
00000000-0000-0000-0000-000000000000) will be returned, and your app will not be allowed to prompt the user again.
These IDFA updates will take effect once end-users upgrade their device to iOS 14.5. Please ensure your app uses the new
AppTransparencyFramework with Xcode 12 if you plan to collect IDFA.
Changes to Braze IDFA collection
Braze will continue to allow apps to provide a user’s IDFA value to the Braze SDK.
ABK_ENABLE_IDFA_COLLECTIONcompilation macro, which would conditionally compile in optional automatic IDFA collection, will no longer function in iOS 14 and has been removed in 3.27.0.
If you use the “Ad Tracking Enabled” field for campaign targeting or analytics, you will need to upgrade to Xcode 12 and use the new AppTrackingTransparency framework to report end users’ opt-in status. The reason for this change is that in iOS 14, the old
advertisingTrackingEnabledfield will always return No.
If your app has used IDFA or IDFV as your Braze External ID, we strongly recommend migrating away from these identifiers in favor of a UUID. For more information on migrating External IDs, see our new External ID Migration API Endpoint.
No changes to Provisional Push Authorization are included in iOS 14. In an earlier beta version of iOS 14, Apple introduced a change which has since been reverted back to prior behavior.
iOS 14 New Features
App Privacy and Data Collection Overview
Since Dec 8, 2020, all submissions to the App Store require additional steps to adhere to Apple’s new App Privacy standards.
Apple Developer Portal Questionnaire
On the Apple Developer Portal:
- You will be asked to fill out a questionnaire to describe how your app or third-party partners collect data.
- The questionnaire is expected to always be up-to-date with your most recent release in the App Store.
- The questionnaire may be updated even without a new app submission.
As you fill out your questionnaire, please consult your legal team, and consider how your usage of Braze for the following fields may affect your disclosure requirements.
Braze Default Data Collection
Identifiers - An anonymous device identifier is always collected by the Braze SDK. This is currently set to the device IDFV (identifier for vendor).
Usage Data - This can include Braze’s session data, as well as any event or attribute collection you use to measure product interaction.
Optional Data Collection
Data you may optionally be collecting through your usage of Braze:
Location - Both Approximate Location and Precise Location can optionally be collected by the Braze SDK. These feature are disabled by default.
Contact Info - This can include events and attributes related to the user’s identity.
Purchases - This can include events and purchases logged on behalf of the user.
Note that this is not an exhaustive list. If you manually collect other information about your users in Braze that apply to other categories in the App Privacy Questionnaire, you will need to disclose those as well.
To learn more about this feature, see Apple’s Privacy and Data Use.
An App clip is a small part of your app that can be quickly accessed without installation by visiting a URL or scanning a QR code.
This feature gives users quicker access to sample your app, with an opportunity to either upgrade to the full app experience or auto-delete after a period of inactivity.
To learn more about App Clips, see Apple’s App Clip Documentation
If you’re interested in using Braze within App Clips, please submit feedback in our Product Portal.