Releases: sailthru/sailthru-mobile-ios-sdk
Carnival iOS SDK 4.1.0 Release Notes
Features
New Custom Attributes Methods
In this release we introduce a much more powerful way of settings Carnival Custom Attributes.
This release introduces the CarnivalAttributes
which can be constructed and then various keys and value can be set on this instance. This instance is then sent in a single network request to Carnival via another new API.
Swift Example:
var attributes = CarnivalAttributes()
attributes.setString("hello" forKey:"test_key")
attributes.setAttributesMergeRule(.Replace)
Carnival.setAttributes(attributes) { error in
print("setAttributes returned with possible error: \(error)")
}
Objective-C Example:
CarnivalAttributes *attributes = [[CarnivalAttributes alloc] init];
[attributes setString:@"hello" forKey:@"test_key"];
[attributes setAttributesMergeRule:CarnivalAttributesMergeRuleReplace];
[Carnival setAttributes:attributes withResponse:^(NSError * _Nullable error) {
NSLog(@"setAttributes returned with possible error: %@",error);
}];
More examples can be found in the ExampleProject and SwiftExampleProject which have been updated to use the new API.
Attribute Merge Rules
By default setAttributes will merge the attributes you are setting with the existing attributes on the device. Updating existing attributes and creating new ones as needed. If the merge rules are set to CarnivalAttributesMergeRuleReplace
then the contents of this map will totally replace all attributes on the device.
Setting a value to null will remove that attribute, while setting attributes with an empty CarnivalAttributes
and merge rule CarnivalAttributesMergeRuleReplace
will delete all attributes.
Deprecations
This means that all set*: forKey:
methods on Carnival have been deprecated and will be removed in the next major release.
Fixes
Minor under the hood improvments for upcoming features.
Carnival iOS SDK 4.0.0 Release Notes
This is primarily a deprecation removal release.
Removals
Carnival Message Stream View Controller
The CarnivalStreamViewController
has been removed. It is now recommended you build your own message stream.
You can use the example message streams as a base or read about how to write your own here.
Carnival Identifier Data Source
The CarnivalIdentifierDataSource
protocol has been removed. It is now recommended you set a user ID instead to uniquely identify your user.
You can read about this here.
Carnival iOS SDK 3.11.0 Release Notes
Features
- Present your own detailed message view. You can now use the delegate method to implement (or turn off) the displaying of Carnival's Full Screen Detail View
For Example:
- (BOOL)shouldPresentMessageDetailForMessage:(CarnivalMessage *)message {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:message.title message:message.text delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:@"Done", nil];
[alert show];
return NO;
}
Bug Fixes
- Fixed an issue where the In App Notification would not display properly on iPad Pro and Air 2 Models
Carnival iOS SDK 3.10.0 Release Notes
Features
- Message Attributes - You can now receive messages with arbitrary string/string key-value pairs on them. Useful for categorizing your messages or including multiple CTAs or extra information.
Bug Fixes
- Fixes an issue with date and time handling
- Fixes an issue with Video Calls
- Better tracking of Push Enabled status tracking
Heads Up!
Soon we will be releasing SDK 4.0/0 which will remove all methods marked as deprecated. Please take the time to move off the use of Tags, Unique Identifier and the provided Carnival Message Stream View Controller. Contact us if you have any questions or queries!
Carnival iOS SDK 3.9.0 Release Notes
Features
- Allows you to turn off Carnival Crash Detection. With some integrations inside apps with Crashlytics installed, this may cause issues. Note: Disabling this will cause sessions that end in a crash to not be recorded and reported towards the "Time in App" statistic.
Developer Experience
- We have added Objective-C Generics to all methods that require them, which makes development with our array attribute methods nicer. Swift developers should notice better interoperability also.
Bug Fixes
- Moving to UIUserNotificationTypes (fixes https://github.com/carnivalmobile/carnival-ios-sdk/issues/2). If you're targeting iOS 7, the ENUM values still line up so there will be no issues here.
- Makes sure
startEngine
is only called once. - Uses Keychain for better install/uninstall tracking.
- Deprecates the Message Stream. Check out our Native Message Stream Examples.
- Fixes a Swift 2.0 Error in our Swift Example Project
Notes
This version requires the Security Framework and Xcode 7.x.
Carnival iOS SDK 3.8.2 Release Notes
Bug Fixes
This release is primarily a bug fix release. The fixes are:
- Fixed an issue around Auto-Analytics tracking and Localytics
- General improvements to Auto Analytics Tracking
Carnival iOS SDK 3.8.1 Release Notes
Bug Fixes
This release is primarily a bug fix release. The fixes are:
- In App Notification now rotates with the device while being presented
- Message deletion confirmation would not not show in some cases
Carnival iOS SDK 3.8.0 Release Notes
Features
Disable Geo IP Tracking
You can now disable Geo IP Tracking with a simple opt out method. This means Carnival will not estimate your location based on IP for geo-targeting. We recommend not opting out but some laws such as EU require you to explicitly ask the user for permission for this, so this is something to consider. It is enabled by default.
To disable,
Carnival.setGeoIPTrackignEnabled(false)
(Swift) or [Carnival setGeoIPTrackingEnabled:NO];
(Obj-C)
Nullability Macros
Previously we'd provided our own nullability macros for Xcode 6.2, 6.3 and 7 backwards compatibility. With this release, we have removed these macros for ease of use and this SDK will now require you to use Xcode 6.3 or above.
Bitcode Support
We now fully support bitcode enabled projects. bitcode enabled projects require all 3rd party frameworks to enable bitcode support and we've added this so you can ship bitcode apps.
Xcode 7 Support
The Carnival iOS SDK now fully supports Xcode 7 projects.
Extra methods for start up
startEngine
now has a few more overrides for more control over how you start Carnival
We've also fixed a few under the hood bugs.
If you're having issues with any of these new changes, please create an issue on GitHub or get in touch.
Carnival iOS SDK 3.7.0 Release Notes
Features
Auto Analytics Tracking
The Carnival iOS SDK now automatically integrates with other analytics providers to capture some analytics. At the moment we capture only event data. This means that if you use the frameworks below to log events, they'll also be logged to Carnival as an event also.
The providers we integrate with are:
- Google Analytics
- Mixpanel
- Adobe Analytics (Formerly Omniture)
- Localtyics
- Amplitude
- Flurry
For your convenience, by default these integrations are enabled. To explicitly disable them, pass an array of opt-out keys in with the startEngine function.
Carnival.startEngine(appKey:"YOU_SDK_KEY", ignoreAutoAnalyticsSource:[CarnivalAutoAnalyticsSourceLocalytics])
To disable all, use CarnivalAutoAnalyticsSourceAll
If you're having issues with any of these integrations or have a framework you'd like us to add, please create an issue on GitHub or get in touch.
Carnival iOS SDK 3.6.0 Release Notes
Features
Adds the ability to set an array of data types. You can now set arrays of strings, dates, integers (NSNumber) and floats (NSNumber).
Simply use the new setStrings:forKey:
, setFloats:forKey:
, setDates:forKey:
, setIntegers:forKey:
methods.
Note: This release deprecates the use of Tags too. Use setStrings instead.
Bug Fixes
We've made some changes for iOS 9 compatibility. Including fixing https://github.com/carnivalmobile/carnival-ios-sdk/issues/1