Problem Summary
I'm experiencing contradictory permission declaration errors in Google Play Console that don't match my actual app manifest. Despite multiple clean builds and manifest verification, Google Play Console shows incorrect permission status.
Specific Issues
QUERY_ALL_PACKAGES: Google Play Console says "Incomplete broad package visibility declaration" and requires me to complete declaration for QUERY_ALL_PACKAGES permission, but this permission is NOT in my manifest
AD_ID: Google Play Console says
Your advertising ID declaration in Play Console says that your app uses advertising ID. A manifest file in one of your active artifacts doesn't include the com.google.android.gms.permission.AD_ID permission
What I've Verified Source Manifest (android/app/src/main/AndroidManifest.xml):
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
<!-- QUERY_ALL_PACKAGES is NOT present -->
Final Built Manifest (verified with Android Studio's "Analyze APK"):
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
<uses-permission android:name="com.android.vending.BILLING" />
<!-- QUERY_ALL_PACKAGES is confirmed NOT present in final build -->
What I've Tried
Technical Details
Questions
Additional Context
The app works correctly and all functionality is as expected. This appears to be purely a Google Play Console declaration/analysis issue, but it's preventing me from completing the app release process.
Has anyone experienced similar permission declaration mismatches between actual app manifest and Google Play Console analysis?
Google has had a bug for a long time that no one is bothering to fix. It's like this:
If you, before putting your app into production, used the closed or open testing options, etc., Google checks whether ALL the apps you used for testing and are no longer interested in meet the requirements of the app you want to put into production.
So the error message doesn't refer to the app you're trying to put into production; it refers to the old ones.
So, you just need to go to those old ones and delta, deactivate, or stop the track.
Then, with that done, you don't even need to upload another version; just try releasing it again and it will work.