iOS 9.3でリンクをクリックするとアプリがクラッシュする…Universal Linksのバグが原因

safari-ios

ベータを7回もやったのに…多くのiOSユーザーがAppleのサポートフォーラムで報告しているように、まだバグがある。SafariやChrome, Mail, Messages, Notesなどの上のリンクをクリックすると、そのアプリがフリーズしてクラッシュするのだ。あなたもその一人なら、以下の対策をお読みいただきたい。

この問題は、Universal Linksと関係があるようだ。AppleはiOS 9で、Universal Linksというものを導入した。それは、ネイティブアプリのリンクを扱う、まったく新しい方法だ。アプリのデベロッパー、たとえばYouTubeなどが、ドメインを登録しておくと、Web上のリンクがSafariでページを開かずに、アプリ(YouTubeアプリなど)を開く。

つまりたとえばyoutube.com/somethingsomethingというリンクをクリックすると、iOSはWebページをSafariへロードせずにYouTubeアプリを開く。便利な機能だが、アプリのデベロッパーに濫用されるおそれもある(後述)。

Sergey Roshchinのビデオを見ると、そのバグがよく分かる。快調だった彼のiPadが、Booking.comのアプリをインストールした途端に、Safariがおかしくなる。リンクをクリックすると、ハングし、そしてクラッシュする。

Booking.comは、ありとあらゆるドメインを自分のアプリに結びつける。いいかげんだし、多すぎる。ドメインネームとディープリンクのエントリを対照させたデータが2.4MBもあるので、iOSがリンクをUniversal Linkのデータベースでチェックしようとすると、大きすぎてSafariなどのアプリがクラッシュする。Voyages-SNCFのアプリもiOS 9.3でクラッシュを発生させる、という情報もあったが、Voyages-SNCFはUniversal Linkがないから、それは誤報だ。

しかしBooking.comのアプリがアップデートされたのは3月17日で、iOS 9.3のリリースの前だ。リンクを操作するとアプリがクラッシュするのは、iOS 9.3が原因と見て間違いないだろう。

WebKitのチームは、iOS 9.3とOS X 10.11.4で大規模なアップデートを行った。Safari 9.1にも、そのボンネットの下にはいろんな変更箇所がある。Universal Linkのバグは、WebKitのアップデートと関連があるのかもしれない。…ないのかもしれない。

いずれにしても、Appleはこのバグを次のバグフィックスアップデートで直すだろう。当面は、Booking.comのアプリを削除して、待ちましょう。iOSがUniversal Linksをチェックするたびに、この問題は起きている。でも、問題のアプリを削除すれば、とりあえずiPhoneは使える。

アップデート: Bookingのアプリを削除するだけでは、不十分なようだ。

[ツイート概訳: Booking以外にもクラッシュするアプリはあるから、Appleによるフィックスを待つしかない]
Screen Shot 2016-03-28 at 2.26.04 PM

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))