Ionic Angular Android App Not Working in Android Versions 5.1, 8.1.0, 9, 10 After Published to Google Play Store

In local, build(ionic cordova build android --prod) it’s working fine in all android devices, not able to reproduce the issue in local production build.

But after publishing to google play store,

  1. it works in - Android versions 6,7 (able to get api response by hitting the server)
  2. not worked in - Android versions 5.1, 8.1.0, 9, 10 (not able to get api response, its keep on loading and also its doesn’t hit the server itself)

Server code, SSL is implemented in AWS server.
Using HttpClient instead of @ionic-native/http to trigger API calls.

Below is my configuration,

Ionic:

Ionic CLI : 6.10.1 (/home/user/.nvm/versions/node/v14.4.0/lib/node_modules/@ionic/cli)
Ionic Framework : @ionic/angular 4.11.7
@angular-devkit/build-angular : 0.803.21
@angular-devkit/schematics : 8.1.3
@angular/cli : 8.1.3
@ionic/angular-toolkit : 2.1.1

Cordova:

Cordova CLI : 10.0.0
Cordova Platforms : 6.0.0, android 9.1.0, browser
Cordova Plugins :
com.razorpay.cordova 0.16.1 “RazorpayCheckout”
cordova-plugin-add-swift-support 2.0.2 “AddSwiftSupport”
cordova-plugin-advanced-http 2.4.1 “Advanced HTTP plugin”
cordova-plugin-androidx-adapter 1.1.3 “cordova-plugin-androidx-adapter”
cordova-plugin-androidx 3.0.0 “cordova-plugin-androidx”
cordova-plugin-app-version 0.1.9 “AppVersion”
cordova-plugin-colored-browser-tabs 1.0.0 “cordova-plugin-colored-browser-tabs”
cordova-plugin-device 2.0.2 “Device”
cordova-plugin-file-transfer 1.7.1 “File Transfer”
cordova-plugin-file 6.0.2 “File”
cordova-plugin-geolocation 4.1.0 “Geolocation”
cordova-plugin-inappbrowser 3.1.0 “InAppBrowser”
cordova-plugin-ionic-keyboard 2.2.0 “cordova-plugin-ionic-keyboard”
cordova-plugin-ionic-webview 4.1.3 “cordova-plugin-ionic-webview”
cordova-plugin-market 1.2.0 “Market”
cordova-plugin-nativegeocoder 3.4.1 “NativeGeocoder”
cordova-plugin-sim 1.3.3 “SIM”
cordova-plugin-splashscreen 5.0.2 “Splashscreen”
cordova-plugin-statusbar 2.4.2 “StatusBar”
cordova-plugin-tts 0.2.3 “TTS”
cordova-plugin-whitelist 1.3.3 “Whitelist”
cordova-sqlite-storage 4.0.0 “Cordova sqlite storage plugin - cordova-sqlite-storage plugin version”
mx.ferreyra.callnumber 0.0.2 “Cordova Call Number Plugin”
onesignal-cordova-plugin 2.8.4 “OneSignal Push Notifications”

Utility:

cordova-res (update available: 0.15.3) : 0.15.0
native-run (update available: 1.4.1) : 1.0.0

System:

Android SDK Tools : 26.1.1 (/home/user/Android/Sdk)
NodeJS : v14.4.0 (/home/user/.nvm/versions/node/v14.4.0/bin/node)
npm : 6.14.5
OS : Linux 5.3

If anyone come across same situation or having any idea please let me know the solution.

By implementing pinning mechanism and added ssl certiicates inside the app src folder. Issue has been fixed.

Added following two lines fixed my issues.

  1. this.http.setServerTrustMode(‘pinned’)
  2. <resource-file src=“src/certificates/certificates.cer” target=“app/src/main/assets/www/certificates/certificates.cer” /> in config.xml file