Объявление использования доступа к микрофону для настройки конфиденциальности в info.plist iOS 10

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

Моя проблема заключается в том, что некоторые пользователи сообщают, что приложение падает после входа в систему. из приведенного ниже журнала сбоев я подозреваю, что это связано с проблемой доступа к настройкам конфиденциальности (хотя я не уверен). Пожалуйста, проверьте журнал сбоев и объясните мне, как решить эту проблему.

#9. Crashed: com.apple.root.default-qos
0  libsystem_kernel.dylib         0x18ae60d74 __abort_with_payload + 8
1  libsystem_kernel.dylib         0x18ae5d480 abort_with_payload_wrapper_internal + 100
2  libsystem_kernel.dylib         0x18ae5d4c8 system_set_sfi_window + 10
3  TCC                            0x18e0a0328 __TCCAccessRequest_block_invoke_2.80 + 258
4  TCC                            0x18e0a0224 __CRASHING_DUE_TO_PRIVACY_VIOLATION__ + 702
5  TCC                            0x18e0a3330 __tccd_send_block_invoke + 348
6  libxpc.dylib                   0x18af6601c _xpc_connection_reply_callout + 80
7  libxpc.dylib                   0x18af65f8c _xpc_connection_call_reply + 40
8  libdispatch.dylib              0x18ad1d1c0 _dispatch_client_callout + 16
9  libdispatch.dylib              0x18ad2bab4 _dispatch_queue_override_invoke + 732
10 libdispatch.dylib              0x18ad2d38c _dispatch_root_queue_drain + 572
11 libdispatch.dylib              0x18ad2d0ec _dispatch_worker_thread3 + 124
12 libsystem_pthread.dylib        0x18af262b8 _pthread_wqthread + 1288
13 libsystem_pthread.dylib        0x18af25da4 start_wqthread + 4

1 ответ

Я думаю, что вы должны использовать UISupportedExternalAccessoryProtocols разрешение на пользовательское внешнее оборудование.

<key>UISupportedExternalAccessoryProtocols</key>
    <array>
        <string>PROTOCOL_NAME_HERE</string>
    </array>

PROTOCOL_NAME_HERE является идентификатором пакета вашего протокола / внешнего аксессуара.

И вы должны добавить ExternalAccessory.framework в вашем проекте (Нажмите на свой проект в Навигаторе проектов на левой стороне. В общем, перейдите к "Связанные фреймворки и библиотеки". Нажмите на кнопку +).

Другие вопросы по тегам