Не удалось получить информацию о телефоне voip из последних телефонных номеров с помощью CallKit.

Я интегрировал фреймворк CallKit в свое приложение и сделал исходящий вызов.

Я вижу исходящий вызов в родных телефонах.

Но когда я ввожу исходящий вызов и хочу получить информацию о телефоне. Оно сломалось.

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSUserActivity interaction]: unrecognized selector sent to instance 0x17d4ab90'  

Вот мой код в AppDelegate.m

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * __nullable restorableObjects))restorationHandler NS_AVAILABLE_IOS(8_0) { INInteraction *interaction = userActivity.interaction;
INStartAudioCallIntent *startAudioCallIntent = (INStartAudioCallIntent *)interaction.intent;
INPerson *contact = startAudioCallIntent.contacts[0];
INPersonHandle *personHandle = contact.personHandle;
NSString *phoneNumber = personHandle.value;
}

Я разбился в INInteraction *interaction = userActivity.interaction;

И я проверил с информацией о взаимодействии

@property (readonly, nullable, NS_NONATOMIC_IOSONLY) INInteraction *interaction API_AVAILABLE(macosx(10.12), ios(10.0));

Ниже приведена моя среда

mac: 10.12.1 xcode: 8.1 iOS: 10.1.1

Это не нарушает требования

Я ищу весь день, но, кажется, никто не встречает эту проблему.

Что-то не так с уровнем кода или есть другой способ получить информацию о телефоне?


person Zenki Wu    schedule 16.11.2016    source источник
comment
Вы упомянули NSUserActivityTypes в info.plist?   -  person RJV Kumar    schedule 16.11.2016
comment
Нет, я не добавляю ключ NSUserActivityTypes в info.plist. Нужно ли добавлять ключ при использовании callkit?   -  person Zenki Wu    schedule 16.11.2016
comment
Вы решили проблему?   -  person RJV Kumar    schedule 17.11.2016
comment
Спасибо за ответ :) Ключ NSUserActivityTypes в info.plist на меня не действует. Но, наконец, я нахожу первопричину. Я не устанавливаю намерения.framework. Я могу исправить это, добавив намерения.framework в Target->Build Phases-> Link Binary with Libraries.   -  person Zenki Wu    schedule 17.11.2016


Ответы (2)


введите здесь описание изображения

Я попытался добавить типы NSUserActivity, но они не используются, я также использую этот метод для решения этой проблемы. Я могу исправить это, добавив Intents.framework в Target->Build Phases-> Link Binary with Libraries enter описание изображения здесь

person jeff    schedule 27.03.2017

Надеюсь, вы пропустили ключ NSUserActivityTypes в info.plist. Ниже приведены ключ и значение для добавления в зависимости от намерения, с которым вы работаете.

введите здесь описание изображения

person RJV Kumar    schedule 16.11.2016