Мы разрабатываем гибридное мобильное приложение на ионной основе для получения данных с сервера и отображения их в приложении.
У нас есть самозаверяющий сертификат для запроса к нашему серверу. Мы поместили файл .cer в xcode project-> target для iOS.
Это исключение для запроса https с использованием сертификата.
Наши версии среды разработки приведены ниже:
ионная версия 3.20.0
мы используем следующий плагин для http.
https://ionicframework.com/docs/native/http/
Ионный код, как показано ниже
let head = {
'Access-Control-Allow-Origin' : '*',
'Access-Control-Allow-Methods': 'POST, GET, OPTIONS, PUT',
'Accept':'application/json',
'content-type':'application/json'
}
this.http.enableSSLPinning(true).then(data =>{
console.log("SSL success");
})
.catch(error =>{
console.log("SSL error");
});
this.http.acceptAllCerts(true);
this.http.setDataSerializer("json");
this.http.post(this.getProfileURL, requestData, head)
.then(data => {
console.log("success");
resolve(JSON.parse(data.data));
})
.catch(error => {
reject(error.error);
});
});
Этот код работает на Android, а не на iOS
Это дает ниже ошибку:
* Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «* - [__ NSArrayM insertObject: atIndex:]: объект не может быть равен nil»
Вопросы:
1. Является ли местоположение сертификата правильным? (Мы поместили файл .cer в проект xcode-> target для iOS.)
2. Какой тип сертификата мы должны использовать - .cer, .der, .pem?
3. Как мне разрешить NSInvalidArgumentException?
Любая помощь в этом будет оценена. Спасибо.