Unity добавит вам разрешения на лету во время сборки, как указано в eriQue of Unity Technologies это предотвращает сбои в работе кода и непредвиденное поведение.
Вы можете использовать такой инструмент, как этот Apk-декомпилятор, чтобы взглянуть на ваш новый манифест и какие разрешения он использует. Исходя из этого, вы можете искать определенные функции, которые могут активировать эти разрешения.
Некоторые функции, такие как isGeniune
, потребуют нескольких разрешений, поскольку они будут использовать проверку на внешнем сервере.
В качестве альтернативы вы также можете заменить свой манифест в декомпилированном APK, вручную изменить манифест на тот, который предполагался, и отказаться от него. Это еще одна тяжелая работа, но если правильно вести журнал ошибок, это может ускорить процесс отслеживания проблемных функций.
Обновить
Как я уже упоминал в комментариях ниже. Не существует реального способа точно определить функции. Но быстрый чек-лист не повредит, но потребует некоторой работы
- Используете ли вы какие-либо внешние службы?
Для многих внешних сервисов, таких как google, twitter, facebook API и инструменты, требуются дополнительные разрешения. Обычно они связаны с хранилищем/сетью, но в зависимости от целей инструмента/API их может быть намного больше.
Попробуйте создать APK с инструментами/apis и без них, чтобы увидеть, есть ли какие-либо различия.
- Используете ли вы объявления Unity?
Объявления Unity сами по себе используют 3 разрешения, а более старые версии могут использовать даже 5. Если вы используете их рекламу, вам придется воспринимать их как должное.
- Вы отключили статистику Unity?
Вы когда-нибудь смотрели на эти причудливые статистику, которые, кажется, может предоставить Unity? Ну, если вы не отключили это, вы, скорее всего, тоже участвуете в этом.
Для этой статистики требуется несколько разрешений, поскольку телефон будет анализироваться на аппаратном уровне, а также отображаться в предоставленной статистике.
- Вы действительно используете все требования к API/инструментам/ресурсам?
Возможно, вы включили некоторые API, инструменты или почти любую DLL от внешней стороны, которая может включать или не включать код, требующий зависимостей. Так же часто они не очищены на 100% и могут включать требования к разрешениям, не относящиеся к их функциям или к функциям, которые вам нужны.
Скажем, какой-то рекламный сервис может захотеть получить доступ к микрофону пользователя. Но поскольку вы не используете их функции «анализа вокального ответа OMG», это разрешение вам не требуется.
Эти разрешения можно удалить вручную, как я описал ранее в своем ответе. Или с помощью какой-либо формы автоматизации, такой как скрипт пометить редактор пост-сборки.
КОНКРЕТНЫЙ ВОПРОС:
Разрешение RECORD_AUDIO
попадает в файл манифеста Android, если есть вызов Microphone библиотека в любом скрипте проекта. Неважно, существует сценарий в сцене или нет. В этом конкретном случае, если SDK платформы Oculus импортируется в проект (что является требованием магазина) есть несколько скриптов, которые используют библиотеку Microphone
. Поэтому, если вы не используете какую-либо функцию аудиозаписи, например голосовой ввод, просто удалите следующие файлы в разделе OculusPlatform/Scripts
: MicrophoneInput.cs, IMicrophone.cs, MicrophoneInputNative.cs.
02.12.2016
[PostBuild]
события, если это необходимо. Делая это постоянным решением, после некоторого ручного труда. 02.12.2016