Ho appena rilasciato un'app che ha due permessi nel suo file manifest (per mostrare banner pubblicitari). "android.permission.INTERNET" e "android.permission.ACCESS_NETWORK_STATE". Per i test ho provato ad installare la mia app dal mercato dei giochi e ho scoperto che l'app richiedeva identità, posizione, foto/media/file !! Non ci sono tali permessi nel mio file manifest e non ne ho bisogno. Ho provato le mie altre app con manifest.xml (Internet, stato della rete) simili che stanno installando senza autorizzazioni speciali. Considerando il nuovo sistema di certificazione della classificazione dei contenuti, potrei avere problemi perché nel questionario ho contrassegnato che non è necessaria la posizione dell'utente. Perché richiede autorizzazioni che non ho chiesto? Sto utilizzando Android Studio e build.gradle:L'utente ottiene la richiesta di autorizzazioni che non sono incluse nel manifest
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.appName"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
repositories {
maven {
url "https://jitpack.io"
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.github.PhilJay:MPAndroidChart:v2.1.0'
compile 'com.melnykov:floatingactionbutton:1.3.0'
compile 'com.mcxiaoke.volley:library:1.0.+'
compile 'com.nispok:snackbar:2.10.2'
compile 'com.android.support:cardview-v7:22.2.0'
compile 'com.android.support:recyclerview-v7:22.2.0'
compile 'uk.co.chrisjenx:calligraphy:2.1.0'
compile 'com.google.android.gms:play-services:7.5.0'
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.github.markushi:android-ui:1.2'
compile 'com.afollestad:material-dialogs:0.7.3.1'
}
Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.AppPackage" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity android:name=".Prefs_Activity" >
</activity>
<activity
android:name=".Guide_Activity"
android:label="@string/title_activity_" >
</activity>
<activity
android:name=".Picker_Activity"
android:label="@string/title_activity_" >
</activity>
</application>
</manifest>
Aggiornamento:
Grazie alla risposta di CommonsWare ho trovato "-fusione-release manifesta -report.txt "e chi usa queste autorizzazioni. Queste sono mappe e API wallet. Ho separato servizio di gioco da questo:
compile 'com.google.android.gms:play-services:7.5.0'
a questo (ho bisogno di tutti per ora):
compile 'com.google.android.gms:play-services-analytics:7.5.0'
compile 'com.google.android.gms:play-services-plus:7.5.0'
compile 'com.google.android.gms:play-services-ads:7.5.0'
compile 'com.google.android.gms:play-services-appindexing:7.5.0'
Risultati:
- rimosse le autorizzazioni non necessarie dimensioni
- apk ridotto fino a 500kb
- ha iniziato a prendere seriamente la separazione API
Quale sdk per banner pubblicitari stai utilizzando? forse il sdk è il problema e aggiungere le autorizzazioni aggiuntive – itay83
Sto usando AdMob per visualizzare i banner – despecher
Stai usando alcune librerie di terze parti? Stai usando AndroidStudio o Eclipse? Se si è gradle based, si prega di inviare il file gradle del modulo app e il manifest. Sembra che il tuo manifest sia stato fuso sulla confezione con uno che include queste autorizzazioni. –