Я загружаю свое приложение в Android PlayStore, и оно отклоняется из-за СМС-разрешение в нем, но в моем файле Манифест.xml есть разрешение на смс не добавлено.
После разговора с командой Google они сказали, что для SMS доступно разрешение, и я не могу его найти.
Ниже приведен снимок экрана, предоставленный командой Google, и там есть разрешение на использование SMS.
Мой файл манифеста выглядит так
<manifest xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:tools = "http://schemas.android.com/tools"
package = "com.msonline.android">
<uses-permission android:name = "android.permission.READ_CONTACTS" />
<uses-permission android:name = "android.permission.INTERNET" />
<uses-permission android:name = "android.permission.READ_PHONE_STATE" />
<uses-permission android:name = "android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name = "android.permission.ACCESS_WIFI_STATE" />
<application
android:name = ".ApplicationClass"
android:allowBackup = "true"
android:icon = "@drawable/app_icon"
android:label = "@string/app_name"
android:roundIcon = "@mipmap/ic_launcher_round"
android:supportsRtl = "true"
android:theme = "@style/MSOAppTheme"
tools:ignore = "AllowBackup,GoogleAppIndexingWarning"
tools:replace = "android:allowBackup,android:icon,android:label,android:theme">
//Other declarations of Activities
</application>
</manifest>
Любая помощь заметна заранее.
Изменить №1
build.gradle
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
android {
compileSdkVersion 28
defaultConfig {
applicationId "package name"
minSdkVersion 16
targetSdkVersion 28
versionCode 31
versionName "4.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
debuggable false
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
checkReleaseBuilds false
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:recyclerview-v7:28.0.0'
testImplementation 'junit:junit:4.12'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') {
transitive = true
}
implementation 'pub.devrel:easypermissions:1.3.0'
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.8.1'
implementation 'com.onesignal:OneSignal:3.10.3'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.google.firebase:firebase-config:16.4.1'
implementation "com.google.firebase:firebase-core:16.0.8"
implementation 'com.facebook.fresco:fresco:1.7.1'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation('com.payumoney.sdkui:plug-n-play:1.0.0') {
transitive = true;
exclude module: 'payumoney-sdk'
}
implementation 'com.payumoney.core:payumoney-sdk:7.1.0'
// implementation 'com.google.android.gms:play-services-ads:17.1.1'
implementation 'com.google.android.gms:play-services-ads:17.2.0'
implementation 'com.google.android.gms:play-services-location:16.0.0'
implementation project(':libraryMobilePaymentSDKLive')
}
apply plugin: 'com.google.gms.google-services'
Manifest of Lib added
<manifest xmlns:android = "http://schemas.android.com/apk/res/android"
package = "com.atom.library_mobilepaymentsdk"
android:versionCode = "3"
android:versionName = "3.3" >
<application
android:allowBackup = "true"
android:icon = "@drawable/process"
android:label = "atom payment SDK"
android:theme = "@android:style/Theme.Holo.Light" >
</application>
Я не понимаю, о чем вы спрашиваете. Гугл говорит добавить <uses-permission android:name = "android.permission.RECEIVE_SMS" />. В вашем манифесте его все еще нет. Почему не добавил?
@TheVee: я не хочу добавлять разрешение для SMS, так как сейчас в нем нет необходимости, и я удалил разрешение из своего файла манифеста, но каким-то образом оно отображается для команды Google, и из-за этого приложение получает отклоненный
@atarasenko : Вопрос отредактирован, пожалуйста, просмотрите его
Пожалуйста, проверьте манифест в финальной версии apk. При создании окончательного apk gradle объединит манифесты приложения и библиотеки.
Сторонние библиотеки также вносят свой вклад в ваше дерево разрешений. В вашем случае указанная ниже библиотека, которую вы используете, объявлена RECEIVE_SMS в манифесте.
com.payumoney.sdkui:plug-n-play:1.0.0
Вы можете проверить манифест sdk из репозитория sdk git, используя ниже этот связь.
В манифесте определен RECEIVE_SMS.
<uses-permission
android:name = "android.permission.RECEIVE_SMS"
android:protectionLevel = "signature" />
Что вы можете попробовать сделать, так это удалить это разрешение, сначала объявить в своем манифесте tools:node = "remove", а затем добавить
<uses-permission android:name = "android.permission.RECEIVE_SMS" tools:node = "remove" />
В окончательном объединенном манифесте не будет RECEIVE_SMS.
Это помогло мне. Пожалуйста, также добавьте приведенный ниже код, который удалит разрешение из сборки релиза, поэтому из-за этого кода мне не нужно связываться с поставщиком SDK <uses-permission android:name=”android.permission.RECEIVE_SMS” инструменты: узел = «удалить» />
Наверняка вы используете стороннюю библиотеку, которая добавляет это разрешение.
Что вы можете попробовать сделать, так это удалить это разрешение, сначала объявить в своем манифесте tools:node = "remove", а затем добавить
<uses-permission android:name = "android.permission.RECEIVE_SMS" tools:node = "remove" />
В окончательном объединенном манифесте не будет RECEIVE_SMS.
Опубликуйте свой файл build.gradle. Возможно, некоторые из зависимостей добавляют разрешение SMS.