Unity 6.3
0 онлайн 20 гостей 3 в системе
Вход

Устранение неполадок для Android

Узнайте, как решить типичные проблемы при разработке приложений Android с помощью Unity.

Файл манифеста Android содержит неожиданные разрешения

При создании приложения Unity Android окончательный манифест приложения может содержать разрешения, которые вы явно не добавили в проект. Такие неожиданные разрешения могут вызвать проблемы при распространении приложения через службы распространения, такие как Play Store.

Симптомы

Манифест приложения содержит неожиданные записи разрешений, которые не являются частью файлов манифеста проекта.

Причина

При создании приложения Unity Android Gradle создает окончательный манифест приложения путем объединения файлов манифеста из различных источников, включая плагины и пакеты. Этот процесс может автоматически включать некоторые неожиданные разрешения в манифесте на основе зависимостей и целевой версии SDK.

Резолюция

Чтобы выявить и устранить такие неожиданные разрешения, используйте файл журнала слияния манифеста, который Gradle создает при сборке приложения Android. В этом файле журнала содержится информация о том, как и почему Gradle добавляет каждый элемент манифеста.

  1. Создайте приложение в формате .apk или .aab.

  2. Перейдите в каталог logs под <your_project>/Library/Bee/Android/Prj/IL2CPP/Gradle/launcher/build/outputs.

  3. Откройте соответствующий файл журнала в зависимости от типа сборки.

    • Релиз сборки: manifest-merger-release-report.txt
    • Разработка: manifest-merger-debug-report.txt
  4. Ищите записи журнала, начинающиеся с 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
    
  5. Проверьте поле reason, чтобы определить причину неожиданного разрешения. В этом примере запись журнала указывает, что Gradle добавил разрешение uses-permission#android.permission.READ_PHONE_STATE, потому что targetSdkVersion из com.test.package ниже 4.

  6. Свяжитесь с владельцем пакета и попросите обновить целевую версию SDK, чтобы она соответствовала целевой версии SDK вашего проекта.

Дополнительные ресурсы