All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- nothing yet
- nothing yet
- nothing yet
- nothing yet
- In-app messages are now only consumed if they are shown
- The new email is now persisted when
updateEmail:is called - SDK now ensures that only one in-app message can be shown at a time
- Fixed
spawnInAppNotificationto not block the current thread when creating the in-app notification
- Added support for push action buttons
- Added a new SDK initialization method that takes
IterableConfigobject with configuration options - User ID/email is now decoupled from SDK initialization. It can be changed by calling
setEmail:orsetUserId:on theIterableAPIinstance. - Added automatic detection of APNS/APNS_SANDBOX, as long as both
pushIntegrationNameandsandboxPushIntegrationNameare set inIterableConfig - The SDK now stores attribution data within 24 hours of opening the app from a push notififcation or from a Universal Link in an email
- Added two delegates:
IterableUrlDelegateandIterableCustomActionDelegatethat can be used to customize URL and custom action handling for push notifications
- Old initialization methods (
sharedInstanceWithApiKey:) are now deprecated - Old
registerTokenmethods are now deprecated
- Added safety checks for cases when email or userId is nil
- Replace
[IterableAPI sharedInstanceWithApiKey:...]with the following:
IterableConfig *config = [[IterableConfig alloc] init];
config.pushIntegrationName = "myPushIntegration_Prod";
config.sandboxPushIntegrationName = "myPushIntegration_Dev";
config.urlDelegate = self; // If you want to handle URLs coming from push notifications
[IterableAPI initializeWithApiKey:@"YOUR API KEY" launchOptions:launchOptions config:config];- Since both pushIntegrationName and sandboxPushIntegrationName are now set in the configuration, call
[[IterableAPI sharedInstance] registerToken:token]when registering the token, and it will choose the correct integration name automatically. [IterableAPI clearSharedInstance]will do nothing if you initialize the SDK with the new initialization method. If you were previously calling[IterableAPI clearSharedInstance]to reinitialize the API with a new user, just callsetEmail:orsetUserId:instead.- User email/userId is now persisted, so you'll only need to call
setEmail:orsetUserId:when the user logs in or logs out. - The SDK now tracks push opens automatically, as long as calls to
userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:are passed to it. See README for instructions. Once it is set up, remove all direct calls totrackPushOpen:.
- Fixed an unhandled exception in response handling on network errors
- Added the
updateEmailfunction to update the user's email.
- SDK methods now properly handle 4xx and 5xx status codes, calling onFailure with the error message received from the server.
- Fixed missing compiled version of the IterableDeeplinkManager.
- Changed logic for
getAndTrackDeeplinkto not follow re-directs and return the first url redirect location instead.
- Fixes nil data in sendRequest onFailureHandler
- Fixes outdated artifacts file for
updateSubscriptionsrelease
- Added the
updateSubscriptionsfunction to create to modify channel, list, and message subscription preferences.
- Added the
showIterableNotificationHTMLfunction to create html based in-app notifications
- Changed the
spawnInAppNotificationfunction to parse html formatted notifications.
- Added the
clearSharedInstancefunction to reset the stored Iterable instance. - Added the
updateUserfunction to add or modify user Fields.
- Changed the
spawnInAppNotificationfunction to automatically consume messages from the user messages queue.
- Fixed missing header files for constants.
- Added the
inAppConsumefunction to remove in-app messages from the user queue.
- Changed the
spawnInAppNotificationfunction to automatically consume messages from the user messages queue.
- Fixed url query string parameter encoding for get requests.
- Fixed rendering of In-App notification to be on top of other views.
- added the
getAndTrackDeeplinkfunction to track links sent by Iterable and retrieves the destination deeplink url
- added support for In-App Notifications with different views layouts
- Full screen
- Bottom
- Center
- Top
- includes tracking for In-App opens and clicks
- includes support for GET requests
- added support for system styled dialogs
- Prefixed common method names
- included the latest artifacts
- added in new overloaded function for
initWithApiKeyto allow for custom launchOptions not passed fromapplication:didFinishLaunchingWithOptions
- include the latest artifacts
- added back in
initWithApiKey
- added
userIdproperty - added new overloaded function for sharedInstanceWithApiKey to pass in a userId instead of an email.
- removed header for
initWithApiKey
- changed the arguments of the following apis to use
userIdif anemaildoes not exist:track,trackPushOpen,registerToken, anddisableDevice.
Released on 2016-09-08
- now includes transactionIds along with push notifications
Released on 2016-07-19
- now includes disableDevice API
- removed device name from
registerTokencall as it might contain user sensitive data (the user's name)
Released on 2016-06-22
- removed JSONModel from dependencies in Podspec
Released on 2016-06-22
- now comes with compiled universal static library and public headers in the
Artifactsdirectory
registerTokenno longer checks the token to be 32 bytes/64 hex charsJSONModelremoved from project; no longer needs any outside libraries; someCommerceItem/trackPurchaseAPIs changed as a result of this- removed
Podsintegration
registerTokennow calls the failure handler if an invalidPushServicePlatformis passed in
Released on 2016-06-07
- completion handler blocks for all the Iterable APIs
- class to represent Iterable notification metadata
- no longer tracks push opens from test and proof pushes
- no longer tracks push opens from ghost pushes
Released on 2016-06-06
- NSURLConnection is deprecated as of iOS9; this release drops in its replacement, NSURLSession
Released on 2016-06-02
- fleshed out README
- added CHANGELOG
- added CONTRIBUTING
- new logging system
- nullability annotations
- overrides/defaults for methods that take nullable params
- unessential logging in non-DEBUG builds
- updated pod version to 7.0 (from 5.0) in preparation for NSURLSession
- logging changes
Released on 2016-05-25
- Unit tests for several internal methods
- More documentation