URLのホスト名に「 localhost 」を指定する

macOS Swift

URLのホスト名に「 localhost 」を指定する

macOS Mojava 10.14.6 / Xcode 11.3.1 / Swift 5.0
自身をサーバとしたときの URLの指定方法の例
http://localhost/doc_health_calendar/php/sql_r10.php
http://127.0.0.1/doc_health_calendar/php/sql_r10.php
どちらも同じローカルループバックアドレスであるが、ホスト名に localhostを指定した場合、Swiftのアプリケーションからのアクセスが、セキュアな通信を保証する機能 App Transport Security(ATS)が有効化されているためできない。できるようにするためには、これを無効化する必要がある。

無効化する方法

info.plistに次のプロパティを追加する。
[image1.png]

手順

プロジェクトナビゲータから info.plistをクリックして開く。なお plistの編集は気をつけないと既存の設定を壊してしまうことがあるので、作業を行う前にのバックアップをとっておくことをおすすめする。
[image2.png]
Property Listのいずれかの行ににカーソルをおくと、新しい設定を追加するプラス(+)ボタンが現れるのでクリックする。 その行の設定の次に新しい設定が挿入される。最後の行の後ろに追加するのがわかりやすいと思う。後から移動も可能。
マイナス(−)ボタンを押すとその行の設定が削除されてしまうので注意。
[http01]
追加できる設定の候補がリストに表示されるので、「App Transport Security Settings」を選ぶ。
[http06] [http07]
設定名の先頭の三角矢印を下向きにし、要素を追加するプラス(+)ボタンをクリックする。これにより、この設定の属性を追加することができる。
[http03]
追加できる属性の候補がリストに表示されるので、「Allow Arbitrary Loads」を選ぶ。
[http08] [http09]
初期値は "NO"になっているので "YES" に変える。
カーソルを"NO"の位置におき、ダブルクリックするとテキスト編集可能となる。
[http05]
info.plistの中身はXMLファイルで、設定は次の通り。ファイルを直接編集して追加してもかまわない。