Устранение неполадок для Android
Узнайте, как решить типичные проблемы при разработке приложений Android с помощью Unity.
Файл манифеста Android содержит неожиданные разрешения
При создании приложения Unity Android окончательный манифест приложения может содержать разрешения, которые вы явно не добавили в проект. Такие неожиданные разрешения могут вызвать проблемы при распространении приложения через службы распространения, такие как Play Store.
Симптомы
Манифест приложения содержит неожиданные записи разрешений, которые не являются частью файлов манифеста проекта.
Причина
При создании приложения Unity Android Gradle создает окончательный манифест приложения путем объединения файлов манифеста из различных источников, включая плагины и пакеты. Этот процесс может автоматически включать некоторые неожиданные разрешения в манифесте на основе зависимостей и целевой версии SDK.
Резолюция
Чтобы выявить и устранить такие неожиданные разрешения, используйте файл журнала слияния манифеста, который Gradle создает при сборке приложения Android. В этом файле журнала содержится информация о том, как и почему Gradle добавляет каждый элемент манифеста.
Создайте приложение в формате
.apkили.aab.Перейдите в каталог
logsпод<your_project>/Library/Bee/Android/Prj/IL2CPP/Gradle/launcher/build/outputs.-
Откройте соответствующий файл журнала в зависимости от типа сборки.
- Релиз сборки:
manifest-merger-release-report.txt - Разработка:
manifest-merger-debug-report.txt
- Релиз сборки:
-
Ищите записи журнала, начинающиеся с
IMPLIED, чтобы определить неожиданные разрешения. В файле журнала отображаются следующие сведения:IMPLIED from D:\MyProject\Library\Bee\Android\Prj\IL2CPP\Gradle\launcher\src\main\AndroidManifest.xml:2:1-5:12 reason: com.test.package has a targetSdkVersion < 4 uses-permission#android.permission.READ_PHONE_STATE Проверьте поле
reason, чтобы определить причину неожиданного разрешения. В этом примере запись журнала указывает, что Gradle добавил разрешениеuses-permission#android.permission.READ_PHONE_STATE, потому чтоtargetSdkVersionизcom.test.packageниже4.Свяжитесь с владельцем пакета и попросите обновить целевую версию SDK, чтобы она соответствовала целевой версии SDK вашего проекта.