Apple、iOSを9.3.1にアップデート―URLタップでiPhoneがクラッシュする問題を修正

2016-04-01-safari-ios

この対応は素早かった。iOSの重大なバグが報道されてからわずか数日でAppleは修正版のiOS 9.3.1をリリースした。アップデートはiPhone版、 iPad版ともバグに対応ずみだ。アップデートの説明は当然ながらきわめて簡潔だ。「Safariその他のAppでリンクをタップした後にAppが応答しなくなる問題が解決されます。」〔Apple日本サイトの表示〕とだけある。

どういうことだったのか振り返ってみると、まず多くのユーザーがAppleのフォーラムで不調を訴えた。一部のURLをタップするとSafariその他のアプリがクラッシュするという問題だ。原因はそうしたサイトのデベロッパーがiOS 9の新機能であるユニバーサルリンクを不正に利用しようとしたことにあることが判明した。このバグはiOS 9.3だけでなく、それ以前のiOS 9にも同様の被害をもたらした。

iOS 9でAppleはURLの処理にユニバーサルリンクというまったく新しい仕組を導入した。たとえばYouTubeのようなデベロッパーがドメイン名をAppleに登録し、ユニバーサルリンクに対応させると、ユーザーがリンクをタップしたときに、Safariをバイパスして直接アプリが起動するようにできる。

そこでiOSデバイス上でyoutube.com/somethingsomethingというようなリンクをタップすると、iOS 9はSafariではなくYouTubeアプリでコンテンツを表示する。これはなかなか便利は機能だったが、問題はこの機能を悪用するデベロッパーが出たことだった。

たとえばBooking.comのデベロッパーはアプリを多くの、というよりほとんど無数のドメイン名に関連づけた。正確にいえばBooking.comアプリはタップされるたびに2.4MB分のドメイン名を読み込もうとする。バックグラウンドのswcd〔共有ウェブ認証デーモン〕プロセスはこのディープリンク・データをユニバーサルリンクとして処理しようとしてオーバーフローに陥る。言い換えれば、Appleはユニバーサルリンクのデータサイズに上限を設けるのを忘れていた。一部のデベロッパーはこの点を悪用しようとしたわけだ。

Appleが素早く対応したのはもちろん良いことだ。しかし同時にユニバーサルリンクというのはきわめて初期段階のテクノロジーであり、Appleは最適化のために今後も努力する必要があることも明らかになった。iOSデバイスのユーザーはできるだけ早い機会に「設定」を開き、「ソフトウェア・アップデート」から新しいiOSをインストールするようお勧めする。

〔日本版〕日本のユーザーもiOSデバイスから9.3.1へのアップデーがト可能になっている。

File Mar 31, 7 02 18 PM

[原文へ]

(翻訳:滑川海彦@Facebook Google+