Update 30th October 2019
Our initial tests indicated only Xcode 11 Apps were affected by iOS 13. However, we've discovered iOS 13 introduced breaking changes to Xcode 10 (or below) built Apps as well. We have updated this article with advice for developers that use Xcode 10 (or below) to build their Apps.
Apps using Twilio Voice iOS SDKs 2.0, 3.X, or 4.X may not be compatible with iOS 13. To ensure that your app continues to work properly please follow one of the following migration paths:
iOS 13 & Xcode 10 or below
If you build your App with Xcode 10 or below you must ensure that you properly decode the PushKit device token in your application as described in the Xcode 10 migration guide. Failure to do so may result in some iOS 13 customers not being able to register for incoming call notifications.
As long as you continue to build your app with Xcode 10 or below you do not need to upgrade to Twilio Voice iOS 2.1 or 5.0.0+. However, note that Apple will no longer allow submitting apps using Xcode 10 starting in April 2020.
iOS 13 & Xcode 11
If you build your App with Xcode 11 you must migrate to Twilio Voice iOS 2.1.0 or 5.0.0+ and follow the Xcode 11 migration guide. For more information about these changes you can refer to the section below.
On iOS 13, Apple now mandates that all VoIP push notifications be reported to the CallKit framework as a new call. If a VoIP push notification is not reported to CallKit within a designated time window iOS will terminate the app. If enough VoIP push notifications are not reported to CallKit, Apple will stop delivering VoIP push notifications to the app altogether. If this occurs, the customer will need to reinstall the app to get VoIP push notifications again.
The current incoming call push model uses two types of VoIP push notifications: a “call” and a “cancel” push. With iOS 13 Apps built using Xcode 11, Apple only allows “call” pushes. As a result, the current incoming call push model must be changed. We are implementing changes to support this new policy.
Any iOS app using Voice 2.0 or above that is built with Xcode 11 running on iOS 13 will be impacted by this new policy. iOS 13 is expected to be released in mid-September. Existing apps running on iOS 13 should not be impacted by this new policy so long as they remain built on Xcode 10 or lower.