Cordova で開発中のアプリを iOS で実行したところ、「Refused to load gap://ready because it does not appear in the frame-src directive of the Content Security Policy.」というエラーが発生しました。
Google翻訳にかけてみたところ、「コンテンツセキュリティポリシーの frame-src ディレクティブに表示されないため、gap:// ready の読み込みを拒否しました。」とのことでした。
HTML の Meta タグで指定している Content Security Policy に関する記述のところかとあたりをつけつつ、念のため検索。
こちらの記事がヒットしました。
iOSでRefused to load gap://ready because it appears in neither the child-src directive nor the default-src directive of the Content Security Policy. エラー
https://ufirst.jp/memo/2016/09/16/ios%E3%81%A7refused-to-load-gapready-because-it-appears-in-neither-the-child-src-directive-nor-the-default-src-directive-of-the-content-security-policy-エラー/
上記の記事によると、やはり Content Security Policy に関する記述に抜けがあったようで、frame-src
の項目に gap://ready file:
を追加し、再度実行したところ、今度は問題なくページが表示されました!
なお、記事内には default-src
に追加とありましたが、私の環境では、frame-src
の項目があったため、こちらに追加しました。
というか、frame-src
がある状態で、default-src
に gap://ready file:
を追加してもこの設定は frame-src
には反映されないので、今回のエラーは解決できません。
なので、gap://ready file:
の記述は frame-src
がある場合は frame-src
に、frame-src
がない場合は default-src
に記述するようにしてください。
以上、Cordova アプリを iOS で起動した際に「Refused to load gap://ready because it does not appear in the frame-src directive of the Content Security Policy」エラーが発生するときの対処法でした。