Когда я запускаю свой проект на реальном устройстве, все работает нормально.
Но когда я пытаюсь запустить его на симуляторах (iOS 10, iPhone 7 && iPhone 6), приложение вылетает, и в выходных данных отладчика нет сообщений отладчика.
Разбитый поток выглядит так
Я хочу знать, что за
TCC` __CRASHING_DUE_TO_PRIVACY_VIOLATION__
Значит, а как исправить проблему?
3 ответа
Вы используете функцию, которая требует одобрения пользователя (например, Камера, Местоположение и т. Д.)? TCC обрабатывает доступ к таким ресурсам, и сбой в __CRASHING_DUE_TO_PRIVACY_VIOLATION__
обычно означает, что вы не выполняете требования для использования этой функции.
Убедитесь, что у вас есть ключ описания использования для любой из этих функций в файле Info.plist. iOS 10 теперь абсолютно требует от вас предоставления таких описаний, как:
<key>NSCameraUsageDescription</key>
<string>For taking selfies!</string>
Вероятно, он работает на вашем устройстве, потому что вы ранее предоставили разрешение. Если вы удалите приложение и подождете 24 часа (или установите его на другое устройство, на котором приложение никогда раньше не устанавливалось), вы, вероятно, увидите то же самое на устройстве. (Различные службы имеют разные политики относительно того, быстро ли исчезают разрешения или сохраняются на некоторое время, чтобы обеспечить возможность повторной установки).
Обновление:
На сайте developer.apple.com есть хорошая страница технических вопросов и ответов , который описывает структуры, требующие описания использования, и перечисляет соответствующие ключи для каждой структуры и задействованных классов / функций / селекторов.
В дополнение к ответу @ russbishop:
То же самое нужно сделать и для доступа к галерее. Что-то типа:
<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) needs access to use your photo library</string>
PS: Совершенно противоположно вашему случаю, у меня был такой же сбой на устройстве, но не на симуляторе.
В дополнение ко всем вышеперечисленным ответам:
Для меня это были камера и микрофон, NSCameraUsageDescription и NSMicrophoneUsageDescription.
Если вы хотите записывать видео, вы должны добавить их обоих.
Спасибо Apple.
Похожие вопросы
Связанные вопросы
Новые вопросы
ios
iOS - мобильная операционная система, работающая на Apple iPhone, iPod touch и iPad. Используйте этот тег [ios] для вопросов, связанных с программированием на платформе iOS. Используйте связанные теги [target-c] и [swift] для проблем, характерных для этих языков программирования.