【Swift4】-canOpenURL: failed for URL: "~~~" - error:というエラーが出た時に対処方法【Objective-C】

2020年8月27日

Google-Mobile-Ads-SDKやFacebookSDKな どのSDKをcocoapodなどでインストールしたあとにプロジェクトを起動すると「-canOpenURL: failed for URL: "~~~" - error:」というエラーが出るときがあります。

私の場合以下のようなエラーが出ていました。

-canOpenURL: failed for URL: "kindle://home" - error: "操作を完了できませんでした。(OSStatusエラー-10814"

このような時はURLスキームの設定をすると解決します。

-canOpenURL: failed for URL: "~~~"とでたらURLスキームを追加する

URLを追加するには以下のようにします。

TARGET > Info > URL Types の以下2つの設定をします。

Identifier:任意の文字(わかりやすいように名前をつけておきま)
URL Schemes:URLスキーム名

今回私の場合は "kindle://home" となっていたので、「URL Schemes」には「kindle」を設定しました。もし "xxx://hoge/fuge" となっている場合は:の前の「xxx」をURLスキームに設定するようにします。

以上でエラーは解決します。
SDKによりますがURLスキームを設定しなくとも問題なく動くものもあれば、URLスキームをちゃんと設定しないとクラッシュするものもあります。できればちゃんと設定しておきましょう。