We strongly recommend that you implement the SDK via a package manager such as Swift Package Manager, CocoaPods, or Carthage. It will save you a lot of time and automate much of the process for you. However, if you are unable to do so you may complete the integration manually by following the instructions below.
Step 1: Downloading the Braze SDK
Appboy_iOS_SDK.zipfrom the release page. If integrating an SDK version before 3.24.0, instead clone the Braze iOS SDK Github project:
1 2 # This command will clone both versions of the Braze SDK $ git clone firstname.lastname@example.org:Appboy/appboy-ios-sdk.git
- In Xcode, from the project navigator, select the destination project or group for Braze
- Navigate to File > Add Files to “Project_Name”
- Add the
AppboyUIfolders to your project as a group.
- Make sure that the “Copy items into destination group’s folder” option is checked if you are integrating for the first time. Expand “Options” in the file picker to select “Copy items if needed” and “Create groups.”
- Delete the
- (Optional) If you are one of the following:
- You only want the core analytics features of the SDK and do not use any UI features (e.g, In-App Messages or Content Cards)
- You have custom UI for Braze’s UI features and handle the image downloading yourself
You can use the core version of the SDK by removing the file
Appboy.bundle. This will remove the SDWebImage framework dependency and all the UI related resources (e.g. Nib files, images, localization files) from the SDK.
If you try to use the core version of the SDK without Braze’s UI features, in-app messages will not display. Trying to display Braze’s Content Cards UI with the core version will lead to unpredictable behavior.
Step 2: Adding Required iOS Libraries
- Click on the target for your project (using the left-side navigation), and select the “Build Phases” tab
- Click the button under “Link Binary With Libraries”
- In the menu, select
- Mark this library as required using the pull-down menu next to
- Repeat to add each of the following required frameworks to your project, marking each as “required”
- Add the following frameworks and mark them as optional:
- Select the “Build Settings” tab. In the “Linking” section, locate the “Other Linker Flags” setting and add the
- The SDWebImage framework is required for the Braze News Feed, Content Cards and In-App Messaging to function properly. SDWebImage is used for image downloading and displaying, including GIFs. If you intend to use the News Feed, Content Cards or In-App Messages, please follow the steps below.
- Follow the SDWebImage Installation Guide’s instructions for manually using SDWebImage as a Sub-Project in Xcode.
- In the
SDWebImageproject settings, open the “Build Settings” tab. In the “Linking” section, locate the “Other Linker Flags” setting and add the
-ObjCflag if it isn’t already present.
Optional Location Tracking
- Add the
CoreLocation.frameworkto enable location tracking
- You must authorize location for your users using
CLLocationManagerin your app
Step 3: Objective-C Bridging Header
If your project uses Swift, you will need a bridging header file.
If you do not have a bridging header file, create one and name it
your-product-module-name-Bridging-Header.h by choosing File > New > File > (iOS or OS X) > Source > Header File. Then add the following line of code to the top of your bridging header file:
1 #import "AppboyKit.h"
In your project’s Build Settings, add the relative path of your header file to the
Objective-C Bridging Header build setting under
Swift Compiler - Code Generation.
You do not need to follow these steps if your project only uses Objective-C.
Follow the instructions for Completing the Integration.