Search code examples
androidcordovasocketsionic-frameworkrelease

(CORDOVA) App is not connecting to sockets api in release mode


(ATTENTION: this is happening just with the tag --release )

Problem

I cureently built an ionic app based on sockets connection, everything works just fine when i am in debug mode.. however when i move to release ( --release attribute ) the app is no longer connecting to the api endpoint. sockets is trowing the fallowing message xhr poll error

What is expected to happen?

connect to the api endpoint.

What does actually happen?

not connecting to the api endpoint.

Information

I am currently using the fallowing packages

 "dependencies": {
    "@angular/animations": "^8.2.14",
    "@angular/common": "~8.1.2",
    "@angular/core": "~8.1.2",
    "@angular/forms": "~8.1.2",
    "@angular/platform-browser": "~8.1.2",
    "@angular/platform-browser-dynamic": "~8.1.2",
    "@angular/router": "~8.1.2",
    "@ionic-native/call-number": "^5.20.0",
    "@ionic-native/core": "^5.19.1",
    "@ionic-native/diagnostic": "^5.19.1",
    "@ionic-native/file": "^5.19.1",
    "@ionic-native/file-transfer": "^5.19.1",
    "@ionic-native/geolocation": "^5.19.1",
    "@ionic-native/google-maps": "^5.5.0",
    "@ionic-native/http": "^5.19.1",
    "@ionic-native/location-accuracy": "^5.19.1",
    "@ionic-native/splash-screen": "^5.19.1",
    "@ionic-native/status-bar": "^5.19.1",
    "@ionic/angular": "^4.7.1",
    "@ionic/storage": "^2.2.0",
    "@mapbox/polyline": "^1.1.0",
    "@types/socket.io": "^2.1.4",
    "@types/socket.io-client": "^1.4.32",
    "angular-laravel-echo": "git+https://github.com/chancezeus/angular-laravel-echo.git",
    "call-number": "^1.0.1",
    "cordova-android": "^8.1.0",
    "cordova-plugin-advanced-http": "^2.3.1",
    "cordova-plugin-file": "^6.0.2",
    "cordova-plugin-geolocation": "^4.0.2",
    "cordova-plugin-googlemaps": "^2.6.2",
    "cordova-plugin-request-location-accuracy": "git+https://github.com/razvang10/cordova-plugin-request-location-accuracy.git",
    "cordova-sqlite-storage": "^4.0.0",
    "cordova.plugins.diagnostic": "^5.0.1",
    "core-js": "^2.5.4",
    "laravel-echo": "^1.6.1",
    "ngx-laravel-echo": "^1.0.26",
    "rxjs": "^6.5.4",
    "socket.io-client": "^2.3.0",
    "tslib": "^1.9.0",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/architect": "~0.801.2",
    "@angular-devkit/build-angular": "^0.803.23",
    "@angular-devkit/core": "~8.1.2",
    "@angular-devkit/schematics": "~8.1.2",
    "@angular/cli": "8.1.3",
    "@angular/compiler": "~8.1.2",
    "@angular/compiler-cli": "~8.1.2",
    "@angular/language-service": "~8.1.2",
    "@ionic/angular-toolkit": "^2.1.1",
    "@types/jasmine": "~3.3.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "codelyzer": "^5.2.1",
    "cordova-plugin-device": "^2.0.3",
    "cordova-plugin-ionic-keyboard": "^2.2.0",
    "cordova-plugin-ionic-webview": "^4.1.3",
    "cordova-plugin-splashscreen": "^5.0.3",
    "cordova-plugin-statusbar": "^2.4.3",
    "cordova-plugin-whitelist": "^1.3.4",
    "jasmine-core": "~3.4.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.1.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.5.1",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.15.0",
    "typescript": "~3.4.3"
  },

Command or Code

ionic cordova build android --release --prod

Environment, Platform, Device

Platform: android

Device: any

Version information

Cordova : 9.0.0 ([email protected])

Ionic: 6.1.0

Operating System: Windows

Android Studio: 3.5

Platform version: API 29

SDK: 26.1.1


Solution

  • Looks like after android api level 28 you cannot use any other port than 443 for secure connections... because it will restrict your acces only in relase mode so i changed my sockets port from what i had to 443 and it works.