Подтвердить что ты не робот

Crash на Xcode 8.0 GM iPhone Simulator (iOS 10)

Когда я запускаю свой проект на реальном устройстве, все работает нормально.

Но когда я пытаюсь запустить его на симуляторах (iOS 10, iPhone 7 и iPhone 6), приложение потерпело крах и никаких сообщений отладчика в выводе Debugger.

Обрушившийся поток выглядит так:

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

Я хочу знать, что

TCC` CRASHING_DUE_TO_PRIVACY_VIOLATION

означает, и как исправить проблему?

4b9b3361

Ответ 1

Используете ли вы функцию, требующую одобрения пользователя (например, Camera, Location и т.д.)? TCC обрабатывает доступ к таким ресурсам, а сбой в __CRASHING_DUE_TO_PRIVACY_VIOLATION__ обычно означает, что вы не выполняете требования для использования этой функции.

Убедитесь, что у вас есть ключ описания использования для любой из этих функций в вашем файле Info.plist. iOS 10 теперь абсолютно требует, чтобы вы поставляли описания, такие как:

<key>NSCameraUsageDescription</key>
<string>For taking selfies!</string>

Возможно, он работает на вашем устройстве, потому что вы ранее предоставляли разрешение. Если вы удалите приложение и подождите 24 часа (или установите на другое устройство, на котором раньше не было установленного приложения), вы, вероятно, увидите то же самое на устройстве. (В разных службах есть разные политики: быстро ли исчезает разрешение или сохраняется какое-то время, чтобы разрешить переустановки).

Обновление:

Существует хорошая техническая страница Q & A на developer.apple.com, которая описывает структуры, которые требуют описания использования, и перечисляет соответствующий ключ для каждой структуры и класс/функция/селектор (ы).

Ответ 2

В дополнение к @russbishop ответ:

Вам нужно сделать то же самое и для доступа к галерее. Что-то вроде:

<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) needs access to use your photo library</string>

PS: Полностью противоположный вашему делу, я получал такой же крах на устройстве, но не на симуляторе.

Ответ 3

В дополнение ко всем приведенным выше ответам:

Для меня это были камера и микрофон, NSCameraUsageDescription и NSMicrophoneUsageDescription.

Если вы хотите записать видео, вы должны добавить оба из них.

Thanx Apple.