iOSプロジェクトのビルド設定の整備において、Debugビルドの時だけApp Transport Securityを無効化したい時があります。
で、この対応方法が難儀なものであるのが、以前までの私の認識でした。1
現在のビルド設定事情を調べたところ、Xcode13以降で作成したプロジェクトならば、info.plistのファイルは追加分の設定を行う役割となっています。2
これによりタイトルの課題は、以下の方法で簡単に対応可能なようです。
- プロジェクト設定に デバッグ用の info.plist を追加する。3 (例: debug-info.plist)
- debug-info.plist について App Transport Securityの無効化設定を追加する。4
- アプリTargetの Build Setting > Package > Info.plist File について Debugビルドの項目に debug-info.plist を指定する。
- ※ info.plistの追加設定が無いビルドの場合は、空欄で構わない。
検証
「http://yahoo.co.jp
」 などを使って通信させてみると、狙い通りにATS無効化が反映できている事が確認できました。
補足
なお、このサイトによると、info.plistのファイルによる設定追加は、全てのキーに対して有効では無いようです。
他の設定値を試される場合は、設定が反映されているかに注意が必要そうです。