For a client of ours we've created an app which has to be available by the 11th of October. The app is already available in the iOS App store but Google Play seems to be a problem.
I have added the package to the release track on the 26th of September, hoping it would be reviewed & published shortly after which, luckily, it did. I can use a direct link to the app (taken from the play console) which indicates it is published correctly. The console does not list any errors. Device and country settings have been double checked and all seems to be correct.
Google support has been contacted a few days ago but, unfortunately, there is still no reply from them.
With the deadline coming closer i'm getting less sleep each night.
Does anyone have any experience with this particular issue and hopefully a solution?
Notes
- App is created with React Native version 0.59.9
- No advertisements but uses AdMob SDK for Firebase Analytics
- Package name is "com.kunstmuseum.kunstmuseum"
- Searching the Play store for: "pub:Kunstmuseum Den Haag" does give me a result.
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kunstmuseum.kunstmuseum"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:name=".MainApplication"
android:allowBackup="true"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
<service android:name="io.invertase.firebase.messaging.RNFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name="io.invertase.firebase.messaging.RNFirebaseInstanceIdService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
</application>
build.gradle
apply plugin: "com.android.application"
apply plugin: "com.google.firebase.firebase-perf"
apply plugin: 'io.fabric'
import com.android.build.OutputFile
project.ext.react = [
entryFile: "index.js",
// Sometimes (like if you use Android API<17) adb forwards don't work, so you need a bundle in the dev APK
bundleInDebug: project.hasProperty("bundleInDebug") ? project.getProperty("bundleInDebug") : false,
]
apply from: "../../node_modules/react-native/react.gradle"
/**
* Set this to true to create two separate APKs instead of one:
* - An APK that only works on ARM devices
* - An APK that only works on x86 devices
* The advantage is the size of the APK is reduced by about 4MB.
* Upload all the APKs to the Play Store and people will download
* the correct one based on the CPU architecture of their device.
*/
def enableSeparateBuildPerCPUArchitecture = false
/**
* Run Proguard to shrink the Java bytecode in release builds.
*/
def enableProguardInReleaseBuilds = false
android {
compileSdkVersion rootProject.ext.compileSdkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "com.kunstmuseum.kunstmuseum"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 5
versionName "1.4"
// Needed to support API<21, though there is a small chance proguard shrinks things sufficiently
multiDexEnabled true
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
signingConfigs {
release {
if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
storeFile file(MYAPP_UPLOAD_STORE_FILE)
storePassword MYAPP_UPLOAD_STORE_PASSWORD
keyAlias MYAPP_UPLOAD_KEY_ALIAS
keyPassword MYAPP_UPLOAD_KEY_PASSWORD
}
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a": 3, "x86_64": 4]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
}
dependencies {
implementation project(':react-native-zip-archive')
implementation project(':react-native-proximity')
implementation project(':react-native-webview')
implementation project(':rn-fetch-blob')
implementation project(':react-native-video')
implementation project(':react-native-svg')
implementation project(':react-native-sound')
implementation project(':react-native-shake')
implementation project(':react-native-audio-jack')
implementation project(':@react-native-community_async-storage')
implementation project(':react-native-gesture-handler')
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.facebook.react:react-native:+" // From node_modules
/* ----------------------------
* REACT NATIVE FIREBASE
* ---------------------------- */
// Library as defined in settings.gradle
implementation project(path: ':react-native-firebase')
// Required dependencies
//noinspection GradleCompatible
implementation "com.google.firebase:firebase-core:16.0.9"
implementation "com.google.android.gms:play-services-base:16.1.0"
/* -------------------------
* OPTIONAL FIREBASE SDKS
* ------------------------- */
implementation('com.google.firebase:firebase-ads:15.0.1') {
// exclude `customtabs` as the support lib version is out of date
// we manually add it as a dependency below with a custom version
exclude group: 'com.android.support', module: 'customtabs'
}
// Authentication
implementation "com.google.firebase:firebase-auth:17.0.0"
// Analytics
implementation "com.google.firebase:firebase-analytics:16.5.0"
// Performance Monitoring
implementation "com.google.firebase:firebase-perf:17.0.0"
// Remote Config
implementation "com.google.firebase:firebase-config:17.0.0"
// Cloud Storage
implementation "com.google.firebase:firebase-storage:17.0.0"
// Dynamic Links
implementation "com.google.firebase:firebase-dynamic-links:17.0.0"
// Real-time Database
implementation "com.google.firebase:firebase-database:17.0.0"
// Cloud Functions
implementation "com.google.firebase:firebase-functions:17.0.0"
// Cloud Firestore
implementation "com.google.firebase:firebase-firestore:19.0.2"
// Cloud Messaging / FCM
implementation "com.google.firebase:firebase-messaging:18.0.0"
// Crashlytics
implementation('com.crashlytics.sdk.android:crashlytics:2.9.9@aar') {
transitive = true
}
/* --------------------------------
* OPTIONAL SUPPORT LIBS
* -------------------------------- */
// Needed to support API<21, though there is a small chance proguard shrinks things sufficiently
implementation "com.android.support:multidex:1.0.3"
// For Firebase Ads
//noinspection GradleCompatible
implementation "com.android.support:customtabs:27.1.1"
// For React Native Firebase Notifications
implementation 'me.leolin:ShortcutBadger:1.1.22@aar'
// For animated GIF support
implementation 'com.facebook.fresco:animated-gif:1.10.0'
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}
apply plugin: 'com.google.gms.google-services'