- Disable code coverage settings
- Limit how often config requests can be sent
- Update Appboy kit with simplified endpoint logic
- Update ComScore SDK to 5.0
- Delay deeplinking call to kits if necessary
- Update AppsFlyer kit to support onAppOpenAttribution
- Update AppsFlyer SDK to 4.8.0
- Update Branch SDK to 0.18.8
- None
- Fix Localytics SDK version
- None
- Update Localytics SDK version
- Set transaction attributes on kit purchase events
- Add Adobe kit
- None
- Update AppsFlyer kit to support checking for deep links
- Update UrbanAirship kit to add transaction id to purchase events
- Prevent deprecation warnings for iOS 11 deployment target
- Update Singular and Apptentive kits to support Carthage
- Remove Git submodules from the repo to address mParticle#49
- Update Singular kit with fixes from the Singular team: mparticle-integrations/mparticle-apple-integration-singular#4
- All kits repos are now git submodules within the core repository
- mParticle now support Singular (formerly Apsalar) via both a Kit and server-side integration!
- This release introduces a class method to
MPKitAppsFlyersuch that implementing apps can set the AppsFlyer tracker delegate. - Update Kochava SDK to 3.2.0
- Update Appboy SDK to 3.0.0
- Update Branch SDK to 0.17.6
- [FIX] Fixes for Xcode 9 / iOS 11 and main thread checker
- [NEW] Remove category on NSUserDefaults
- [FIX] Ensure all server-side configuration settings are reloaded on every app-launch
- [FIX] Revert main thread error fix
- [FIX] Fix main thread error
- [FIX] Fix clang pragma
- [FIX] Remove check for notification hash
- [FIX] Retry and increase timeout for search ads
- [NEW] Add support for Skyhook
- [NEW] Add support for Iterable
- [FIX] Capture user agent in start, never in background
- [FIX] Fix clang static analyzer warnings
- [FIX] Support for Radar as a kit
- [FIX] Support for forcing SDK Environment on start-up
- [NEW] Handle eCommerce events from embedded js sdk
- [NEW] Optimize user identity and user attribute change messages
- [NEW] Sync user attributes and identities only once per kit
- [FIX] Force refresh the config cache when a kit configuration is absent
- [NEW] Use mutable copy of string when setting a user attribute key
- [NEW] Include latitude and longitude in session start events
- [NEW] Allow for environment override even for prod apps
- [FIX] Reporting of commerce events when originated from a custom mapping
- [FIX] Execute projection when the commerce event has no mapped attributes
- [NEW] Remove eTag when app version or build changes
- [FIX] Enumeration to generate upload batches is done non-concurrently
- [FIX] A try/catch block added to serialization of MPMessage. Moreover, further conditions were added to assure the values being handled by the MPUploadBuilder are valid
- [NEW] Support for Radar as a kit
- [NEW] Retrieve kit instance asynchronously with a block. Use
- (void)kitInstance:(NSNumber *)kitCode completionHandler:(void (^)(id _Nullable kitInstance))completionHandler;to retrieve a kit instance. The block will be called immediately if the kit is already initialized, or will be called asynchronously as soon as the kit becomes initialized - [NEW] Lighter SDK. New Year, new resolution, the core SDK has gone on a diet. Stay tuned, more to come
- [FIX] Fix location getter and nullability notation
- [NEW] Set location without the need to call
beginLocationTracking - [FIX] Upload data immediately on first application launch
- [NEW] Queue launch parameters. The app notification handler now takes advantage of the forwarding queue mechanism. If kits have not been initialized yet (config not received from server), the data will be held in a queue and once the configuration has been received and kits initialized, the queued items are replayed to kits
- [NEW] Support for Reveal Mobile as a kit
- [NEW] Wrap the capture of the user-agent in a try/catch
- [FIX] Adjust CommerceEvent property serialization: currency, screen name, and non-interactive are now located at the root of serialized CommerceEvent messages
- [FIX] Simplify session management when app becomes active
- [FIX] Increment user attribute when not set previously
- [FIX] Runtime iOS 10 verification of push notifications
- [FIX] Fix potential race condition beginning sessions
- [FIX] End background task when batches are finished
- [FIX] Fix crash when an app is being force quit.
- [FIX] Remove the use of generics from the
checkForDeferredDeepLinkWithCompletionHandler:method. The received parameter signature is nowNSDictionary, previously it wasNSDictionary<NSString *, NSString *>
- [NEW] Collect attribute details from search ads
- [FIX] Compare custom mapping keys in a case insensitive manner
- [FIX] Convert event attributes to <string, string> prior to matching custom mappings
- [FIX] Generate the upload batch when the app is terminated by the user or OS. This way app version and build will always be correctly attributed to app events
- [NEW] Support for Apptimize as a kit
- [NEW] Collect whether Daylight Savings Time is enabled
- [NEW] Add notification for when the SDK has finished initializing. Add a flag property indicating whether the SDK has been initialized (KVO compatible)
- [NEW] Support for Leanplum as a kit
- [NEW] When a user identity changes a new type of message is added to the batch to be uploaded to the server. This allows for greater control to inform partners about which user identities were set/present at the moment an app event is logged
You will need for this SDK update:
- Xcode 8 or later
- CocoaPods 1.1.0.rc.2 or later
- [FIX] When a user attribute changes (new, update, or delete) a new type of message is added to the batch to be uploaded to the server. This allows for greater control to inform partners about which user attributes were set/present at the moment an app event is logged
- [FIX] Timing of logged events: Events (both app events and commerce events) now have a timestamp property, which gets populated automatically by the SDK, when an event is logged prior to the SDK being fully initialized. If set, this property will override the timestamp of messages when they are about to be persisted
- [NEW] Custom mappings now support more advanced matching schemes
- [NEW] Support for Urban Airship as a kit
- [FIX] A newly introduced class was missing from the tvOS Xcode target
- [NEW] Kits can now pass integration attributes back to the core SDK
- [NEW] Support for Primer as a kit
- [NEW] Support for Apptentive as a kit
- [NEW] MParticleConfig.plist option to opt in/out of automatic silent notification registration. See mParticle Docs for details
- [NEW] Add the customerId user identity as an event attribute when forwarding to AppsFlyer
- [NEW] Add new methods to the kit protocol to forward user notification related info to kits
- [NEW] Config optional flag to send the session history batch (reducing the amount of data sent over to mParticle)
- [NEW] Opt-in to always try to collect the IDFA
- [NEW] Add continueUserActivity to the public SDK API (Pull Request submitted by twobitlabs)
- [FIX] Guarantee that launch options in AST messages to contain only string parameters
- [NEW] Support for Button as a kit
- [FIX] Server configuration override of crash report initialization is restored
- [NEW] User attributes can now take arrays as values. The array of values is associated with a user attribute key. The list of all user attributes can be retrieved using the new
userAttributesproperty
- [FIX] Filter transaction attributes in commerce events
- [FIX] Expand the scope of MPAppDelegateProxy to handle protocol conformance and class hierarchy matching
- [FIX] Fix static analysis flags
- [FIX] Add clang pragmas to remove warnings
- [FIX] Using a string constant (iOS 9 or above) or a string literal (iOS 8 or below) to log a deep-linking event
- [FIX] Add additional checks for iOS 9 symbols
- [FIX] More consistent handling of kit initialization and sampling
- [FIX] Expose some files for use by kits
- [FIX] Add nil check and prevent modifying while enumerating
- [FIX] Set the kits initialized flag only if persisted kits have been initialized
- [FIX] Correct a condition determining whether variables were valid
- [NEW] We are introducing the ability to implement extensions for the mParticle SDK. Kits have been the first component to take advantage of this new and more powerful architecture
- [NEW] A queue was added to hold events to be forwarded to kits until the first configuration is received from the server and kits are initialized
- [NEW] Added support for Carthage
- [NEW] Maximum user attribute value length has been extended to 4096 characters
- [FIX] Restored unit tests for each of the platforms
- [NEW] Stripping
$from event attributes when forwarding to Appboy - [FIX] Updated the
podspecto include paths and flags required to build kits
- [NEW] Added Branch Metrics support for received push notifications
- [NEW] Renamed the
MPLogLevelenum toMPILogLevel. The renamed values are:MPILogLevelNone,MPILogLevelError,MPILogLevelWarning,MPILogLevelDebug, andMPILogLevelVerbose
- [NEW] Unification of the SDKs. Now the iOS and tvOS SDKs are combined into one single SDK. Support for more platforms will be coming in the future
- [NEW] Updated Kahuna kit
- [NEW] Conforming to the RFC 6585 HTTP status code 429,
Retry-Afterresponse header
- [NEW] Validating the data type in event custom flags. Making sure that the array of flags is an array and that it only contains string items in it
- [FIX] Do not forward push information to Kahuna if the app was launched as a result of a user tapping on a push notification, since their SDK is already capturing the contents of the notification. There is no impact on data forwarding/counting/reporting, this just prevents a Kahuna delegate method from being called twice
- [NEW] Expanded the Branch Metrics kit to handle
openURLandcontinueUserActivity - [NEW] Custom mapping between mParticle and Appboy user attributes
- [FIX] Fixed duplicate forwarding of a push notification when launching an app by tapping on a remote notification
- [FIX] Fixed the representation of custom attributes in commerce event product impressions
- [FIX] Fixed the predicate filtering active kits
- [FIX] Fixed the formatting of event attributes in
logError - [FIX] Correct the expected data type for configuring custom dimensions in Localytics
- Support for Tune as a kit
- Verifying whether obtained 3rd party custom module values are a supported data type
- Updated the nullability notation for handleActionWithIdentifier
- Deferring the execution of the code in the ApplicationDidFinishLaunching to the next run-loop as a workaround to a bug in the Sqlite implementation
- Determining whether to forward an app delegate call to the old deep-linking method
- Forwarding event attributes as user attributes to Appboy
- Support for AppsFlyer as a kit
- Implementation of filter by event attribute value
- Preventing session history batch being sent when data is ramped
- Indirect instantiation of Kochava to allow it to work in the mParticle SDK with dynamically linked frameworks,
use_frameworks!, bitcode, and static libraries
- Updated the podspec and README to allow for the utilization of
use_frameworks!and the mParticle SDK - Fixed an overloaded start method that was overriding the running environment parameter
- Fixing the location of the Wootric subspec
- Support for Wootric as a kit
- Broadcast of the session start notification may incur a delay if the SDK is being started
- Renamed MPConstants to MPIConstants
- Verifying the boundaries of eCommerce currency values to avoid numbers represented using scientific notation
- Early detection of kit configuration change when migrating from SDK 4.x to 5.x
- Reporting the app key in the request header
- Replaced NSTimer with dispatch_source_t with positive results minimizing the use of energy
- Refactored class files adding the MP prefix
- Adopted Lightweight Generics
- Fixed a bug reporting active kits
- Enforcing the data type of eCommerce numeric values
- Adopted the Objective-C Nullability syntax
- Serializing kit configurations rather than kit instances
- Defined default subspecs
- New and updated unit tests
- Using asynchronous validation for authenticity of certificates
- Each commerce event action is dealt with in an action-by-action basis for Kahuna
- Fixed a bug expanding and forwarding events to kits with no support to eCommerce events
- Support for Crittercism as a kit
- Crash reporter has been implemented as an optional subspec
- Validating the authenticity of network requests by alternative means to avoid errors raised by 3rd party SDKs mutating and proxying mParticle's original object performing the request
- Removed legacy semaphores from network connections
- Fixed a bug referencing commerce event names
- Fixed a bug about events with no attributes not being forwarded to kits
- Migrated Unit Tests from SDK version 4.x to 5.x
- Added support to the new iOS 9 application:openURL:options: app delegate method
- Fixed a bug migrating data when the database structure changes