Changelog

3.0.2

Breaking Changes:
 
  • None
New Features:
  • ARM64 support for Android
  • AndroidX support
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

iOS

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fixes handling of non-Teak deep links and propigation to app delegates

2.3.0

Breaking Changes:
 
  • None
New Features:
  • identifyUser can now take an email address.
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • The incoming path used to parse a deep link is sent along to the handler in the key __incoming_path
  • The full url used to parse a deep link is sent along to the handler in the key __incoming_url
  • identifyUser now takes email as a parameter
Bug Fixes:
  • None

iOS

Breaking Changes:
 
  • None
New Features:
  • Deep links now recieve __incoming_path and __incoming_url
  • Adds email to identify user
Bug Fixes:
  • None

2.2.0

Breaking Changes:
 
  • None
New Features:
  • ON_FOREGROUND_NOTIFICATION is an event fired when a notification is received while the app is in the foreground.
  • ON_LOG_EVENT is an event fired when the Teak SDK outputs a log event.
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • FOREGROUND_NOTIFICATION_INTENT is broadcast when a Push Notification is recieved while the app is in the foreground.
  • ms_since_first_event is now sent with batched requests.
  • Added deviceBoard and deviceProduct to device information.
  • Teak.setLogListener for getting callbacks when the Teak SDK would log an event.
Bug Fixes:
  • Suppress some log spam when looking to see if NotificationManagerCompat.areNotificationsEnabled is supported.
  • Stopped some of the fine-grain checking for what IInAppBillingService supports, to prevent possible ANRs.
  • All threads and executors are now named, so that any ANR/crash report which includes thread names will clearly show what Teak is doing in that ANR/crash.

iOS

Breaking Changes:
 
  • None
New Features:
  • TeakForegroundNotification named notification dispatched when a Push Notification is received while the app is in the foreground.
  • ms_since_first_event is now included in batched requests.
  • logListener is an assignable delegate which will get called each time the Teak SDK logs an event.
Bug Fixes:
  • Fixes background crash if a notification attachment failed to get loaded properly, [_UNNotificationServiceExtensionRemoteContext _stageAttachmentsForNotificationContent].

2.1.3

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

iOS

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fixes crash when waitForDeepLinkOperation was re-submitted after finishing.

2.1.2

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

iOS

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • No longer hooks application:openURL:options: unless the host app implements it (Fixes Facebook login issues for certain Unity Facebook SDK versions)

2.1.1

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • io_teak_enable_caching has been removed
  • app_version reported to Sentry should be a string, not int
  • Sentry reporting Job is now working properly

iOS

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fixes form encode of [NSNull null] and nil

2.1.0

Breaking Changes:
 
  • None
New Features:
  • trackEvent and incrementEvent
  • processDeepLinks
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • Support trackEvent for Adobe AIR
  • Added incrementEvent
  • Now tracking PackageInfo.versionName (instead of just PackageInfo.versionCode)
  • Added support for Google Play’s com.android.installreferrer.api.InstallReferrerClient
  • Added support for specifying the Android store, using io_teak_store_id. Will detect Amazon automatically; defaults to Google Play.
Bug Fixes:
  • Properly handle deep links with ‘?’ or ‘#’ in a URL path element

iOS

Breaking Changes:
 
  • None
New Features:
  • Support trackEvent for Adobe AIR
  • Added [Teak incrementEventWithActionId:forObjectTypeId:andObjectInstanceId:count:]
Bug Fixes:
  • Properly handle deep links with ‘?’ or ‘#’ in a URL path element
  • Fixed corner case bug where deep links would get evaluated before the host app was ready for them

2.0.1

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • ADMPushProvider$MessageAlertReceiver no longer obfuscated.

iOS

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

2.0.0

Breaking Changes:
 
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • Direct GCM support removed, now using Firebase

  • Firebase Job Dispatcher is now used for a unified Teak worker

    • Removes io.teak.sdk.service.RavenService
    • Removes io.teak.sdk.service.DeviceStateService
    • Changes io.teak.sdk.service.JobService into a Firebase JobDispatcher
  • userHasDisabledNotifications -> getNotificationStatus

New Features:
  • ShortcutBadger @ 50d422d1792b394a5a6cda10cc358ba58436fe29
  • io_teak_enable_caching now defaults to true
Bug Fixes:
  • If an OutOfMemoryError is thrown during construction of a notification’s expanded view the expanded view will simply be omitted instead of not showing the entire notification.

iOS

Breaking Changes:
 
  • hasUserDisabledPushNotifications -> notificationState
New Features:
  • None
Bug Fixes:
  • Fixed an error in determineCurrentPushStateWithCompletionHandler: which prevented proper state detection of push notifications
  • Cache logRemote

1.0.2

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • ADMPushProvider$MessageAlertReceiver no longer obfuscated.

iOS

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

1.0.1

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

iOS

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fixes to TeakPushChainState tracking.

1.0.0

Breaking Changes:
 
  • None
New Features:
  • iOS Notification Extensions now work via repack script
  • Long distance notifications
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • Notification asset downloads can be cached, if io_teak_enable_caching is enabled. It is disabled by default, but everyone is encouraged to try using it.
  • Long Distance notifications
Bug Fixes:
  • Now defaults to Google Play Store if there is no installer package, instead of disabling tracking
  • Video notifications should no longer get sorted to the bottom after refresh on Android 8+

iOS

Breaking Changes:
 
  • None
New Features:
  • iOS 12 expanded view notifications now perform the first custom action when the view area is tapped (via invisible button)
  • Notification assets (video/image/etc) are now cached downloads
  • Notification extensions are now uploaded as artifacts for Adobe AIR repacker
  • Long distance notifications
Bug Fixes:
  • None

0.19.0

Breaking Changes:
 
  • None
New Features:
  • registerForProvisionalNotifications
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • Notifications will now retry asset loading if an asset fails to load. Delay is 2, 4, and 8 seconds.
  • Android P support
  • android.os.Build.SERIAL will not be used under Android P
  • Updated Sentry exception reporting properties
  • Tracks historical changes in the state of push permissions
  • Per-user opt-out of tracking, configured via identifyUser
Bug Fixes:
  • In the ZIP distribution of the Android SDK, the UUID for the ProGuard file sent to Sentry was not being included, this is fixed
  • Rarely a deadlock could occur when a GCM registration update came in during a Session state change, this is fixed

iOS

Breaking Changes:
 
  • None
New Features:
  • Updated Sentry exception reporting properties
  • Tracks historical changes in the state of push permissions
  • Per-user opt-out of tracking, configured via identifyUser
  • iOS 12 Support
  • Support for Provisional push authorization
Bug Fixes:
  • Fixes formatting of reported iOS version
  • Hopefully fix intermittent crash on iOS 9 possibly related to zombie objects in setNumericAttribute and setStringAttribute

0.18.0

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • Ability to disable collection of IDFA, Push Key, and/or Facebook Access Token

    • <meta-data android:name="io_teak_enable_idfa" android:value="false" />
    • <meta-data android:name="io_teak_enable_facebook" android:value="false" />
    • <meta-data android:name="io_teak_enable_push_key" android:value="false" />
Bug Fixes:
  • If Teak.onCreate fails, don’t crash with a null pointer

iOS

Breaking Changes:
 
  • None
New Features:
  • Ability to disable collection of IDFA, Push Key, and/or Facebook Access Token

    • <key>TeakEnableIDFA</key><false/>
    • <key>TeakEnableFacebook</key><false/>
    • <key>TeakEnablePushKey</key><false/>
Bug Fixes:
  • Fixed logging of events during alloc/init of the Teak object

0.17.0

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • Requires io.teak.sdk.service.JobService for Android 8 job compatibility.

  • Unity requires no changes.

  • Adobe AIR requires adding <service android:name="io.teak.sdk.service.JobService" android:permission="android.permission.BIND_JOB_SERVICE" android:exported="true"/> to XML

  • Renamed some public static final fields (This should have no impact unless you were using these for some very strange reason)

    • TEAK_API_KEY -> TEAK_API_KEY_RESOURCE
    • TEAK_APP_ID -> TEAK_APP_ID_RESOURCE
    • TEAK_GCM_SENDER_ID -> TEAK_GCM_SENDER_ID_RESOURCE
New Features:
  • Android 8 job compatibility
  • Reward Link Name is now the ‘creative name’ if the on reward callback was triggered from a deep link
Bug Fixes:
  • None

iOS

Breaking Changes:
 
  • None
New Features:
  • Reward Link Name is now the ‘creative name’ if the on reward callback was triggered from a deep link
Bug Fixes:
  • None

0.16.0

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fix corner case where GCM reg would not get sent if it came in during identifyUser (for real this time)
  • Fixes integration checker when <activity-alias> is used

iOS

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

0.15.0

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • User Profile support
  • Request batchfing for trackEvent, user profile
Bug Fixes:
  • Fix corner case where GCM reg would not get sent if it came in during identifyUser

iOS

Breaking Changes:
 
  • None
New Features:
  • User profile
  • Batching for trackEvent and user profile
Bug Fixes:
  • Circular reference in expanded push notification view fixed

0.14.0

Breaking Changes:
 
  • UserNotifcations.framework now required
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • Notification buttons in expanded view
  • Aspect ratio now preserved in small view notifications
Bug Fixes:
  • Launch deep-link now takes precedence over install-attribution deep link on first launch of app

iOS

Breaking Changes:
 
  • None
New Features:
  • Playable notifications!
Bug Fixes:
  • Deep links will no longer get processed twice when the deep link starts the app (if it was not already running)
  • Will no longer crash when passing NULL to TeakTrackEvent (C function)
  • Now using Thread Local Storage for RavenLocationHelper stack
  • Now copying input values from public API functions
  • Ravens (internal bug reporters) are now getting DSNs assigned properly, and as such are now working again
  • The SDK reported purchase time now includes seconds as well as hours/minutes

0.13.8

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • Added userHasDisabledNotifications
  • Added openSettingsAppToThisAppsSettings
  • Added setApplicationBadgeNumber
  • teakRewardId now included in the REWARD_CLAIM_ATTEMPT event
  • Enhanced Integration Checks
Bug Fixes:
  • Schedule/Cancel notification returns id as a string

iOS

Breaking Changes:
 
  • None
New Features:
  • Added setApplicationBadgeNumber:
  • Added hasUserDisabledPushNotifications:
  • Added openSettingsAppToThisAppsSettings
  • teakRewardId is now included in the TeakOnReward event
  • Now will warn via logs if unregisterForRemoteNotifications is called
Bug Fixes:
  • teakRewardId in the TeakNotificationAppLaunch event is now a string (matches Android behavior, and fixes issues in Adobe Air)

0.13.7

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

iOS

Breaking Changes:
 
  • Now requires additional frameworks:

    • ImageIO.framework
New Features:
  • Deploy Info.plist for TeakNotificationContent
Bug Fixes:
  • Animated GIFs now work properly in custom notification UI

0.13.6

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Purchase tracking works once again
  • Send common payload during reward claim
  • RetryableTask now immediately fails if ClassNotFoundException (if GCM isn’t linked)

iOS

Breaking Changes:
 
  • Now requires additional frameworks:

    • AVFoundation.framework
    • MobileCoreServices.framework
New Features:
  • Interactive notifications
Bug Fixes:
  • None

0.13.5

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fix crash when changing user id due to locking Session A and unlocking Session B
  • Fix non-delivery of push notifications when app had been killed in the background
  • Try and catch initialization errors from TeakWrapper and report them

iOS

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

0.13.3

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • You can now load images in push notifications from your Android assets, example assets:///pixelgrid_2000x2000.png (note triple slash)
  • Using NONE for an image resource will now remove it from the layout
  • Notifications will no longer combine into a single notification (in as much as is possible to control) on Android 8+ only
Bug Fixes:
  • None

iOS

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

0.13.2

Breaking Changes:
 
  • UserNotifcations.framework now required
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • If you are compiling with a target SDK of Android 26 or greater, Teak will now check requirements and throw an exception if the Android v4 support lib doesn’t support Android 26 features (required features for push functionality)
New Features:
  • None
Bug Fixes:
  • Support explicit intents for Android 26+
  • Support notification categories for Android 26+
  • ADM listener fixed
  • Deadlock due to very slow network conditions fixed

iOS

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

0.13.1

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • Unity/Air wrapper classes now included in core for testability and better continuous integration performance
Bug Fixes:
  • Hotfix from 0.12.9 integrated
  • Internal system re-write

iOS

Breaking Changes:
 
  • None
New Features:
  • Media-push supported, basic image/gif only
Bug Fixes:
  • Hotfix from 0.12.9 integrated
  • Internal system re-write

0.13.0

Breaking Changes:
 
  • io.teak.sdk.Application renamed to io.teak.sdk.wrapper.Application
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • io.teak.sdk.TeakUnityPlayerNativeActivity renamed to io.teak.sdk.wrapper.unity.TeakUnityPlayerNativeActivity
  • io.teak.sdk.TeakUnityPlayerActivity renamed to io.teak.sdk.wrapper.unity.TeakUnityPlayerActivity
  • io.teak.sdk.Application renamed to io.teak.sdk.wrapper.Application
New Features:
  • None
Bug Fixes:
  • None

iOS

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

0.12.8

Breaking Changes:
 
  • None
New Features:
  • Added cancelAllNotifications
  • Added status on TeakEvent
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • Use Teak.registerDeepLink instead of DeepLink.registerRoute
New Features:
  • TeakNotification.cancelAll
  • TeakNotification calls now return a JSON string with status and data
Bug Fixes:
  • Setting verbose logging will immediately take effect
  • Corner-case crash fix in Logs
  • Attach additional info to exception reporting, teakCreativeName
  • Fixed caught-exception in GCM if the OS kills the GCM service

iOS

Breaking Changes:
 
  • None
New Features:
  • TeakNotification now has a status field
  • Added [TeakNotification cancelAll]
Bug Fixes:
  • Fix for iOS 8 regex parsing

0.12.7

Breaking Changes:
 
  • None
New Features:
  • Added registerForNotifications
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • Additional info in the notification & reward payload
Bug Fixes:
  • Add specific catches for exceptions we should ignore, and not report:
  • TEAK-SDK-F, TEAK-SDK-M, TEAK-SDK-X, TEAK-SDK-11, TEAK-SDK-Q, TEAK-SDK-Z, TEAK-SDK-N, TEAK-SDK-K, TEAK-SDK-W, TEAK-SDK-V, TEAK-SDK-T, TEAK-SDK-S, TEAK-SDK-J, TEAK-SDK-P
  • Fixed TEAK-SDK-9
  • Fixed issue with Android < 5 and custom notification icons

iOS

Breaking Changes:
 
  • None
New Features:
  • Added additional lifecycle callback logging
  • Additional info in the notification/reward payload
Bug Fixes:
  • Fix for crash on Facebook logout (or otherwise sending a null token)

0.12.6

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fix parameter checking logic bug in trackEvent
  • Fix ‘cold start’ attribution bug

iOS

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fix parameter checking logic bug in trackEvent
  • Reduce memory usage via shared NSURLSessions
  • Fix duplicate identifyUser call

0.12.5

Breaking Changes:
 
  • None
New Features:
  • Teak.instance.version gets an object with the native SDK and Air SDK versions
Bug Fixes:
  • Unused imports caused Android 7 + AIR 21 NDK issues (somehow)

Android

Breaking Changes:
 
  • None
New Features:
  • Add support for:

    • io_teak_notification_accent_color
    • io_teak_small_notification_icon
    • io_teak_large_notification_icon
Bug Fixes:
  • Back-stack loop bug fix
  • Catch SecurityException on very old Android which requires android.permission.VIBRATE
Misc:
  • Raven service changed from error to warning to prevent developer anxiety

iOS

Breaking Changes:
 
  • None
New Features:
  • TeakVersionDict exposed
Bug Fixes:
  • Bogus JSON from server could cause a nil dictionary to get sent to nonnull.

0.12.4

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Additional listeners for GCM registration key updates, and improvements in handling GCM registrations.

iOS

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

0.12.3

Breaking Changes:
 
  • None
New Features:
  • Repacker is no longer needed for Android, now use: <application android:name="io.teak.sdk.Application"> in the configuration XML
  • Bitcode support for iOS
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Use layout_centerVertical on the app icon to support various background image heights
  • Prevent back-stack loops from out of app deep-links

iOS

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fix incorrect conditional check during application:didReceiveRemoteNotification:fetchCompletionHandler:

0.12.2

Breaking Changes:
 
  • None
New Features:
  • More flexibility with repacker
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • Push notification remote syntax is now versioned (non-breaking), new features:
  • Large/small image background
  • Support setting credentials in <meta-data> for Adobe Air.
Bug Fixes:
  • Fix state machine bug where a RemoteConfiguration coming back when device was in background would assign the Configured Session state.
  • No longer calls ACTION_CLOSE_SYSTEM_DIALOGS when dismissing notifications
  • No longer DDoS ourselves with remote logging

iOS

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • No longer DDoS ourselves with remote logging

0.12.1

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Unity and Adobe AIR now use a unified way of assigning their SDK versions

iOS

Breaking Changes:
 
  • None
New Features:
  • Supports iOS 10 push delegate application:didReceiveRemoteNotification:fetchCompletionHandler:
Bug Fixes:
  • Enable Bitcode support

0.12.0

Breaking Changes:
 
  • All reward events now sent via TeakEvent.ON_REWARD
New Features:
  • Remote logging
  • Remote exception tracking
Bug Fixes:
  • None

Android

Breaking Changes:
 
  • None
New Features:
  • Remote logging
  • Remote exception tracking
Bug Fixes:
  • None

iOS

Breaking Changes:
 
  • None
New Features:
  • Remote logging
  • Remote exception tracking
Bug Fixes:
  • None