起きたこと
先日AndroidからiPhone7に機種変更しました。店頭でもらったパンフに従い初期設定を済ませたところ、auのキャリアメール(@ezweb.ne.jp)を「メール」アプリではなく「メッセージ」アプリで受信する設定になってしまいました。
「メッセージ」アプリでは件名が表示できない(と思っていた1)こと、ホーム画面でSMSの未読数は見たいけどメールの未読数は見たくないこと等から「メール」アプリで受信する設定に変更することに。
順調に画面を進めていき、プロファイルインストール用のURLを開いたところで問題が発生。以下のようなエラーメッセージが表示されました。
お客さまがアクセスされたURLは利用不可となっております。
URL有効時間(SMS送信から30分)、iPhoneのクッキー設定がオンになっていること、プライベートブラウズの設定がオフになっていることをご確認の上、お手数ですが、最初の設定手順からやり直してください。(C)KDDI
エラーメッセージに書いてあることの他、Wi-Fiがoffになっていることを確認したり、SafariのCookieを全削除したり、端末の再起動も試してみたものの効果がなく、困っていました。
解決法
「サービスTOP」からではなくSafariから設定を始める
通常通りに設定した方々には何を言っているか良く分からないかもしれないですが、auお客様サポートのページには「サービスTOP」アプリからでもアクセス可能なのです2。なまじ同じ画面が表示されるため、こちらからでも設定可能なのかと勘違いしてしまいました。
解説
これだけだとただの暮らしのTipsになってしまうので、Qiitaらしく今回の問題が発生した技術的背景を解説します。
まず、設定の手順をおさらいしましょう。
- auお客様サポートにアクセス
- 「メールアプリ(Eメール)利用設定」をタップする
- 受信したSMSのURLにアクセス
- プロファイルをインストール
エラーメッセージでCookieの設定に言及していることから分かるように、1.から2.の段階で保存したCookieを3.で確認しているようです。ここで、AppleのDeveloper Guideを参照すると、
iOS Note: Cookies are not shared between apps in iOS.
と書いてあります。すなわち、「サービスTOP」アプリ内で2.の処理を行った場合Cookieが保存されるのは「サービスTOP」専用の領域であり、SafariからはそのCookieを確認できないため3.の段階でエラーが発生するのです。
Safari View Controller
「サービスTOP」アプリ内でwebページを表示していると、画面右下に四角形から上向き矢印が出ているアイコン(共有アイコン)が表示されます。これをタップすると幾つか項目が現れるのですが、その中に「Safariで開く」というのがあります。これをタップすると開くのがSafari View Controllerです。これはアプリ内で動くSafariで、単体のSafariの機能を利用できる他、Cookieを共有することもできます。では「サービスTOP」でauお客様サポートを開き、「Safariで開く」をタップして前述の手順を進めると正しく設定できるのかというと、そうでもありません。なぜなら_共有されるCookieと共有されないCookieがある_からです。共有される・されないの違いについて述べた公式ドキュメントは残念ながら発見できませんでしたが、とあるフォーラムによるとsession cookie
(ブラウザを閉じると消去されるCookie)とpersisted cookie
(有効期限まで消去されないCookie)があり、前者は共有されないとのこと。ややこしい。
なお、Safari View Controller右下に表示されるSafariのロゴをタップすると単体のSafariが起動し、こちらで手順を進めるとうまくいきました。
あとがき
普通の人は「サービスTOP」からauお客様サポートにアクセスしたりしないと思うので、私のように新しいデバイスを手に入れたらとりあえず隅から隅まで設定をいじってみる人種ほど引っかかりやすい罠だと思います。
-
できます。http://faq.mb.softbank.jp/detail.aspx?cid=75652&id=75652&a=102 ↩
-
「サービスTOP」を開く -> 画面右下「メニュー」 -> 「各種サービス入会・退会」 -> ページ下部「その他のオプションの設定・確認はこちら」 ↩