Kahuna Engineering has been closely tracking iOS 9 updates and has identified the following key issues that might impact Kahuna SDK integration on iOS 9.x versions of your application.
Lag in generating device tokens
Device token is an identifier used by Apple push notification server (APNs) to locate the device where your app is installed and authenticate it to receive push notifications. With the release of iOS 9.x, Apple has updated device token generation and handling.
On iOS versions 8 and older, when a user installs your application, a token is generated for the user’s device and a request for remote notifications is sent to the Apple push notification server. However, with iOS 9 release, we noticed an intermittent lag in device token generation. Requesting remote notifications before the user accepts the push opt-in alert sometimes prevents token generation. Kahuna Engineering submitted an Apple bug report to understand the difference in push token generation between iOS versions 8 and 9. To ensure device tokengeneration immediately after the application sends a remote notification request, we recommend adding the following code snippet to your iOS application. Kahuna’s next SDK release also includes this fix.
Once added, your entire snippet should look like this (additions are highlighted in yellow):
Device tokens regenerated for each app install
On previous versions of iOS, after a device token was generated, it remained unchanged unless the device was factory restored or the user uninstalled your application for more than a day. On iOS 9, a new device token is generated each time the app is installed irrespective of the uninstallation duration. As a result of multiple tokens for the same device, we’ve noticed that on some occasions, duplicate messages are delivered to these devices. This issue is prevalent in non-Kahuna integrated apps as well and not related to Kahuna SDK. Kahuna Engineering continues to investigate this issue and work with Apple to understand which iOS 9 updates might cause this behavior.
Kahuna SDK linker warnings
When Kahuna SDK is linked against iOS 9 LLVM 7.0, numerous linker warnings appear when compiling the application in XCode 7. There is an existing bug report with Apple regarding this issue. In the meantime, Kahuna Engineering developed a workaround in our SDK v2.2.4 by turning off the following flags during application compilation: