技術と本について書くブログ

技術と本について書くblog。技術メモなど雑記を書いているblog。

iOS14でアプリのデフォルトブラウザ及びデフォルトメールクライアントの事前準備日本語訳

こちらはWWDC2020で発表されたiPhone標準ブラウザ、標準メーラーを設定するための開発者向けApple公式ドキュメントを独自に日本語訳した文章になります。 重要な箇所に関しては公式ドキュメントをご覧ください

アプリをデフォルトのブラウザまたはメールクライアントにする準備

ブラウザやメールアプリを設定して、ユーザーがSafariやメールの代わりにデバイスのデフォルトとして設定できるようにします。

概要

iOS 14以降では、ユーザーは、デフォルトのWebブラウザまたは電子メールアプリにするアプリを選択できます。

アプリを選択するには、アプリが以下の要件を満たしていることを確認してから、管理されているエンタイトルメントをリクエストしてください。

アプリをデフォルトブラウザに設定する

このシステムは、ユーザーがHTTPまたはHTTPSのリンクを開くたびに、iOSのデフォルトのWebブラウザを起動します。

このアプリはインターネットへのユーザーの主要なゲートウェイになるため、Appleはユーザーのプライバシーを保護し、インターネットリソースへの適切なアクセスを保証するために、ウェブブラウジングアプリが特定の機能基準を満たすことを要求しています。

アプリは、com.apple.developer.web-browser managed エンタイトルメントを使用して、デフォルトのウェブブラウザになる能力を表現します。

このエンタイトルメントの使用許可を default-browser-requests@apple.com に電子メールで要求してください。

これにより、アプリに必要な署名許可を生成するプロセスが開始されます。

デフォルト ブラウザの要件を満たすデフォルトのウェブブラウザオプションとして登録するアプリは、以下の基準を満たす必要があります。

  • アプリは、Info.plist ファイルで HTTP および HTTPS スキームを指定する必要があります。

  • アプリは UIWebView を使用できません。

  • 起動時に、アプリは URL を入力するためのテキスト フィールド、インターネット上の関連リンクを見つけるための検索ツール、またはブックマークのキュレーションされたリストを提供する必要があります。

デフォルトの設定でHTTPまたはHTTPSのURLを開く場合:

  • アプリは指定された宛先に直接移動し、期待されるWebコンテンツをレンダリングする必要があります。予期しない場所にリダイレクトしたり、宛先のソースコードで指定されていないコンテンツをレンダリングしたりするアプリは、デフォルトのWebブラウザの要件を満たしていません。

  • ペアレンタル コントロールまたはロックダウン モードで動作するように設計されたアプリは、これらの目標を満たすためにナビゲーションを制限する場合があります。

  • アプリでは、フィッシングなどの問題が疑われるコンテンツに対して、「セーフ ブラウジング」などの警告が表示される場合があります。

アプリは、ネイティブのWebサインインフローも提供するサイトのネイティブ認証UIを提供する場合があります。

デフォルトのブラウザ機能の使用

com.apple.developer.web-browser managed entitlement を使用するアプリは、以下のことができます。

  • ユーザーがデフォルトブラウザとして選択できるオプション。

  • フルスクリプトアクセスですべてのドメインからページを読み込みます。

  • WKWebView インスタンスでサービスワーカーを使用する。

ブラウザの制限に従う

com.apple.developer.web-browser管理権限を持つアプリは、特定のドメインのユニバーサルリンクへの応答を主張することはできません。 システムはそのような主張を無視します。この権限を持つアプリは、通常通り他のアプリにユニバーサルリンクを開くことができます。

ユーザーのウェブ閲覧における特権的な位置にあるため、ブラウザアプリは個人データへの不必要なアクセスを避ける必要があります。

com.apple.developer.web-browser が管理するエンタイトルメントを使用している間に、以下の Info.plist キーのいずれかを使用したアプリは拒否されます:

  • NSPhotoLibraryUsageDescription - 画像を保存する場合、アプリは NSPhotoLibraryAddUsageDescription のみを指定する必要があります。WKWebViewは、アプリがユーザーのフォトライブラリ全体にアクセスしなくても、写真やファイルをアップロードすることができます。個々の写真にアクセスするには、アプリは UIImagePickerController の代わりに NSPhotoLibraryUsageDescription を必要としない PHPickerViewController を使用する必要があります。

  • NSLocationAlwaysUsageDescription, NSLocationAlwaysAndWhenInUseUsageDescription - ユーザーの位置を決定するために、代わりに使用中の認証を要求します (NSLocationWhenInUseUsageDescription)。ブラウザは常にオンの位置情報へのアクセスが制限されます。

  • NSHomeKitUsageDescription - ブラウザはユーザーの HomeKit データベースにアクセスできません。

  • NSBluetoothAlwaysUsageDescription - アプリがバックグラウンドにある場合、ブラウザは Bluetooth デバイスをポーリングできません。ブラウザは Bluetooth 機能のために NSBluetoothWhileInUseUsageDescription を使用する必要があります。

  • NSHealthShareUsageDescription, NSHealthUpdateUsageDescription - ブラウザはユーザーの健康データベースにアクセスできません。

Note

NSLocationAlwaysUsageDescription は iOS 10 で非推奨となりました。詳細については、「要求する位置情報サービスの権限の選択」を参照してください。

アプリをデフォルトの電子メールアプリに設定する

このシステムは、ユーザーがmailto:リンクを開くたびに、iOSのデフォルトのメールクライアントを起動します。電子メールはコミュニケーションの重要な手段であるため、Appleは電子メールアプリがユーザーのプライベートで正確なアクセスを確保することを目的とした特定の機能基準を満たさなければならないことを要求しています。

アプリは、com.apple.developer.mail-client managed entitlementを使用することで、デフォルトのメールアプリとして使用されることを意図していることを示します。この権限の使用許可を要求するには、default-mail-app-requests@apple.com まで電子メールを送信してください。

デフォルトのメールアプリの要件を満たす

デフォルトのメールクライアントオプションとして登録するアプリは、以下の要件を必ず登録しなければなりません。

  • Info.plist ファイルで mailto: スキームを指定します。

  • 任意の有効なメール受信者にメッセージを送信できること。

  • 任意のメール送信者からのメッセージを受信できること。ユーザー制御の受信メールスクリーニング機能を提供するアプリは許可されています。