*

iOS9でURLスキームを登録する

公開日: : 最終更新日:2015/12/18 Tips , ,

私事ですが、iOS8から対応はしたいということで検証用に使っている自分のiPhoneもiOS8でがんばってたのですが、レポートでiOS9実機での問題が出たのでiOS9に・・・そしたらアクティベーションエラー(開発実機なので、iPhoneの契約は解約してた)が発生、アクティベート用のSIMの入手に奔走するなど波乱があったりしました。

その過程でURLスキームでも問題が出たので、情報を仕入れて備忘録としてTipsにしたいと思います。

現象と対応

iOS9以降では、単純にURLスキームを開けるかどうかを聞くcanOpenURLメソッドを実行すると、ログにエラーを吐きつつ常にNOを返すようになっているようです。
これに対応するには、Info.plistに設定を書く必要があるようです。
キー値:LSApplicationQueriesSchemes
種類:Array
で新しいキーを作り、その下にStringでURLスキーム(「****://」の****の部分だけ)を列挙するような形になります。
例えばfacebook(fb://)であれば「fb」と書いてやるわけです。
おそらくAppleが審査で利用するためか、アプリからURLスキームを動的に(ユーザーに指定させて)開けないようにするための処置だと思うんですが、慣れてないとちょっと面食らう話でした。

参考サイト

抹茶のメモ帳/【追記】iOS9でcanOpenURLを有効にする方法

関連記事

iPad用storyboard⇔iPhone用Storyboardへの変換

iPad用アプリとしてiPad用前提のstoryboardから、iPhone対応にするにあたり、si

記事を読む

Xcode5.1のInterfaceBuilderにおける地味な変更点

iOS7.1に合わせてXcode5.1がリリースされました Xcode Release N

記事を読む

HTMLParserを修正する

HTMLスクレイピングしてる時に役立つライブラリであるObjective-C-HMTL-Parser

記事を読む

UICollectionViewのヘッダとフッタの設定

UICollectionViewで慣れないのがヘッダフッタで、毎度「どうやって設定するんだっけ…」と

記事を読む

Realmで==ができなかった

最近Realm Swiftを使ってて、引っかかったところがあるのでメモ。 Realmのオブジェクト

記事を読む

viewDidLoadとviewDidLayoutSubviewsのタイミング

真実の記事にある「コードでiPhone6を識別する」話とほんのちょっとだけ繋がっている話で、view

記事を読む

UILabelの改行をInterfaceBuilderから入力する

UILabelの行数は任意に設定できて、「0」を指定すると行数を限定しないで(UILabelのbou

記事を読む

StoryboardからPopoverを作っても位置合わせコードは必要

これだけだとわかりづらいんですが。 XcodeのStoryboardから、Segueを"Prese

記事を読む

”No Scheme”になってしまった場合の対応

知人がXcodeで突然「No Scheme」表示になってRunするターゲットとデバイスが選択できない

記事を読む

UITableViewCellのロングタップ

UITableViewCellをロングタップしたときに、タップされたセルを認識しつつメニューを出した

記事を読む

警告を無視する

HokusaiというライブラリをObj-Cのアプリで使うために奮闘して

RealmのListとArrayの相互変換によるマップ

 Realm+ObjectMapperを使って、Realmのオブジェク

iTunesConnectでスクリーンショットを追加する時に気をつけること

なんというかハマったので、個人的備忘録というか、いざというときの原則論

Realmで==ができなかった

最近Realm Swiftを使ってて、引っかかったところがあるのでメモ

iOSシミュレータの帯域制限をテストする

iOSシミュレータで通信帯域制限をテストしたいと思ったんですが、Xco

→もっと見る

    PAGE TOP ↑