Skip to content

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 users’ opt-in status.

Upgrade summary

If Your App Uses: Upgrade Recommendation Description
Xcode 12 Upgrade to iOS SDK v3.27 or later Customers using Xcode 12 must use v3.27.0+ for compatibility. If you experience any issues or questions related to our iOS 14 compatibility, open a new GitHub issue.
Most Recent Location Upgrade to iOS SDK v3.26.1 or later 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 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 AppTrackingTransparency framework in order to continue collecting IDFA. If you pass IDFA to the Braze SDK you must also upgrade to v3.27.0+ at that time.

Apps that do not use the new iOS 14 APIs will be unable to collect IDFA, and will instead collect a blank ID (00000000-0000-0000-0000-000000000000) after Apple begins to enforce this change in 2021. For more information on whether or not this applies to your app, see IDFA details.

iOS 14 behavior changes

Approximate location permission

Precise Location

Overview

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

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.

Location targeting

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

Overview

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.

Changes to Braze IDFA collection

IDFA

  1. Braze will continue to allow apps to provide a user’s IDFA value to the Braze SDK.

  2. The ABK_ENABLE_IDFA_COLLECTION compilation 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.

  3. 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 your users’ opt-in status. The reason for this change is that in iOS 14, the old advertisingTrackingEnabled field will always return No.

  4. 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 External ID migration API endpoints.

Read more from Apple about their Privacy Updates and the new App Tracking Transparency framework.

Push authorization

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.
  • You will be required to paste a link to your app’s Privacy Policy URL.

As you fill out your questionnaire, 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.

To learn more about this feature, see Apple’s Privacy and Data Use.

New Stuff!