Ich habe Schwierigkeiten, meine App arbeiten auf Android APK Release, das einzige Szenario, das es scheitert, ist bei der Generierung und Unterzeichnung der apk. Alle HTTP-Anfragen funktionieren nicht. (Der Server läuft unter SSL)HTTP-Anfragen scheitert nur bei der Freigabe von Android APK
Alle Szenarien Ich habe bereits versucht:
ionic serve
-> gut funktioniert.ionic cordova run android --device
-> Funktioniert gut.- Funktioniert auch auf Emulatoren.
Auch funktioniert das iOS-Build zu erzeugen:
ionic cordova build ios
.- Auf Xcode, Build Build Targeting ein echtes Gerät.
- Auf Xcode archivieren und hochladen Sie es auf Itunesconnect und laden es dann aus AppStore herunter, sobald es von Apple akzeptiert wird.
Also, der einzige Fall dies nicht der Fall funktioniert, wenn ich zu erzeugen versuchen, es ist apk durch ionic cordova build android --prod --release
und es unterzeichnet.
Google Play akzeptiert auch die neue APK, so dass es überhaupt kein Problem mit dem Paketzeichen gibt.
Da es auf iOS funktioniert und direkt auf dem Android-Gerät ausgeführt wird, ist es kein CORS- oder HTTPS-Zertifikatsproblem.
der Code:
Schnipsel login.ts:
this.userService.loginUser(this.user).then(
(data) => {
let response = data.json();
loading.dismiss().then(loadData => {
if (response.access_token) {
this.global.access_token = response.access_token;
this.getUserData();
}
});
}, err => {
let error = err.json();
loading.dismiss().then(response => {
if (error.message) {
this.showToast(error.message, 3000, 'bottom');
}
});
}
);
userService.loginUser Methode:
loginUser(data) {
let headers = new Headers();
headers.append('Access-Control-Allow-Origin', '*');
headers.append('auth-token', '*');
return this.abs.post('/authenticateMobile',
{
login_ds_email: data.email,
login_ds_password: data.pass
}, headers);
}
Wo abs
ist:
constructor(http) {
this.abs = new ApiService(http);
}
A piService.post Methode:
public post(api, params, header): any {
if (!header) {
header = this.getHeaders();
}
let options = new RequestOptions({headers: header});
let url = this.global.urlGlobal + api;
return this.http.post(url, params, options).toPromise();
}
Die App bleibt stecken, wenn ich fire "Login" -Taste und die Anfrage gestellt wird. Es gibt keine Ausnahme, die vom Server ausgelöst wird, daher wird der Ladebildschirm für immer angezeigt.
Ich habe keine Lösungen mehr und hoffe, dass ihr mir helfen könnt.
Ionic Info:
global packages:
@ionic/cli-utils : 1.4.0
Cordova CLI : 6.4.0
Gulp CLI : CLI version 3.9.1 Local version 3.9.1
Ionic CLI : 3.4.0
local packages:
@ionic/app-scripts : 1.3.0
@ionic/cli-plugin-cordova : 1.4.0
@ionic/cli-plugin-gulp : 1.0.1
@ionic/cli-plugin-ionic-angular : 1.3.1
Cordova Platforms : android 6.0.0 ios 4.3.1
Ionic Framework : ionic-angular 3.0.1
System:
Node : v7.8.0
OS : macOS Sierra
Xcode : Xcode 8.3.3 Build version 8E3004b
ios-deploy : 1.9.0
ios-sim : 5.0.6
npm : 5.0.3
Die Fehlerfunktion nicht ausgelöst wird - was zu einem Toast Nachricht unten? –
Die Fehlerfunktion wird nicht einmal ausgelöst, es wird auch kein Toast angezeigt. Es war ein Zertifikatproblem, das dazu führte, dass die gesamte App nicht mehr funktionierte. –