Releases: Appboy/appboy-ios-sdk
Releases · Appboy/appboy-ios-sdk
3.30.0
3.30.0
Breaking
- Body click analytics will no longer automatically be collected for HTML in-app messages created using the HTML Upload with Preview option in the platform.
- To continue to receive body click analytics, you must log body clicks explicitly from your message via Javascript using
appboyBridge.logClick()
.
- To continue to receive body click analytics, you must log body clicks explicitly from your message via Javascript using
Fixed
- Fixes a bug with Full in-app messages where the button positions did not match the preview on the Braze dashboard.
- Fixes a bug where in-app messages would be displayed below the application window under specific conditions.
- Apps that set up their window asynchronously at startup could accidentally hide the in-app message window if one was being displayed (e.g. as a result of clicking on a test in-app message notification).
Added
- Adds support for custom endpoints with a scheme included (
https
,http
, etc.). For example,http://localhost:3001
will no longer result inhttps://http://localhost:3001
as the resolved endpoint.
3.29.1
3.29.0
Added
- Adds initial support for Swift Package Manager. There are 2 new packages that have been added:
AppboyKit
for the core SDK andAppboyUI
for the full SDK (including UI elements), which correspond to theAppboy-iOS-SDK/Core
andAppboy-iOS-SDK
pods, respectively.- Note that tvOS support is not available via Swift Package Manager for this release. Push Stories is only available through a side-by-side integration with Cocoapods.
- 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/Appboy-ios-sdk
. - Select one of
AppboyKit
orAppboyUI
. Note thatAppboyUI
includesAppboyKit
automatically.
- In the search bar, enter
- 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:
rm -rf "${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app/Frameworks/libAppboyKitLibrary.a" rm -rf "${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app/Plugins/libAppboyKitLibrary.a"
- Click the expand
- Select
3.28.0
Breaking
- Removes
userNotificationWasSentFromAppboy:
andpushNotificationWasSentFromAppboy:
onAppboy
. UseisAppboyUserNotification:
andisAppboyRemoteNotification:
inABKPushUtils
instead. - Updates
ABKURLDelegate
's method signature forhandleAppboyURL:fromChannel:withExtras:
to include nullability annotations required for proper Swift support.
Fixed
- Fixes a race condition in
Appboy
methodwipeDataAndDisableForAppRun
where certain persisted fields would still be available immediately after calling the method. These fields now are removed synchronously.
Changed
- Updated SDWebImage to use version 5.9.x.
3.27.0
Breaking
- Adds support for iOS 14. Requires Xcode 12.
- Removes the
ABK_ENABLE_IDFA_COLLECTION
preprocessor macro from the SDK.- If you wish to send IDFA to Braze, please use the
ABKIDFADelegate
. For more information, reference our documentation.
- If you wish to send IDFA to Braze, please use the
- Updates the
ABKIDFADelegate
protocol by renamingisAdvertisingTrackingEnabled
toisAdvertisingTrackingEnabledOrATTAuthorized
to reflect the addition of theAppTrackingTransparency
framework in iOS 14.- If you use the
Ad Tracking Enabled
segment filter on the Braze dashboard or are implementingAppTrackingTransparency
, you must update your integration to useAppTrackingTransparency
to read the correct user status. Please see our sample app for implementation details. - If you do not use the
Ad Tracking Enabled
segment filter and are not implementingAppTrackingTransparency
yet, your implementation ofisAdvertisingTrackingEnabledOrATTAuthorized
may temporarily continue to useisAdvertisingTrackingEnabled
. However, the returned value will always beNO
in iOS 14, regardless of actual IDFA availability. - Note that Apple announced that they will delay the enforcement of upcoming IDFA changes until early 2021. Please reference our iOS 14 upgrade guide for more details.
- If you use the
- Updates the minimum required version of SDWebImage from 5.0 to 5.8.2.
- Integrators will now be required to exclude the
arm64
simulator slice in their entire project.- This is done automatically when integrating via Cocoapods.
- For other cases:
- If you are using
xcconfig
files to build your app, please set:- For iOS targets:
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
- For tvOS targets:
EXCLUDED_ARCHS[sdk=appletvsimulator*] = arm64
- For iOS targets:
- If you are using the Xcode Build Settings panel, enable Build Active Architecture Only for the configuration you use to run your app on the simulator. (
ONLY_ACTIVE_ARCH = YES
)
- If you are using
3.27.0-beta3
- This release can be used to beta test iOS 14. See
3.27.0-beta2
and3.27.0-beta1
notes for additional changes.
Changed
- Adds support for Push Stories and the tvOS SDK when using Xcode 12.
3.27.0-beta2
- This release can be used to beta test iOS 14. See
3.27.0-beta1
notes for additional changes. - Push Stories and the tvOS SDK are not yet compatible with Xcode 12. This will be added in a future beta release.
Breaking
- Updates
IDFADelegate
protocol by renamingisAdvertisingTrackingEnabled
toisAdvertisingTrackingEnabledOrATTAuthorized
to reflect the new requirements of iOS 14. See theIDFADelegate
implementation in Stopwatch for an example.
Changed
- Integrators will now be required to exclude the
arm64
simulator slice in their entire project.- This is done automatically when integrating via Cocoapods.
- For other cases:
- If you are using
xcconfig
files to build your app, please set:- For iOS targets:
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
- For tvOS targets:
EXCLUDED_ARCHS[sdk=appletvsimulator*] = arm64
- For iOS targets:
- If you are using the Xcode Build Settings panel, enable Build Active Architecture Only for the configuration you use to run your app on the simulator. (
ONLY_ACTIVE_ARCH = YES
)
- If you are using
3.26.1
Changed
- Deprecates the compilation macro
ABK_ENABLE_IDFA_COLLECTION
in favor of theABKIDFADelegate
implementation.ABK_ENABLE_IDFA_COLLECTION
will not function properly in iOS 14. To continue collecting IDFA on iOS 14 devices, please upgrade to Xcode 12 and implementApp Tracking Transparency
and Braze'sABKIDFADelegate
(see the iOS 14 upgrade guide for more information).
Added
- Adds improved support for iOS 14 Approximate Location tracking.
3.27.0-beta1
- This release can be used to beta test iOS 14.
- Push Stories and the tvOS SDK are not yet compatible with Xcode 12. This will be added in a future beta release.
Breaking
- Requires Xcode 12.
- Updates the minimum required version of SDWebImage from 5.0 to 5.8.2.
- Removes the
ABK_ENABLE_IDFA_COLLECTION
preprocessor macro from the SDK.- If you wish to enable IDFA, please use the
ABKIDFADelegate
. - Integration instructions for supporting iOS 14 in your
ABKIDFADelegate
will be included in a future beta release.
- If you wish to enable IDFA, please use the
Updated
- Adds support for iOS 14's Approximate Location feature.
- Note that the Geofence feature will not work if the end user chooses to provide only approximate location.
- Optional session-start based location tracking will continue to work. Accuracy will be based on the user's precise vs. approximate choice.
3.26.0
Breaking
- Removed readonly property
overrideApplicationStatusBarHiddenState
inABKInAppMessageViewController.h
.
Fixed
- Fixes an issue with in-app messages not respecting the application's status bar style when View controller-based status bar appearance (
UIViewControllerBasedStatusBarAppearance
) is set toYES
in the Info.plist. - Fixes an issue which can lead to text being cut off in Content Cards for specific iPhone models.
- Fixes an issue preventing test Content Cards from displaying under specific conditions.
Changed
- Added Binary Project Specification file for more efficient Carthage integration of the full SDK.
- Update your Cartfile to use
binary "https://raw.githubusercontent.com/Appboy/appboy-ios-sdk/master/appboy_ios_sdk_full.json"
- Support for this integration method was added starting with version 3.24.0 of the SDK.
- Update your Cartfile to use
Added
- Adds support for specifying
PushStoryAppGroup
in theAppboy
dictionary in your app'sInfo.plist
. This Apple App Group will share the Braze Push Story information such as Campaign IDs between applications from a single Apple Developer account. - Adds
appboyBridge.getUser().addAlias(alias, label)
to the javascript interface for HTML in-app messages. - Adds the property
overrideUserInterfaceStyle
toABKInAppMessage
that allows forcing Light or Dark mode in the same way as Apple'sUIViewController.overrideUserInterfaceStyle
.- You can set this property in the
beforeInAppMessageDisplayed:
method of an ABKInAppMessageControllerDelegate.
- You can set this property in the
- Adds the ability to dismiss modal in-app messages when the user clicks outside of the in-app message.
- This feature is disabled by default.
- You can enable the feature by adding the
Appboy
dictionary to yourInfo.plist
file. Inside theAppboy
dictionary, add theDismissModalOnOutsideTap
boolean subentry and set the value toYES
. - You can also enable the feature at runtime by setting
ABKEnableDismissModalOnOutsideTapKey
toYES
inappboyOptions
.