Note: This version does not include Carthage support. We are revisiting our Carthage approach and will reintroduce it in an upcoming version.
- Renames SPM packages to
AppboySegment
andAppboySegmentCore
fromFull-SDK
andCore
.- In order to migrate, update the package and change import statements to
import AppboySegment
orimport AppboySegmentCore
.
- In order to migrate, update the package and change import statements to
Note: This version does not include Carthage support. We are revisiting our Carthage approach and will reintroduce it in an upcoming version.
- Updated to Braze tvOS SDK 4.3.x.
- A
track
call with event nameCompleted Order
will now be treated as a purchase event for backwards compatibility with Segment eCommerce v1 API.
Note: This version does not include Carthage support. We are revisiting our Carthage approach and will reintroduce it in an upcoming version.
- Updated to Braze iOS SDK 4.3.x.
Note: This version does not include Carthage support. We are revisiting our Carthage approach and will reintroduce it in an upcoming version.
- Updated to Braze iOS SDK 4.1.0.
- Adds support for tvOS when using CocoaPods. For tvOS, add the following lines to your Podfile target:
pod 'Segment-Appboy/tvOS'
pod 'Analytics'
And add the functionality to your AppDelegate.m
:
SEGAnalyticsConfiguration *config = [SEGAnalyticsConfiguration configurationWithWriteKey:@"<segment key here>"];
[config use:[SEGAppboyIntegrationFactory instance]];
[[SEGAppboyIntegrationFactory instance] saveLaunchOptions:launchOptions];
[SEGAnalytics setupWithConfiguration:config];
- Updated to Braze iOS SDK 4.0.1.
- Fixes an issue with Swift Package Manager which caused errors at compile time.
- Updated to Braze iOS SDK 3.31.0.
- Adds initial support for Swift Package Manager.
- Two new packages were added:
Full-SDK
, which contains the full SDK (including UI elements) and corresponds to theFull-SDK
pod.Core
, which contains the core Braze functionality and corresponds to theCore
pod.
- Note that tvOS support is not available via Swift Package Manager for this release.
- To add the package to your project follow these steps:
- Select
File > Swift Packages > Add Package Dependency
.- In the search bar, enter https://github.com/Appboy/segment-ios.
- Select
Full-SDK
orCore
, depending on your use case.
- Select
- In your app's target, under
Build Settings > Other Linker Flags
, add the-ObjC
linker flag. - In the Xcode menu, click
Product > Scheme > Edit Scheme...
- Click the expand
▶️ next toBuild
and selectPost-actions
. Press+
and selectNew Run Script Action
. - In the dropdown next to
Provide build settings from
, select your app's target. - Copy this script into the open field:
bash "$BUILT_PRODUCTS_DIR/Appboy_iOS_SDK_AppboyKit.bundle/Appboy.bundle/appboy-spm-cleanup.sh"
- In the search bar, enter https://github.com/Appboy/segment-ios.
- Note that when importing the
Full-SDK
, you need to use an underscore (import Full_SDK
).
- Select
- Two new packages were added:
- Updated headers for compatibility with Analytics 4.1.0.
- Updated to Braze iOS SDK 3.29.1.
- Fixed an issue when building to simulators in certain cases.
- Updated to Braze iOS SDK 3.27.0. This release adds support for iOS 14 and requires XCode 12. Please read the Braze iOS SDK changelog for details.
- Updated to Braze iOS SDK 3.26.1.
- Deprecates the compilation macro
ABK_ENABLE_IDFA_COLLECTION
in favor of theABKIDFADelegate
implementation.ABK_ENABLE_IDFA_COLLECTION
will be removed in a future release and will stop functioning properly in iOS 14. To continue collecting IDFA on iOS 14 devices, you must upgrade to Xcode 12 and implementApp Tracking Transparency
and Braze'sABKIDFADelegate
(see the iOS 14 upgrade guide for more information).ABKIDFADelegate
can be passed in through settingappboyOptions
on theSEGAppboyIntegrationFactory
.
- Added Binary Project Specification file for more efficient Carthage integration.
- Update your Cartfile to use
binary "https://raw.githubusercontent.com/Appboy/appboy-segment-ios/master/Segment_Appboy.json"
instead ofgithub "appboy/appboy-segment-ios"
- Support for this integration method was added starting with version 3.2.0 of the SDK.
- Update your Cartfile to use
- Added Carthage support
To install the Braze integration through Carthage, add the following lines to your Cartfile
:
github "segmentio/analytics-ios"
github "appboy/appboy-segment-ios"
github "appboy/appboy-ios-sdk"
And run:
carthage update
Follow the standard procedure to add the frameworks built/retrieved by Carthage to your project (see Adding frameworks to an application)
- Updated to Braze iOS SDK 3.24.1.
- Added ability to set
appboyOptions
on theSEGAppboyIntegrationFactory
for example:
[SEGAppboyIntegrationFactory instance].appboyOptions = @{ABKMinimumTriggerTimeIntervalKey: @1};
The full list of options are documented in Appboy.h. Shout out to @maloneranger for the feature suggestion and PR.
- Added the ability to import one of our UI subspecs instead of the full SDK. To do this, update your
Podfile
to useSegment-Appboy/InAppMessage
,Segment-Appboy/NewsFeed
, orSegment-Appboy/ContentCards
instead ofSegment-Appboy
.Segment-Appboy
will continue to use the full SDK by default. Thanks @khaptonstall!
- Updated to Braze iOS SDK 3.22.0.
- Updated code to call all Braze iOS SDK push handling methods that call UI APIs from the main thread. Thanks @gilserrap and @khaptonstall!
- Log separate purchases for each product in the
products
array in atrack
call.- In the past we used the event name as the product ID.
- Now if a
track
call has the event nameOrder Completed
or the keyrevenue
included inproperties
and also has aproducts
array, we will log each object in the array as a separate purchase usingproductId
as the product ID.price
andquantity
will be read from the individual array if available. All non-Braze recognized fields from the high levelproperties
and each individual product will be combined and sent as event properties. - If there is no
products
array we will continue using the event name as the product ID if the keyrevenue
is included inproperties
.
- Added a push delegate method for apps using the
UserNotification
framework.- Follow our documentation for registering for push notifications using the
UserNotification
framework. - In
userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler
add the following block of code:
if ([Appboy sharedInstance] == nil) { [[SEGAppboyIntegrationFactory instance].appboyHelper saveUserNotificationCenter:center notificationResponse:response]; } [[SEGAppboyIntegrationFactory instance].appboyHelper userNotificationCenter:center receivedNotificationResponse:response]; if (completionHandler) { completionHandler(); }
- Follow our documentation for registering for push notifications using the
- Updated to Braze iOS SDK 3.21.0.
Important: This patch updates the Braze iOS SDK Dependency from 3.20.1 to 3.20.2, which contains important bugfixes. Integrators should upgrade to this patch version. Please see the Braze iOS SDK Changelog for more information.
- Updated to Braze iOS SDK 3.20.2.
Important: This release has known issues displaying HTML in-app messages. Do not upgrade to this version and upgrade to 2.2.2 and above instead. If you are using this version, you are strongly encouraged to upgrade to 2.2.2 or above if you make use of HTML in-app messages.
- Updated to Braze iOS SDK 3.20.1.
Important: This release has known issues displaying HTML in-app messages. Do not upgrade to this version and upgrade to 2.2.2 and above instead. If you are using this version, you are strongly encouraged to upgrade to 2.2.2 or above if you make use of HTML in-app messages.
- Updated to Braze iOS SDK 3.20.0.
- Important: Braze iOS SDK 3.20.0 contains updated push token registration methods. We recommend upgrading to this version as soon as possible to ensure a smooth transition as devices upgrade to iOS 13. In
application:didRegisterForRemoteNotificationsWithDeviceToken:
, replace
[[Appboy sharedInstance] registerPushToken:
[NSString stringWithFormat:@"%@", deviceToken]];
with
[[Appboy sharedInstance] registerDeviceToken:deviceToken]];
Important: This release has known issues displaying HTML in-app messages. Do not upgrade to this version and upgrade to 2.2.2 and above instead. If you are using this version, you are strongly encouraged to upgrade to 2.2.2 or above if you make use of HTML in-app messages.
- Updated to Braze iOS SDK 3.19.0.
- Supports Braze 3.17.0.
- Updates the podspec to explicitly require version 3.17.0 of the Braze iOS SDK.
- Fixed an issue where the Braze endpoint delegate would not correctly set the Segment-side configured endpoint when using Braze iOS SDK 3.14.1+.
- Added the ability to import only the
Appboy-iOS-SDK/Core
subspec instead of the full SDK. To do this, update yourPodfile
to use theSegment-Appboy/Core
subspec instead ofSegment-Appboy
.Segment-Appboy
will continue to use the full SDK by default. Thanks @foggy1 and @bdrelling! See Appboy#20.
- Supports analytics-ios 3.+ and Braze 3.10.0+.
- Fixes a potential race condition when calling
identify
.
- Supports analytics-ios 3.+ and Braze 3.1.0+.
- Fixes an issue for those using
use_frameworks!
in their Podfile.
- Supports analytics-ios 3.+ and Braze 3.0.0+.
- Adds support for custom attribute values with array types.
- Adds support for purchase revenue with NSNumber type.
- Adds support for custom endpoints which can be set on the Segment dashboard.
- Supports analytics-ios 3.+ and Braze 2.30.0+.
- Fixes an issue where install attribution data was being sent up as an event.
- Updates the wrapper SDK to work with Xcode 9 beta 2.
- Supports analytics-ios 3.+ and Braze 2.29.0+.
- Adds support for custom attribute values with date types.
- Supports analytics-ios 3.+ and Braze 2.21.0+.
- Updates the wrapper SDK to work with the Cocoapod 1.0.x.
- Supports analytics-ios 3.+ and Braze 2.20.1+.
- Updates the Podspec to use analytics-ios with the latest 3.x version.
- Supports analytics-ios 3.0.+ and Braze 2.19.1+.
- Adds support for custom attribute values with short, long, and float types.
- Modifies
SEGAppboyIntegrationFactory
'sinstance
method to return aninstancetype
for simpler Swift integration.
- Supports analytics-ios 3.0.+ and Braze 2.18.2+.
- Fixes an issue where calling
changeUser:
would sporadically result in deadlock.
- Supports analytics-ios 3.0.+ and Braze 2.18.2+.
- Initial release with push support.
- Supports analytics-ios 3.0.+ and Braze 2.15.+.
- Initial alpha release.