Hi,
We had an app on the Google Play store for a couple of years. Due to perceived inactivity (everything is running smoothly, no updates needed) Google is forcing us to push an update. So I rebuilt the same thing that’s released with a new version number.
The same app that uploaded just fine 7 months ago, now throws this error when creating a release:
We’re not using these permissions though, at least not as defined in Projucer
Which fits the error description, which says that these are undeclared permissions… so I’m assuming these functions are still included in my app code, even though the permissions are not in there.
What can I do to get rid of these permissions? Our app doesn’t need them.
I don’t know what the reason for this is, so I can only list a few things that I would check.
- Make sure that the uploaded
AndroidManifest.xml doesn’t contain the READ_MEDIA_IMAGES or READ_MEDIA_VIDEO permissions
- Check that the code isn’t using the JUCE
RuntimePermissions API. For example calling RuntimePermissions::request (RuntimePermissions::readMediaImages, ...) would request this permission even if it’s not enabled in the Projucer or present in the manifest. I’m not sure about this, but calling even just RuntimePermissions::isGranted could trigger requesting the permission.
If this doesn’t lead to an answer I wonder if you tried it with develop and found the same issue?
I checked both.
There is not a single mention of RuntimePermissions in our app - we only use UI stuff and IPC, not even audio/midi.
And this is the AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="40" android:versionName="1.4.3">
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true"
android:xlargeScreens="true"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-feature android:glEsVersion="0x00030000" android:required="true"/>
<application android:label="@string/app_name" android:name="com.rmsl.juce.JuceApp" android:theme="@android:style/Theme.NoTitleBar"
android:icon="@drawable/icon" android:hardwareAccelerated="false">
<receiver android:name="com.rmsl.juce.Receiver" android:exported="false"/>
<activity android:name="android.app.Activity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|navigation"
android:screenOrientation="unspecified" android:launchMode="singleTask" android:hardwareAccelerated="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
So our app should only require CHANGE_WIFI_MULTICAST_STATE and INTERNET permissions - which is correct and hence why I’m stumped that this comes up after uploading it.
This is on JUCE v8.0.2, I can try going to develop over the weekend.
Glad to report, updating to JUCE v8.0.6 did the trick (was 8.0.2 previously). Thanks for the hint @attila