Minemalize

新米エンジニア奮闘記

iOSの証明書で詰まった話

事象

iOSのAppからウェブサーバー上にあるAPIを叩きにいくとエラーがでる。

とりあえずエラーの原因を探る

Xcode起動で、

  1. ツールバー [window] => [Devices and Simulators]
  2. Devicesを選択 => デバッグに使用しているデバイスを右パラムConnectedから選択
  3. 画面下部の△マークみたいなのをクリック

これで本体の操作ログを出力できる。

エラーログ

APIをたたきに行くと下記のエラーコードを出しているっぽい

Error Domain=NSURLErrorDomain Code=-1012

これ、なんぞやと思って調べてみたらこんな感じ。 CFNetworkErrors.cfurlErrorUserCancelledAuthentication

解決方法

ん?認証エラー?
ってことで担当の人に聞きに行ってみたら、移行先の証明書ファイルがないのが原因っぽいってことで、新しい証明書を発行してもらって下記の実施。

  1. 発行された証明書ファイルを、Resourceなどのフォルダに格納。
  2. プロジェクトのxcodeprojを選択 => Build Phases => Copy Bundle Resources 内に該当の証明書ファイルを追加。

これで接続できました。

さらっと書いてるけど、3時間くらい読めないObjective-Cを詠んだ末のこれだったので、泣きました。

参考にしたもの

iOS Can't perform HTTP GET request -Error Domain=NSURLErrorDomain Code=-1012 - Stack Overflow
CFNetworkErrors.cfurlErrorUserCancelledAuthentication - CFNetworkErrors | Apple Developer Documentation