Changelog

4.3.7

Enhancements

  • Added support for grouping notifications on Android 7+.

4.3.6

Bug Fixes

  • Resolved crash on Android when initial launch of app is with an intent containing a non-hierarchical URI scheme.

4.3.5

Enhancements

  • Added PrivacyInfo.xcprivacy for iOS build

  • Updated Build Post-Processing scripts to add PrivacyInfo.xcprivacy to iOS Notification Extensions

Bug Fixes

  • Resolved issue which could result in some previously received notifications being treated as though they were copies of the more recently received notifications on Android 4-10 devices.

  • Resolved issue which could result in teak-unity.androidlib being incorrectly included in iOS builds

4.3.4

Bug Fixes

  • Resolved issue on Android which resulted in failing to schedule local notifications with Teak.Notification.Schedule while being backgrounded.

4.3.3

Bug Fixes

  • Resolved build failure on Unity 2020, 2020.3.44 and lower

  • Resolved build failure on Unity 2021, 2021.3.17 and lower

  • Resolved build failure on Unity 2022, 2022.2.4 and lower

4.3.2

Enhancements

  • Resolved all deprecation warnings when building with Unity 2023

Bug Fixes

  • Resolved issue on iOS which resulted in failing to track clicks and claim rewards when tapping on a foreground notification.

  • Resolved issue which prevented game from launching when player tapped on notification buttons on Android >= 11

  • Resolved issue on Android which could result in failing to track clicks in sessions starting from a notification or link with a non-hierarchical out of game link, such as mailto:example@example.com

  • Resolved issue on Android that could result in an extra unattributed 'play' event when returning to the game from a push notification or link after two minutes of backgrounding

  • Resolved iOS build warnings on Xcode 14+ when using Build Post-Processing Scripts

4.3.1

Bug Fixes

  • Resolved crash when calling Teak.Instance.RegisterForProvisionalNotifications() on iOS

  • Resolved intermittent issue that could reset disabling Build Post-Processing Scripts

4.3.0

New Features

  • Local notification personalization: Using Teak.Notification.Schedule you can now pass a dictionary of additional data which can be templated into the local notification.

  • Session time tracking: The Teak SDK now automatically tracks the duration of game sessions and reports this data to the Teak Dashboard and any configured data syncs.

  • Opt-Out Categories: You can now categorize push notifications and emails into different Opt-Out Categories, and provide players with an in-game communication preferences UI so that your players can manage what kinds of messaging they receive.

  • Android Notification Channels: On Android Opt-Out Categories automatically map to Notification Channels, which provides players with a familiar UI in Settings to manage the kinds of messaging they receive.

  • Android Badging: From the Teak Dashboard you can enable an app icon badge when push notifications are delivered. Note that this will only apply to non-default Opt-Out Categories, or the default Opt-Out category on new installs made after integrating Teak SDK 4.3.0.

  • Android Image+Text Notification Layout: Teak now supports a new Android notification layout which places a square image to the right of the text content of the notification.

  • Push Opt-Out Tracking: The Teak SDK can now detects and reports when a player has opted out of push notifications through their device settings to the Teak Dashboard for upcoming reports.

  • Uninstall Tracking: The Teak SDK and Teak Dashboard can now detect and report when a player has uninstalled the game from their device for upcoming reports.

Upgrade Notes

  • Deprecated Teak.RegisterForNotifications(). Instead use Teak.RegisterForNotifications(System.Action), which will call the provided action once the user has allowed or denied push notifications.

  • Deprecated TeakNotification.ScheduleNotification. Instead use Teak.Notification.Schedule. Teak.Notifiction.Schedule requires that the local notification be configured on the dashboard ahead of time, and supports per-call personalization.

  • The menu item to configure Teak settings has been renamed to Edit/Teak Settings…​

  • "Build Post-Processing" is now enabled by default.

Enhancements

  • The Teak SDK version is now shown in the Teak Settings editor.

  • iOS: The Teak SDK now supports using custom UNUserNotificationCenter delegates with no additional configuration or code required.

  • iOS: Standardized prefix on all log messages to Teak:

  • Improved HTTP connection reuse to reduce power and bandwidth consumption on player devices

  • Android: Improved notification display on Samsung devices running Android 12+.

  • Teak.Instance.SetChannelState() callback now provides additional error information if the call fails.

Bug Fixes

  • Resolved potential build issues in projects using assembly definitions.

  • Teak.OnUserData will now get sent properly on iOS

  • Fixed trace logging when changing channel opt out state

  • Resolved several potential race conditions that could prevent updated player contact information from being submitted to the Teak Dashboard

  • Resolved issue when setting a player’s email address back to original value after calling Teak.Instance.DeleteEmail()

  • Resolved several issues with reporting error conditions when changing channel opt out state

  • Android: Resolved potential failure to initialize the Teak SDK when launching from a link or push notification that deep links to an unknown custom URL scheme

  • Android: Resolved race condition that could result in an extra 'play' event when updating player contact information while the game is being backgrounded

  • Android: Fixed bug that could result in an extra 'play' event when changing game assigned player id through a new call to Teak.Instance.IdentifyUser().

  • WebGL: Ids of local notifications cancelled through Teak.Instance.CancelAllNotifications() are now correctly reported.

Known Issues

  • The Teak SDK uses methods that are deprecated as of Unity 2023. This will cause warnings when building with Unity 2023. This will be resolved in an upcoming point release.

  • We have observed that builds made with Unity 2023 and Xcode 14 may crash on iOS 15+ when a foreground notification is received in a session which has had a system alert dialog. This can be resolved by building with the Xcode 15 beta. See this Unity forum thread for more information.

4.2.0

Breaking Changes

  • Now requires EventBus 3.3.1 on Android

  • SDK 5 Behaviors now enabled by default

New Features

  • Trace logging (Teak.Trace) is now supported as a setting in the Unity Editor.

  • Callbacks are now optional for TeakNotification methods.

  • Added Teak.CanOpenNotificationSettings and Teak.OpenNotificationSettings to allow users to open the settings app directly to the notification settings for their app

  • Added Teak.CanOpenSettingsAppToThisAppsSettings for existing Teak.OpenNotificationSettings.

  • Added Teak.SetChannelState to allow users to opt in/out of Teak marketing channels.

  • Added Teak.DeleteEmail to allow users to delete the email address associated with a user.

iOS

Breaking Changes

  • Xcode 13.4.1 is now being used to build the Teak SDK.

  • SDK 5 Behaviors now enabled by default (TeakSDK5Behaviors)

New Features

  • handleDeepLinkPath: lets you manually resolve a deep link path, e.g. /foo/bar?fizz=buzz

  • Adds pushRegistration to UserDataEvent

  • setState:forChannel: has been added to let users opt in/out of Teak marketing channels

  • canOpenNotificationSettings and openNotificationSettings to allow users to open the settings app directly to the notification settings for their app

  • canOpenSettingsAppToThisAppsSettings added

  • deleteEmail added

Android

Breaking Changes

  • Teak$AdditionalDataEvent has been deprecated, and will be removed in the SDK 5 family. Please use Teak$UserDataEvent.

  • Google Play Billing v3 support has been removed

  • Now requires EventBus 3.3.1

  • SDK 5 Behaviors now enabled by default (io_teak_sdk5_behaviors)

New Features

  • Teak#handleDeepLinkPath has been added to allow you manually resolve a deep link path, e.g. /foo/bar?fizz=buzz

  • Teak#setChannelState has been added to let users opt in/out of Teak marketing channels

  • Teak$UserDataEvent has been added to provide user specific state, including opt-out status for Teak email and push campaigns and the 'additional data' for the user. This supercedes [Teak$AdditionalDataEvent], which has been deprecated.

  • Teak#canOpenNotificationSettings and Teak#openNotificationSettings to allow users to open the settings app directly to the notification settings for their app

  • Teak#canOpenSettingsAppToThisAppsSettings has been added

  • Teak#deleteEmail has been added

  • Google Play Billing v5 support has been added

  • Added pushRegistration to Teak$UserDataEvent

Bug Fixes

  • Fixed trace log output for identifyUser to include parameter names

4.1.15

New Features

  • RegisterForNotifications now works for Android 13+ notification permission requests

Android

New Features

  • Added android.permission.POST_NOTIFICATIONS for Android 13.

4.1.14

Bug Fixes

  • Fix path to libTeak.a when using UPM package.

4.1.13

Android

Bug Fixes

  • Reverted change to use StandardCharsets.UTF_8 because that requires API 19.

4.1.12

Android

Bug Fixes

  • Resolve bug which resulted in all previously received notifications being treated as though they were copies of the most recently received notification on Android 11 and 12 devices.

4.1.11

Breaking Changes

  • Now requiring Android work-runtime 2.7+ due to Google releasing a non-compliant version for Android 12

New Features

  • Now using relative paths when constructing Xcode projects to allow for building the project on one build machine, and building it on another.

Bug Fixes

  • Adds missing #else cases for platforms Teak does not support.

Android

Bug Fixes

  • If client deep link resolution fails, server resolution can now properly resolve and attribute a launch properly.

4.1.10

iOS

Bug Fixes

  • Check for NSNull before isEqualToString

4.1.9

Android

Bug Fixes

  • Add Google Play Billing v4 to proguard.txt

  • If there’s a notification/link launch on 'first launch' use that instead of the install referrer

4.1.8

iOS

Bug Fixes

  • Fix idenifyUser server call for manually specifying Facebook Id and/or Email

4.1.7

New Features

  • Added Teak.Instance.RegisterForNotifications()

Bug Fixes

  • UPM Changelog Generation re-enabled

iOS

New Features

  • Added TeakRequestPushAuthorization

  • Added TeakNoAutoTrackPurchase plist configuration, which will disable automatic purchase tracking

Bug Fixes

  • Fix issue of opening browser when launched with the host for a teak shortlink, but no path

Android

New Features

  • Added io_teak_no_auto_track_purchase to prevent automatic purchase collection

  • Added support for Google Play Billing v4

Bug Fixes

  • Fix Android 12 formatting of text-only notifications

  • Fix issue of opening browser when launched with the host for a teak shortlink, but no path

4.1.6

Android

Bug Fixes

  • Fix for crash when an Amazon build did not contain Google Play Billing references.

4.1.5

New Features

  • WebGL fix for providing email with IdentifyUser

4.1.4

Android

Bug Fixes

  • Fixes null Iterator exception when a purchase is cancled in Google Play Billing

4.1.3

iOS

Bug Fixes

  • Re-enable armv7

4.1.2

Android

Bug Fixes

  • Fixes issue in Android 12 compatibility that prevented push notifications from displaying when the app was not running.

4.1.1

Android

Bug Fixes

  • Mark GooglePlayBillingV3 and Amazon store classes Unobfuscatable.

4.1.0

New Features

  • Added new overload to Teak#IdentifyUser which takes a Teak.UserConfiguration, old methods are now [Obsolete] and will be removed in Teak SDK verison 5.0

  • Added Teak.Instance.RefreshPushTokenIfAuthorized() for manual push token refresh. This is used when you need to disable automatic push token refreshes

  • Added OnPostLaunchSummary event which is posted with every game launch and contains details about the launc

Bug Fixes

  • Teak#OnLaunchedFromNotification event will be posted when launched from an email link

iOS

New Features

  • Added a flag to preview SDK 5 changes, TeakSDK5Behaviors

    • Will no longer automatically collect Facebook Access Token, instead you must pass the Facebook User Id to [Teak identifyUser:withConfiguration:]

  • Added flag to disable automatic push token refresh at app launch, TeakDoNotRefreshPushToken

  • Added TeakPostLaunchSummary event which is posted with each app launch, with information about the launch.

Bug Fixes

  • When app is launched via an email link TeakNotificationAppLaunch event is now correctly posted.

Android

Breaking Changes

  • If you target Android 12, you must add android:exported specifications to the receiver definition for io.teak.sdk.push.ADMPushProvider$MessageAlertReceiver

<receiver
  android:name="io.teak.sdk.push.ADMPushProvider$MessageAlertReceiver"
  android:permission="com.amazon.device.messaging.permission.SEND"
  android:exported="true">

New Features

  • Added support for targeting Android 12 (API level 31)

  • Added a flag to preview SDK 5 changes, io_teak_sdk5_behaviors

    • If io_teak_sdk5_behaviors is enabled, Teak will no longer automatically collect Facebook Access Token, instead you must pass the Facebook User Id to Teak#identifyUser

  • Added Teak$PostLaunchSummaryEvent which will contain launch information for both Teak attributed, and non-Teak attributed launches

Bug Fixes

  • When app is launched via an email link Teak$NotificationEvent event is now correctly posted.

4.0.2

New Features

  • Added support for targeting Android 12 (API level 31)

Android

Breaking Changes

  • If you target Android 12, you must add android:exported specifications to the receiver definition for io.teak.sdk.push.ADMPushProvider$MessageAlertReceiver

    • <receiver android:name="io.teak.sdk.push.ADMPushProvider$MessageAlertReceiver" android:permission="com.amazon.device.messaging.permission.SEND" android:exported="true">

New Features

  • Added support for targeting Android 12 (API level 31)

Bug Fixes

  • Fixed a bug where handling links would only report the creative name for links and not email links.

4.0.1

Bug Fixes

  • WebGL now properly supports TeakScheduleId and TeakCreativeId

  • WebGL now properly allows email address collection via IdentifyUser

4.0.0

Breaking Changes

  • Minimum Unity version supported is now 2018.4.9f1

  • OpenIAB support removed. The project was abandoned 4 years ago.

  • Unity Purchasing

    • Minimum Unity Purchasing version is now 3.1.0"

    • TeakStoreListener is no longer supported or required

  • Android

    • Moved the Android configuration values written by Teak from Assets/Plugins/Android/res/values to Assets/Plugins/Android/teak-values.androidlib/res/values

    • support-v4 support has been removed, AndroidX is now required

    • Firebase Job Dispatcher has been deprecated and removed, androidx.work:work-runtime:2.5.0 is now required.

    • Firebase’s Unity Plugin is now required for configuration of Push on Android.

    • EventBus, org.greenrobot:eventbus:3.2.0 is now required.

    • InstallReferrer version 2 is now required com.android.installreferrer:installreferrer:2.2+

  • TeakNotification

    • Previously there was a string value in ScheduleId that was actually the name of the schedule. This is now contained in ScheduleName and the contents of ScheduleId are now the ulong id of the schedule.

    • Previously there was a string value in CreativeId that was actually the name of the creative. This is now contained in CreativeName and the contents of CreativeId are now the ulong id of the creative.

  • TeakReward

    • Previously there was a string value in ScheduleId that was actually the name of the schedule. This is now contained in ScheduleName and the contents of ScheduleId are now the ulong id of the schedule.

    • Previously there was a string value in CreativeId that was actually the name of the creative. This is now contained in CreativeName and the contents of CreativeId are now the ulong id of the creative.

iOS

Breaking Changes

  • Required MobileCoreServices.framework is now CoreServices.framework

New Features

  • Now using v2 Signatures for request signing (this is not a user-facing change).

  • Added teakScheduleId and teakCreativeId to TeakNotification

  • Added teakScheduleId and teakCreativeId to TeakReward

Bug Fixes

  • Fixed race condition in processDeepLinks

  • Fixed a bug where links created on the Teak Dashboard could only link to the teakXXXXX:// scheme.

Android

Breaking Changes

  • Deprecated method Teak.onNewIntent removed

  • Support for Adobe AIR removed

  • support-v4 is no longer supported, AndroidX is now required

  • If you use the Facebook SDK, version 4 is now the minimum supported version

  • Teak will no longer create a Firebase instance if one does not exist

    • io_teak_ignore_default_firebase_configuration removed

    • io_teak_gcm_sender_id removed

    • io_teak_firebase_app_id removed

    • io_teak_firebase_api_key removed

    • io_teak_firebase_project_id removed

  • Minimum target SDK is now API 30

  • com.android.installreferrer version used is now 2.2

New Features

  • Now using v2 Signatures for request signing (this is not a user-facing change).

  • Now supports out-of-memory fallbacks for all notifiation images.

  • Added teakScheduleId and teakCreativeId to NotificationEvent

  • Added teakScheduleId and teakCreativeId to RewardClaimEvent

  • Now automatically tracks purchases from Google Play Billing v3

Bug Fixes

  • Fixed a bug where links created on the Teak Dashboard could only link to the teakXXXXX:// scheme.

3.5.3

Bug Fixes

  • WebGL now properly allows email address collection via IdentifyUser

iOS

Bug Fixes

  • Fixed race condition in processDeepLinks

  • Fixed a bug where links created on the Teak Dashboard could only link to the teakXXXXX:// scheme.

Android

Bug Fixes

  • Fixed a bug where links created on the Teak Dashboard could only link to the teakXXXXX:// scheme.

3.5.2

New Features

  • Adds Teak.Instance.ReportCanvasPurchasefor reporting purchases on Facebook Canvas

3.5.1

Bug Fixes

  • Fixes behavior in Unity Editor for destroying the Teak Game Object automatically

3.5.0

iOS

Bug Fixes

  • When logging out, the new Session is no longer intialized using the previous user id or Facebook token.

  • Fixes invalid signatures on some events

  • Reset firstSentTime when UserProfile is sent.

Android

Breaking Changes

  • Requires Firebase Messaging 21 minimum

Bug Fixes

  • Resets firstSendTime on UserProfile after send.

3.4.4

Android

Bug Fixes

  • Fix deadlock when a UnitySendMessage call would cause another callback into Teak under certain circumstances

3.4.3

Android

Bug Fixes

  • Fix singleton FCMPushProvider to allow operation before Teak initialization

3.4.2

iOS

New Features

  • Users can now be their own UNNotificationCenter delegates and pass the calls to Teak

  • Added isTeakNotification:

  • Added didReceiveNotificationResponse:withCompletionHandler:

  • Added willPresentNotification:withCompletionHandler:

Android

New Features

  • Let users use their own FirebaseMessagingService

  • Added isTeakNotification

  • Added onMessageReceivedExternal

3.4.1

Android

Bug Fixes

  • Fix mutex lock order to resolve potential deadlock

3.4.0

New Features

  • Added OnLaunchedFromLink

Bug Fixes

  • Added additional protection against the auto-created TeakGameObject from getting saved into a scene

iOS

Breaking Changes

  • SDK is now built using Xcode 11.3.1

New Features

  • Added TeakLaunchedFromLink event

Bug Fixes

  • Fixed crash if CFBundleShortVersionString or CFBundleVersion were nil

Android

New Features

  • Supports Amazon Device Messaging 1.1.0

  • LaunchedFromLink event

3.3.2

Android

Bug Fixes

  • Fixes deadlock in Session.isCurrentSession

3.3.1

iOS

New Features

  • Detects iOS 14 IDFA permission grant.

3.3.0

New Features

  • Now automagically adds deep links to AndroidManifest.xml when the Teak Post-Process script is run

  • Now available in Unity Package Manager format on GitHub as GoCarrot/upm-package-teak

Bug Fixes

  • Now catching and reporting callback errors for scheduling and canceling notifications

iOS

New Features

  • iOS now supports enhanced integration checks

  • iOS now supports report_client_error and will popup warnings when enhanced integration checks are enabled

Bug Fixes

  • Push State Chain has a max length of 50

  • OnReward event will now always contain a status key

Android

Breaking Changes

  • If using Teak to create a separate Firebase instance, you must add io_teak_firebase_project_id and

New Features

  • Support Firebase Project Id for Firebase 20.1.6+

Bug Fixes

  • Push state chain limited to a length of 50

  • Fix public static void identifyUser(final String userIdentifier) overloaded method

  • No longer process deep links which are not Teak links

  • Reduce thread allocations, and add further measurement around thread and executor allocations

3.2.0

New Features

  • ChannelName added to TeakNotification and TeakReward``

  • Added OnCallbackError event which will inform you about errors which occur during callbacks, such as deep links

  • Added Logout which will log out the current user

iOS

New Features

  • Supports Facebook SDK 6.x

  • Added TeakLogTrace Plist setting

  • Added logout

  • Added teakChannelName to the dictionary reported by notification and reward claim events

Android

New Features

  • Supports Facebook SDK 6.x

  • Added io_teak_log_trace, enable to log out every Teak call with parameters

  • Added logout

  • Added teakChannelName to the dictionary reported by notification and reward claim events

Bug Fixes

  • Fixes compatibility with Firebase 20.1+

3.1.1

New Features

  • Adds custom ToString to TeakNotification

Bug Fixes

  • Fixes a warning in the vendored MiniJSON.cs

  • Fixes behavior of Unity custom app delegates for iOS, as well as provides a specific error message for Unity log listeners

iOS

Bug Fixes

  • Fixes encoding bugs introduced by [NSCharacterSet URLQueryAllowedCharacterSet].

  • Fixes custom app delegates in Unity would not receive an event for non-Teak deep-links coming from notifications.

Android

Bug Fixes

  • No longer will call deep links again, or resolve rewards again, when the user id is changed.

3.1.0

New Features

  • Added DeepLink to TeakNotification

iOS

New Features

  • teakDeepLink is now included in the TeakNotificationAppLaunch and TeakForegroundNotification events.

  • teakShowInForeground can be specified on a per-notification basis, to allow notifications to be displayed while the app is running.

  • /teak_internal/app_settings deep link added. Opens iOS settings to the settings for this app.

  • Adds xcode_version to log output.

Bug Fixes

  • Fixes encoding of % during form encodes.

Android

New Features

  • /teak_internal/app_settings deep link added. Opens Android settings to the settings for this app.

  • Foreground notification support.

Bug Fixes

  • Added additional proguard keep paterns.

3.0.2

Bug Fixes

  • Fixes behavior for custom App Delegates when using a non-Teak deep link

  • Android < 5.1 would send invalid UTF characters via UnitySendMessage resulting in a soft-exception in Teak log event listeners, this exception is now caught and reported to the log listener

iOS

Bug Fixes

  • Fixes handling of non-Teak deep links and propigation to app delegates

3.0.1

Android

New Features

  • Teak can now optionally ignore the default Firebase configuration, use <meta-data android:name="io_teak_ignore_default_firebase_configuration" android:value="true" />

3.0.0

New Features

  • Support for AndroidX (you must use 1.2.119 of the Google Play Services Resolver to use AndroidX)

iOS

Bug Fixes

  • Fixed a bug where playable notifications with custom thumbnails had off-by-one actions.

  • Use a more robust way of converting NSData to a hex string for push keys.

Android

Breaking Changes

  • minSdkVersion is now 16

  • targetSdkVersion must now be 28 or higher

New Features

  • Teak can now use androidx or the support-v4 libraries for its dependencies.

Bug Fixes

  • Can now use the 5.x series of the Facebook SDK.

2.3.0

New Features

  • IdentifyUser can now take an optional parameter for email

iOS

New Features

  • Deep links now recieve incoming_path and incoming_url

  • Adds email to identify user

Android

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

2.2.0

New Features

  • OnForegroundNotification is an event which is fired when a Push Notification is recieved while the game is in the foreground (in which case, the notification is not displayed to the user)

  • OnLogEvent is an event which is fired when the Teak SDK makes a log call

Bug Fixes

  • Added some iOS Frameworks that seemed to be required for some build configurations but not others

  • Changes to automatic adding of iOS Entitlements. This could change the name of the entitlements file that is used by the built project

iOS

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].

Android

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.

2.1.3

Bug Fixes

  • Undefines TEAK_X_Y_OR_NEWER before re-defining to prevent errors in the case of rollbacks

iOS

Bug Fixes

  • Fixes crash when waitForDeepLinkOperation was re-submitted after finishing.

2.1.2

iOS

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

Bug Fixes

  • Fix import for TeakProcessDeepLinks so it’s iOS only

iOS

Bug Fixes

  • Fixes form encode of [NSNull null] and nil

Android

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

2.1.0

New Features

  • Added IncrementEvent

  • Optional requirement for com.android.installreferrer:installreferrer:1+ to support com.android.installreferrer.api.InstallReferrerClient

iOS

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

Android

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

2.0.1

Bug Fixes

  • Compiler warning under .NET 4.x fixed (System.Xml.XmlReaderSettings.ProhibitDtd)

  • Fixed UnityPurchasing compile error on non-Facebook WebGL target builds

Android

Bug Fixes

  • ADMPushProvider$MessageAlertReceiver no longer obfuscated.

2.0.0

Breaking Changes

  • Unity 4 is no longer supported

  • New Android dependencies

  • Firebase is now required

  • AreNotificationsEnabledPushNotificationState

New Features

  • Support for the UnityPurchasing plugin

  • iOS Extensions can now be auto-magically added by the post-processing scripts

  • iOS Entitlements can now be added by the post-processing scripts

Bug Fixes

  • Prime31 and OpenIAB purchase plugins will now work when using IL2CPP on Android

  • Fixed bug which could happen with jQuery initialization with WebGL

iOS

Breaking Changes

  • hasUserDisabledPushNotificationsnotificationState

Bug Fixes

  • Fixed an error in determineCurrentPushStateWithCompletionHandler: which prevented proper state detection of push notifications

  • Cache logRemote

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

  • userHasDisabledNotificationsgetNotificationStatus

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.

1.0.2

Android

Bug Fixes

  • ADMPushProvider$MessageAlertReceiver no longer obfuscated.

1.0.1

Bug Fixes

  • Fix Android IL2CPP when using Prime31

iOS

Bug Fixes

  • Fixes to TeakPushChainState tracking.

1.0.0

New Features

  • Notification launch callbacks now work on WebGL for Facebook Canvas

  • Deep link launch callbacks now work on WebGL

Bug Fixes

  • A WebGL scheduled/canceled notification could sometimes not trigger a callback, this has been fixed

iOS

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

Android

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+

0.19.0

New Features

  • RegisterForProvisionalNotifications()

iOS

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

  • 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

Android

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

0.18.0

iOS

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

Android

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

0.17.0

iOS

New Features

  • Reward Link Name is now the 'creative name' if the on reward callback was triggered from a deep link

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_KEYTEAK_API_KEY_RESOURCE

    • TEAK_APP_IDTEAK_APP_ID_RESOURCE

    • TEAK_GCM_SENDER_IDTEAK_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

0.16.0

Android

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

0.15.0

New Features

  • If another plugin is using IMPL_APP_CONTROLLER_SUBCLASS it now works

iOS

New Features

  • User profile

  • Batching for trackEvent and user profile

Bug Fixes

  • Circular reference in expanded push notification view fixed

Android

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

0.14.0

Bug Fixes

  • OnReward and OnLaunchedFromNotification null checks (this didn’t seem to affect anyone, but still was a good fix)

  • WebGL error with TeakDeepLinkTableInternal fixed

iOS

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

Android

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

0.13.8

New Features

  • Now supports Play Services Resolver plugin

  • RewardId added to TeakReward``

  • SetBadgeCount

iOS

Breaking Changes

  • Now requires additional frameworks

    • ImageIO.framework

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)

Android

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

0.13.7

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

iOS

Breaking Changes

  • Now requires additional frameworks

    • AVFoundation.framework

    • MobileCoreServices.framework

New Features

  • Interactive notifications

Android

Bug Fixes

  • Purchase tracking works once again

  • Send common payload during reward claim

  • RetryableTask now immediately fails if ClassNotFoundException (if GCM isn’t linked)

0.13.5

Android

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

0.13.3

Android

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

0.13.2

Breaking Changes

  • Now using AAR for Android, remove these files

    • Assets/Editor/TeakPackageBuilder.cs

    • Assets/Plugins/Android/res/layout/teak_big_notif_image_text.xml

    • Assets/Plugins/Android/res/layout/teak_notif_no_title.xml

    • Assets/Plugins/Android/res/values/teak_styles.xml

    • Assets/Plugins/Android/res/values-v21/teak_styles.xml

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)

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

0.13.1

New Features

  • New setting (default off) controls if Teak does build post processing. Now it does not unless you enable it in Settings.

iOS

New Features

  • Media-push supported, basic image/gif only

Bug Fixes

  • Hotfix from 0.12.9 integrated

  • Internal system re-write

Android

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

0.13.0

Breaking Changes

  • io.teak.sdk.TeakUnityPlayerNativeActivity renamed to io.teak.sdk.wrapper.unity.TeakUnityPlayerNativeActivity

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

0.12.8

Breaking Changes

  • TeakNotification callbacks are now (string, string)

New Features

  • Added CancelAllScheduledNotifications

iOS

New Features

  • TeakNotification now has a status field

  • Added [TeakNotification cancelAll]

Bug Fixes

  • Fix for iOS 8 regex parsing

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

0.12.7

Breaking Changes

  • TeakUnityPlayerNativeActivity deprecated in favor of TeakUnityPlayerActivity

Bug Fixes

  • WebGL builds will now build cleanly

iOS

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)

Android

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

0.12.6

Bug Fixes

  • Native SDK hotfixes

  • Fix for Prime31/OpenIAB not being in default locations (firstpass assembly)

iOS

Bug Fixes

  • Fix parameter checking logic bug in trackEvent

  • Reduce memory usage via shared NSURLSessions

  • Fix duplicate identifyUser call

Android

Bug Fixes

  • Fix parameter checking logic bug in trackEvent

  • Fix 'cold start' attribution bug

0.12.5

iOS

New Features

  • TeakVersionDict exposed

Bug Fixes

  • Bogus JSON from server could cause a nil dictionary to get sent to nonnull.

Android

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

  • Raven service changed from error to warning to prevent developer anxiety

0.12.4

Android

Bug Fixes

  • Additional listeners for GCM registration key updates, and improvements in handling GCM registrations.

0.12.3

iOS

Bug Fixes

  • Fix incorrect conditional check during application:didReceiveRemoteNotification:fetchCompletionHandler:

Android

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

0.12.2

iOS

Bug Fixes

  • No longer DDoS ourselves with remote logging

Android

New Features

  • Push notification remote syntax is now versioned (non-breaking), new features

  • [object Object]

  • 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

0.12.1

New Features

  • Unity 5 Compatibility

iOS

New Features

  • Supports iOS 10 push delegate application:didReceiveRemoteNotification:fetchCompletionHandler:

Bug Fixes

  • Enable Bitcode support

Android

Bug Fixes

  • Unity and Adobe AIR now use a unified way of assigning their SDK versions

0.12.0

New Features

  • Remote logging

  • Remote exception tracking

Bug Fixes

  • Fixed an absolute path issue during iOS post process when BuildPipeline.BuildPlayer was used to build

iOS

New Features

  • Remote logging

  • Remote exception tracking

Android

New Features

  • Remote logging

  • Remote exception tracking