2016-03-23 3 views
1

Я работаю над приложением iOs, написанным в Swift, с контроллером просмотра камеры. В первый раз, когда я запустил этот контроллер представлений, был показан диалог разрешения, и я разрешил доступ к камере и библиотеке фотографий. Тем не менее, я заметил проблему, разрешая разрешение библиотеки, и я хотел бы иметь возможность воспроизвести ее, чтобы ее исправить ... Но для этого мне нужно повторно показать это диалоговое окно с разрешением. Однако даже если я удалю приложение и переустановить его, я никогда не получу это диалоговое окно разрешений еще раз.Показать диалоговое окно разрешений снова в iO

Как получить его снова, чтобы я мог исправить свою проблему?

Спасибо!

ответ

4

Там не существует идеального решения

Рекомендуемый способ это зайти в «Настройки» приложения

(General > Reset > Reset Location & Privacy). 

Но, как вы говорите, он сбрасывает все приложения.

Другой вариант - изменить идентификатор пакета приложения, поэтому он считается новым приложением, и он снова попросит.

Третий вариант - удалить приложение, сменить время своего устройства на более чем 24 часа вперед, выключить устройство и снова включить его.

0

Вы можете пойти в Settings -> Privacy -> Camera и отключить свое приложение.

+0

К сожалению, он не показывает диалог снова ... – fraxool

+0

Проблема с библиотекой фотографий? в этом случае зайдите в Настройки -> Конфиденциальность -> Фотографии –

2

Я не уверен, что он работает в iOS 9, но в iOS 8 система устарела после того, как приложение было удалено в течение 24 часов. Вы можете имитировать его, удалив приложение, перемещая время вперед в настройках и затем переустановив приложение.

Существует также Reset Location & Privacy, но это глобальный сброс.

+0

Да, я видел это решение, но это не лучшее, на мой взгляд, так как он сбрасывает все остальные приложения, установленные на телефоне ... Но если нет другого пути. – fraxool

+0

Смещение по времени, вероятно, является единственным способом сделать это без влияния всей системы на другие приложения, но также изменение времени в будущем может возникнуть в другом месте. Жаль, что нет чистого способа сделать это за приложение. –

0

Если вы джейлбрейк, вы можете запустить эти команды оболочки на устройстве, чтобы сбросить все разрешения диалоговые окна для всего вашего приложения:

export bundleIdentifier="com.yourcompany.product" 
sqlite3 /private/var/mobile/Library/TCC/TCC.db "DELETE FROM access WHERE client = '${bundleIdentifier}'" 
Смежные вопросы