Возникли проблемы с интеграцией CallKit.Я создаю конфигурацию, подобную этой:
let providerConfiguration = CXProviderConfiguration(localizedName: "XXX")
providerConfiguration.supportsVideo = false
providerConfiguration.maximumCallsPerCallGroup = 1
providerConfiguration.supportedHandleTypes = [.phoneNumber]
if let callKitIcon = UIImage(named: "IconMask")
{
providerConfiguration.iconTemplateImageData = callKitIcon.pngData()
}
providerConfiguration.ringtoneSound = "Ringtone.caf"
А затем создаю провайдера следующим образом:
self.provider = CXProvider(configuration: providerConfiguration)
self.provider.setDelegate(self, queue: nil)
Проблема в том, что все это, кажется, игнорируется.Пользовательский рингтон не звучит, IconMask не отображается в пользовательском интерфейсе iOS (он просто пустой).IconMask является правильным, и 3 изображения имеют 40, 80 и 120 пикселей с альфа-каналом.Ringtone.caf - это допустимый звуковой файл, скопированный в комплекте.
Ничто в этой конфигурации CXProviderConfiguration не оказывает никакого влияния.Очень расстраивает!Мне перезванивают по функции делегата:
func providerDidBegin(_ provider: CXProvider)
И там я могу проверить файл provider.configuration, и все выглядит правильно.Что я делаю неправильно?
Входящий вызов фактически работает, и я интегрируюсь с TwilioVoice и VOIP push.Так что просто пользовательский интерфейс ничего не принимает в конфигурации.