Compliance with Google Package Visibility policy

As Google has updated its Developer Program Policy, some issues with publishing apps with Pushwoosh SDK to Google Play may raise. Refer to the Google Policy Center for details.

To overcome or prevent those issues, please make sure to provide your app complying with the updated Package Visibility policy (effective Summer 2021) following the steps described in this guide.

1. Update Pushwoosh SDK

Update the Pushwoosh SDK (for Android native apps) or the corresponding plugin for any of the cross-platform frameworks to the latest version; 6.2.5 is the required minimum.

Starting from version 6.2.5, any methods querying installed applications or packages from user’s device were removed from Pushwoosh SDK, particularly:

2. Provide other SDKs are compliant

Not only Pushwoosh SDK may be subject to the updated policy, but any other SDK implemented in your app, so you have to verify they are compliant to resubmit the app to Google Play.

Analyze your APK to ensure there is no other library using the getInstalledApplications() and getInstalledPackages() methods.

2.1. Launch the Android Studio.

2.2. Download the .apk.

2.3. Open Build-> Analyze APK…, find your .apk, and select it.

2.4. You will see the View where you can find the .apk resources. Navigate to the .dex files:

2.5. Open all .dex files one-by-one and find the android.content.pm.PackageManager:

2.6. Look for the methods getInstalledApplications() and getInstalledPackages(). If there are any, right-click it and choose the Find usages option:

It will indicate what SDKs use those methods. If you are using Ogury, Pollfish, Adjoe.io, ironSource, or UnityNativeShare – those libraries may be using querying packages methods.

2.7. Make sure to update those SDKs to versions compliant with the Google Policy or remove them from the app.

2.8. Repeat steps 2.4-2.7 for all .dex files in your APK.

3. Remove older non-compliant versions

  1. Log into your Google Play Console.

  2. Select the app you want to submit to the Store.

  3. Check your Production, Open, Closed, and Internal testing tracks for old APKs/AABs with outdated Pushwoosh SDK or any third-party SDK implemented that have been found out on the previous step.

If you find such artifacts, remove the app bundles:

3.1. Open a track (e.g., Internal testing).

3.2. Click on Release Details.

3.3. In the App bundles and APKs section, choose your APK/AAB and open its details (blue arrow on the right from the release).

3.4. Click Explore App Bundle.

3.5. Delete the app bundle by clicking the Delete App Bundle button.

Make sure the bundle is deleted, not just inactivated.

3.6. If a release is already published, the APK/AAB might be unavailable for deletion. In that case, update the release with the new SDK version.

Repeat steps 3.1 - 3.6 for all outdated artifacts.

4. Make sure to update the app in the current release before resubmitting it to Google Play.

5. Increment the app version before resubmitting (e.g., if it’s 1.0.1, it has to become 1.0.2).

4. To speed the approval up

To speed up the approval made by Google, send an appeal to [email protected] and attach screenshots to prove that:

  • Your APK does not contain any calls to these methods:

android.content.pm.PackageManager.getInstalledApplications() android.content.pm.PackageManager.getInstalledPackages()

  • All your release tracks in Google Play Console have only compliant bundles.