Cannot launch a signed/aligned app (Google Play)


#1

I am having issues with my newest project, when I try to launch a signed/aligned .apk which was installed either locally or via Google Play Store. Installation works fine, the app boots up, but won’t get past the loading screen. It stays in that state forever.

I have done all the necessary building and signing steps, as I have done in another project, where I was able to successfully build, sign and publish the app (and the app works…)

When I install the debug version of the apk, everything works fine.

I have also tried signing with a new keystore certificate, but with the same result. So I suspect that my environment is the culprit.

I would appreciate it if someone could take a look at these:

Ionic:

   ionic (Ionic CLI)  : 4.9.0 (C:\Users\______\AppData\Roaming\npm\node_modules\ionic)
   Ionic Framework    : ionic-angular 3.9.2
   @ionic/app-scripts : 3.2.1

Cordova:

   cordova (Cordova CLI) : 8.1.2 (cordova-lib@8.1.1)
   Cordova Platforms     : not available
   Cordova Plugins       : not available

System:

   Android SDK Tools : 26.1.1 (D:\AndroidDevelopmentSDK)
   NodeJS            : v8.9.4 (D:\NodeJS\node.exe)
   npm               : 6.1.0
   OS                : Windows 10

package.json:

{
  "name": "Quite Some App which won't get past the Loading screen...",
  "version": "0.9.3",
  "author": "That's me",
  "homepage": "",
  "private": true,
  "scripts": {
    "start": "ionic-app-scripts serve",
    "clean": "ionic-app-scripts clean",
    "build": "ionic-app-scripts build --minifycss --optimizejs --minifyjs --release",
    "lint": "ionic-app-scripts lint"
  },
  "dependencies": {
    "@angular/animations": "5.2.11",
    "@angular/common": "5.2.11",
    "@angular/compiler": "5.2.11",
    "@angular/compiler-cli": "5.2.11",
    "@angular/core": "^5.2.11",
    "@angular/fire": "^5.1.1",
    "@angular/forms": "5.2.11",
    "@angular/http": "5.2.11",
    "@angular/platform-browser": "5.2.11",
    "@angular/platform-browser-dynamic": "5.2.11",
    "@firebase/database": "^0.2.1",
    "@ionic-native/app-minimize": "^4.18.0",
    "@ionic-native/app-version": "^4.18.0",
    "@ionic-native/call-number": "^4.18.0",
    "@ionic-native/camera": "^4.18.0",
    "@ionic-native/core": "^4.18.0",
    "@ionic-native/keyboard": "^4.18.0",
    "@ionic-native/mobile-accessibility": "^4.17.0",
    "@ionic-native/splash-screen": "^4.17.0",
    "@ionic-native/status-bar": "^4.17.0",
    "@ionic-native/toast": "^4.18.0",
    "@ionic/storage": "2.1.3",
    "@ngx-translate/core": "8.0.0",
    "@ngx-translate/http-loader": "^2.0.0",
    "@ultimate/ngxerrors": "^1.4.0",
    "angularfire2": "^5.1.1",
    "call-number": "1.0.1",
    "chart.js": "^2.7.3",
    "cordova-android": "7.1.4",
    "cordova-browser": "5.0.4",
    "cordova-ios": "4.5.5",
    "cordova-plugin-app-version": "^0.1.9",
    "cordova-plugin-appminimize": "1.0.1",
    "cordova-plugin-camera": "^4.0.3",
    "cordova-plugin-device": "^2.0.2",
    "cordova-plugin-ionic-keyboard": "^2.1.3",
    "cordova-plugin-ionic-webview": "2.3.1",
    "cordova-plugin-network-information": "git+https://github.com/apache/cordova-plugin-network-information.git",
    "cordova-plugin-splashscreen": "^5.0.2",
    "cordova-plugin-statusbar": "^2.4.2",
    "cordova-plugin-update": "^0.1.0",
    "cordova-plugin-whitelist": "^1.3.3",
    "dns": "^0.2.2",
    "emailjs-com": "^2.3.2",
    "firebase": "^5.8.2",
    "ionic-angular": "^3.9.2",
    "ionicons": "^3.0.0",
    "jsrsasign": "^8.0.12",
    "mx.ferreyra.callnumber": "~0.0.2",
    "ng-gapi": "0.0.6",
    "nodemailer": "^4.7.0",
    "phonegap-plugin-mobile-accessibility": "1.0.5",
    "require": "^2.4.20",
    "rxjs": "^5.6.0-forward-compat.5",
    "rxjs-compat": "^6.3.3",
    "sw-toolbox": "3.6.0",
    "typescript": "^3.1.3",
    "vanilla-js-calendar": "^1.1.0",
    "zone.js": "0.8.26"
  },
  "devDependencies": {
    "@ionic/app-scripts": "^3.1.1"
  },
  "description": "App",
  "cordova": {
    "plugins": {
      "cordova-plugin-whitelist": {},
      "cordova-plugin-statusbar": {},
      "cordova-plugin-device": {},
      "cordova-plugin-splashscreen": {},
      "cordova-plugin-ionic-keyboard": {},
      "cordova-plugin-camera": {},
      "cordova-plugin-app-version": {},
      "phonegap-plugin-mobile-accessibility": {},
      "mx.ferreyra.callnumber": {},
      "cordova-plugin-appminimize": {},
      "cordova-plugin-ionic-webview": {
        "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
      }
    },
    "platforms": [
      "ios",
      "browser",
      "android"
    ]
  }
}

config.xml:

<?xml version='1.0' encoding='utf-8'?>
<widget id="xx.xxxxxxxxxxxxx.xx" version="0.9.3" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>App Name Here</name>
    <description>An Awesome App which does not work</description>
    <author email="hihi.haha@world.com" href="">AuthorName</author>
    <content src="index.html" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <preference name="ScrollEnabled" value="false" />
    <preference name="android-minSdkVersion" value="21" />
    <preference name="BackupWebStorage" value="none" />
    <preference name="SplashMaintainAspectRatio" value="true" />
    <preference name="AutoHideSplashScreen" value="false" />
    <preference name="ShowSplashScreen" value="true" />
    <preference name="FadeSplashScreen" value="true" />
    <preference name="SplashScreenSpinnerColor" value="#222" />
    <preference name="FadeSplashScreenDuration" value="500" />
    <preference name="SplashShowOnlyFirstTime" value="false" />
    <preference name="SplashScreen" value="screen" />
    <preference name="SplashScreenDelay" value="3000" />
    <platform name="android">
        <allow-intent href="market:*" />
           ... [edited to reserve space] ...
    </platform>
    <platform name="ios">
           ... [edited to reserve space] ...
    </platform>
    <plugin name="cordova-plugin-whitelist" spec="1.3.3" />
    <plugin name="cordova-plugin-statusbar" spec="2.4.2" />
    <plugin name="cordova-plugin-device" spec="2.0.2" />
    <plugin name="cordova-plugin-splashscreen" spec="5.0.2" />
    <plugin name="cordova-plugin-camera" spec="^4.0.3" />
    <plugin name="cordova-plugin-app-version" spec="^0.1.9" />
    <plugin name="cordova-plugin-ionic-keyboard" spec="^2.1.3" />
    <plugin name="phonegap-plugin-mobile-accessibility" spec="1.0.5" />
    <plugin name="mx.ferreyra.callnumber" spec="~0.0.2" />
    <plugin name="cordova-plugin-appminimize" spec="1.0.1" />
    <plugin name="cordova-plugin-ionic-webview" spec="2.3.1">
        <variable name="ANDROID_SUPPORT_ANNOTATIONS_VERSION" value="27.+" />
    </plugin>
    <engine name="ios" spec="4.5.5" />
    <engine name="browser" spec="5.0.4" />
    <engine name="android" spec="7.1.4" />
</widget>

#2

Try connecting an android device into your PC and running ionic cordova run android and then in chrome open chrome://inspect/ where your device should appear, from there you should be able to access the console of the app and you should be able to see any error messages.


#3

Thanks for your reply! I did as you suggested, and at first I was informed of this error:

[2019-02-12T16:34:20.788Z]  @firebase/firestore: Firestore (5.8.1): 
  The timestampsInSnapshots setting now defaults to true and you no
  longer need to explicitly set it. In a future release, the setting
  will be removed entirely and so it is recommended that you remove it
  from your firestore.settings() call now.

I was able to get rid of this error by doing as described in this post:

https://github.com/angular/angularfire2/issues/1993

However, after a completely clean rebuild and signing process, I still have the same problem.
Chrome inspect does not show any errors whatsoever anymore when the app is launched…


#4

I am able to launch the app by building it with only the --release flag. But the filie size is of course twice as much, since there is no minifying. Problem seems to be the --prod flag.