Мы пытаемся обновить библиотеку реферера Google Play Install и
Внутренне он добавляет некоторые внешние права на чтение и запись .
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Нам действительно нужно придерживаться разрешений?
зависимость implementation 'com.android.installreferrer:installreferrer:1.1
Источник https://developer.android.com/google/play/installreferrer/library.html
android
google-play
wadali
источник
источник
Ответы:
Я также сталкивался с этой проблемой.
Но в моем случае версия 1.1 также добавляет разрешение READ_PHONE_STATE
Я декомпилировал файл .aar для installreferrer: 1.1 и проверил файл манифеста и pom, в этих файлах нет ничего, что указывало бы на то, что эти разрешения должны быть добавлены.
Файл манифеста библиотеки только добавляет это разрешение (которое всегда было в предыдущих версиях):
Я не смог найти никакой официальной информации по этому поводу.
Но в прошлом у других библиотек Google были проблемы с добавлением дополнительных ненужных разрешений, которые вскоре были удалены в версии исправлений.
Например, это:
Почему было добавлено разрешение READ_PHONE_STATE?
Поэтому я надеюсь, что то же самое произойдет здесь.
источник
uses-permission#android.permission.READ_PHONE_STATE IMPLIED from android/app/src/main/AndroidManifest.xml:1:1-130:12 reason: com.android.installreferrer has a targetSdkVersion < 4
информацию о неявном разрешении можно найти в этой документации: developer.android.com/studio/build/…Установка реферера добавляет это разрешение в связи с тем, что
targetSdkVersion
это значение ниже, чем версия, в которой было добавлено ограничение. Если вы посмотрите на сгенерированный manifest-merger-report в папке сборки вашего приложения, вы увидите следующую информацию:Информацию о том, как работает это неявное системное разрешение на Android, можно найти в этой документации: https://developer.android.com/studio/build/manifest-merge#inspect_the_merged_manifest_and_find_conflicts
источник
Из этого ответа :
Это потому, что они добавили зависимость
Который добавляет эти разрешения.
Вы можете найти его в файле: manifest-merger-blame-debug-report.txt, который находится в «yourApp / build / промежуточные / manifest_merge_blame_file / debug»
Это, наверное, ошибка. Кроме того,
installreferrer 1.1.1
не решает это.Самое простое решение -
installreferrer
вернуться к1.0
текущему моменту.Но если вам нужна эта версия, вы можете добавить:
Чтобы отключить это. Но знайте, что если вы будете использовать любой API, которому он нужен внутри библиотеки, это может привести к сбою , поэтому я не буду рекомендовать делать это.
источник
Цитата из этого ответа (и завершение):
В версиях 1.1 и 1.1.1 отсутствует "minSdkVersion". Это автоматически добавит эти разрешения (потому что SDK по умолчанию <4, как говорит @thiagolr). Смотрите похожую проблему здесь: Google Play Services 12.0.1 .
Решение
Версия 1.1.2 решает эту проблему.
подробности
Manifest.xml для v1.0 (с https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.0 )
Manifest.xml для v1.1 (с https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.1 )
источник
Теоретически их можно удалить вместе с манифестом-слиянием:
Но если библиотека будет работать, как и ожидалось, это уже другая история -
скорее исключение, что библиотека Google требует ненужных разрешений.
В о выпуске и документация не упоминаются разрешения.
источник
Эти разрешения добавлены, потому что
com.android.installreferrer
имеет targetSdkVersion <4. Вы можете увидеть его в файле manifest-merger-release-report.txt, расположенном в Temp \ gradleOut \ build \ output \ logs внутри вашего проекта. Это ошибка, и она, вероятно, будет исправлена в более новой версии.Чтобы это исправить, вам нужно выяснить, какой плагин добавляет
com.android.installreferrer
как зависимость.В моем проекте виновником был плагин Facebook . Он использует
com.facebook.android:facebook-core:5.15.x
пакет, который отвечает за добавлениеcom.android.installreferrer:installreferrer:1.1
зависимости.Решение состояло в том, чтобы откат к
com.facebook.android:facebook-core:5.13.0
, который не имеетcom.android.installreferrer
зависимости.Отредактируйте файл
FacebookSDK/Plugins/Editor/Dependencies.xml
и измените эти пакеты на:Далее, не забудьте разрешить зависимости снова:
Assets > Play Services Resolver > Android Resolver > Force Resolve
источник
1.1.2 выпущен, он правильно добавляет minSdkVersion.
источник