Xcode7で This app is not allowed to query for scheme エラーの解決

Xcode7で、iOS9端末をターゲットにビルドでエラー

failed for URL: “xxx”

iOS9のiPhone6でアプリの動作確認をしようとビルドしたところ、こんなエラーが

2015-09-24 15:31:04.123 xxx[213:7758] -canOpenURL: failed for URL: “nakamapapp-xxx://” – error: “This app is not allowed to query for scheme nakamapapp-xxx”

2015-09-24 15:31:04.124 xxx[213:7758] Please add URL scheme(nakamapapp-xxx) to info.plist
2015-09-24 15:31:04.124 xxx[213:7758] *** Terminating app due to uncaught exception ‘LobiSetupException’, reason: ‘Can’t handle URL.’
*** First throw call stack:
(0x182a00f5c 0x1975f3f80 0x100338ce0 0x100338200 0x1002cefb0 0x1000a5a2c 0x1000b7df4 0x1000b8b24 0x1000b7904 0x10006e744 0x1000e856c 0x10006203c 0x187fcb1a0 0x1881f3e7c 0x1881f81c0 0x1881f5300 0x18c7477ec 0x18c747b6c 0x1829b85a4 0x1829b8038 0x1829b5d38 0x1828e4dc0 0x187fc40c8 0x187fbef60 0x1000c70e4 0x197e1e8b8)
libc++abi.dylib: terminating with uncaught exception of type NSException

私はランキングSDKとしてLobiを組み込んでおり、URLスキームの設定が必要なのですが、

そのURLスキームが開けないというエラーです。

(nakamapapp-xxx://の部分がLobi SDK実装の際に必要になるURLスキーム)

エラーの解決方法

failed open url

Xcodeのプロジェクトから、

info.plist』を開き、『Add Row』で、『LSApplicationQueriesSchemes』を追加。

Typeは『Array』として、子要素(『+』で追加、Typeは『String』)のValueに、

URL を設定すればOKです!

複数のURLがある場合は、子要素を更に追加してください。

どういうエラーか

iOS9から、ただURLスキームを指定して開こうとしても開くことができなくなりました。

これは、ユーザがインストールしているアプリの情報を

他のアプリが簡単に調べられないようにしたものです。

このため、canOpenURLを実行するとエラーとなります。

(カスタムURLでアプリを起動する場合、なぜか openURL のみコールすれば

普通に開けてしまうらしい。とはいえinfo.plistにURLスキームを追加しておくべき)

注意

混同しないよう注意

・Xcode7未満(Xcode6以前)でビルドしたアプリはエラーにならない

安心してください。エラーになりませんよ。

iOS9端末でもXcode6でビルドしたアプリはエラーにならないので大丈夫。

ビルドし直さないと!と焦る必要はありません。

あくまでも、URLスキームが必要なアプリをXcode7でビルドする場合の注意。

まあ、これがエラーになったら更新ラッシュでえらい事になりますからね。

ブログランキング、brogram、にほんブログ村
ブログランキングならblogram ブログランキング・にほんブログ村へ
スポンサーリンク

フォローする

スポンサーリンク