Ionic - самозаверяющее исключение сертификата https на ios - PullRequest
0 голосов
/ 26 июня 2018

Мы разрабатываем гибридное мобильное приложение на ионной основе для получения данных с сервера и отображения их в приложении. У нас есть самозаверяющий сертификат для запроса к нашему серверу. Мы поместили файл .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?

Любая помощь в этом будет оценена. Спасибо.

...