iOS developer changes in iOS 13 you missed
|Richard Harris in iOS Friday, October 25, 2019|
iOS developer changes in iOS 13 you missed as seen from OneSignal’s CEO George Deglin who discusses his team’s work and research for the iOS 13 update process.
We recently caught up with George Deglin, CEO and Co-Founder at OneSignal who says the team at OneSignal has been tracking code changes in iOS 13 since June, and they identified several technical changes that Apple had not formally announced elsewhere. In Xcode 11 Apple changed the results of a function that many developers were using to get push tokens. More unannounced changes include a newly required header for their push notification API (apns-push-type), changes to the “apns-priority” header behavior, discontinuation of TLSv1 support, and changes to how VoIP notifications work. Deglin says it is worth it to stay ahead of any major launch changes to make sure that customers aren’t affected.
ADM: How long have you been tracking the progress for code changes in iOS 13?
Deglin: We’ve been tracking iOS 13 since it was first announced at WWDC in June 2019. Along with the announcement, our team carefully reviewed all of the WWDC presentations for information related to iOS 13, the upcoming Xcode 11 release, and any other changes that could impact our customers. From these presentations, we identified several technical changes that Apple had not formally announced elsewhere.
As iOS 13 and Xcode 11 came closer to release, our team began testing early beta versions of each and working alongside clients who were trying out these pre-release versions.
ADM: Can you share some examples of what you found in your testing?
Deglin: We discovered several changes affecting iOS 13, Xcode 11, and Apple’s push notification API.
The most impactful change may be that in Xcode 11 Apple changed the results of a function that many developers were using to get push tokens (NSData’s description function). There’s been some debate over whether developers had been doing this correctly, but nevertheless, this method had been used in a large percentage of all applications that implement push notifications.
As a result of this change, many developers must make sure to review the code or software library they use for push token registration before switching to using Xcode 11.
Apple also made several other unannounced changes, including a newly required header for their push notification API (apns-push-type), changes to the “apns-priority” header behavior, discontinuation of TLSv1 support, and changes to how VoIP notifications work.
Thanks to our early testing and customer feedback we received, we became aware of these changes early on. This gave us time to update all of our SDKs. We reached out and notified our affected customers. We also decided to proactively reach out to other push notification service vendors so they could inform their customers as well.
ADM: What has changed/who is impacted?
Deglin: These changes had widespread implications. Any iOS developer who implements push notifications in their app, or who works with a third-party vendor to implement notifications, was likely affected.
Many vendors were caught off-guard and shipped last-minute fixes. There was also a lot of miscommunication and uncertainty, with some answers arriving only after developers took it upon themselves to decompile Apple’s libraries to better understand the changes.
The changes are as follows:
1. The NSData description function no longer returns the same return value as of Xcode 11. This method had been used by many developers to get the device’s push token, but is now no longer the correct method.
2. A new attribute, “apns-push-type” is required in the header of all requests sent to Apple’s push notification service (APNS).
3. The “apns-priority” header must now be set to 5 for all notifications without user visible content.
4. Discontinuation of TLSv1 Support.
5. Several VoIP changes.
When it came to the VoIP notification changes, some developers ran into some particularly complex problems. VoIP notifications had been designed by Apple to have several capabilities designed for messaging or phone call applications like Skype. However, developers discovered that they could also be used as a way to implement end-to-end message encryption for notifications, among other features. In iOS 13, Apple chose to change VoIP notifications such that they could no longer be used outside of their original purpose.
Ultimately, most of the changes could be worked around by developers who were aware of them. However, the lack of information caused a lot of confusion.
ADM: How prepared were major providers like Amazon for these changes?
Deglin: Many providers were not well prepared. Amazon announced support for the changes on Sept 10, 2019, just 9 days before iOS 13 was released. Twilio’s documentation was out of date until just days before. A lot of vendors continue to have inaccurate documentation or code examples.
ADM: How responsive has Apple been to customer/developer feedback before/after this launch? Have all the necessary updates been made in the 13.1 release?
Deglin: Sadly, Apple has not been very responsive. They have not replied to forum threads asking for information about some of the changes, nor bug reports that were submitted to them. Some documentation pages remain out of data or inconsistent. I’m optimistic that Apple will correct some of these inconsistencies once they’re less busy with other iOS 13 and iPhone 11 releases.
ADM: What recommendations do you have for other developers to stay ahead of major launch changes like this?
Deglin: It can be difficult to keep track of all the changes Apple and other companies make to their push notification implementations. Our team stays informed of Apple's changes by carefully watching all relevant WWDC sessions, regularly reviewing Apple's documentation for changes, testing all Xcode and iOS beta releases, reading Apple's developer forums, and working closely with our clients. All of this can be time-consuming, but worth it to stay ahead of any major launch changes and make sure that our customers aren’t affected.
OneSignal’s CEO George Deglin