Skip to content

Releases: sailthru/sailthru-mobile-ios-sdk

Carnival iOS SDK 4.1.0 Release Notes

11 May 01:56
Compare
Choose a tag to compare

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

04 Apr 03:03
Compare
Choose a tag to compare

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

29 Mar 21:25
Compare
Choose a tag to compare

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

14 Mar 00:02
Compare
Choose a tag to compare

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

02 Feb 23:48
Compare
Choose a tag to compare

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

Notes

This version requires the Security Framework and Xcode 7.x.

Carnival iOS SDK 3.8.2 Release Notes

09 Dec 03:41
Compare
Choose a tag to compare

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

07 Dec 23:13
Compare
Choose a tag to compare

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

24 Nov 02:03
Compare
Choose a tag to compare

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

11 Oct 23:01
Compare
Choose a tag to compare

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

22 Sep 22:19
Compare
Choose a tag to compare

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