iOSおよびAndroidのApp Linkファイルを正しく配信するには、ウェブサイトとモバイルアプリケーションの両方を設定する必要があります。これには、Webサーバー上で特定のファイルを作成してホストし、iOSおよびAndroidのプロジェクト内で対応する設定を行うことが含まれます。
iOSユニバーサルリンク
iOSの場合、ユニバーサルリンクを設定する必要があります。これにより、ユーザーはウェブサイト上のリンクをタップするだけで、インストール済みのアプリにシームレスにリダイレクトされます。
-
apple-app-site-associationファイルを作成します:- 次のような名前のJSONファイルを作成します
apple-app-site-association(拡張子なし).json)を作成します。 - このファイルは、アプリが処理できるURLを宣言するものです。
- このファイルには
applinks辞書を含める必要があります。その内部にはapplinks、空のapps配列とdetails配列を含めてください。配列内の各オブジェクトは、details配列内の各オブジェクトには、appID(Apple Team ID の後にアプリのバンドル識別子を続けたもの)と、pathsを指定する必要があります。ワイルドカード(*および?)を使用できます。 apple-app-site-associationの内容例:json { "applinks": { "apps": [], "details": [ { "appID": "YOUR_TEAM_ID.com.yourcompany.yourapp", "paths": [ "/path/to/content/*", "/another/path/*", "NOT /path/to/exclude" ] } ] } }
- 次のような名前のJSONファイルを作成します
-
Webサーバーにファイルをホストする:
- この
apple-app-site-associationファイルは、ドメインのルートディレクトリ、または.well-knownサブディレクトリ(例:https://yourdomain.com/apple-app-site-associationまたはhttps://yourdomain.com/.well-known/apple-app-site-association). - 有効なSSL証明書を使用してHTTPS経由で配信する必要があります。
- ファイルには、HTTPリダイレクト(301または302)を介さずに直接アクセスできる必要があります。
- ファイルの MIME タイプは
application/json. - 圧縮されていないファイルサイズは 128 KB を超えてはなりません。
- 複数のドメインまたはサブドメインをサポートしている場合、各ドメインには独自の
apple-app-site-associationファイルが必要です。
- この
-
iOS アプリの設定:
- Xcode で、プロジェクトの「Associated Domains」機能を有効にしてください。
- アプリがサポートするドメインを、「Associated Domains」リストに、接頭辞として
applinks:(例:applinks:yourdomain.com). - アプリの
AppDelegateまたはSceneDelegateに実装します。
Android App Links
Android の場合、App Links も同様にシームレスな体験を提供し、検証済みのリンクを曖昧性解消ダイアログを表示することなくアプリ内で直接開くことができます。
-
assetlinks.jsonファイルを作成します:- 次のような名前の JSON ファイルを作成します:
assetlinks.json. - このファイルは、ウェブサイトとAndroidアプリ間の信頼関係を確立します。
- このファイルには、
relation(例:delegate_permission/common.handle_all_urls),target(以下を含むnamespaceとしてandroid_app、アプリのpackage_name、およびsha256_cert_fingerprintsアプリの署名証明書の)。 - SHA256フィンガープリントは、
keytoolコマンド、またはPlay App Signingを使用している場合はGoogle Playコンソールから取得できます。 assetlinks.jsonコンテンツの例:json [{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.yourcompany.yourapp", "sha256_cert_fingerprints": ["AA:BB:CC:DD:EE:FF:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99:00:AA:BB:CC:DD:EE:FF"] } }]
- 次のような名前の JSON ファイルを作成します:
-
ファイルをWebサーバーにホストします:
- この
assetlinks.jsonファイルはhttps://yourdomain.com/.well-known/assetlinks.json. - 有効な SSL 証明書を使用して HTTPS 経由で配信する必要があります。
- ファイルには、HTTPリダイレクト(301または302)を経由せずに直接アクセスできる必要があります。
- ファイルのMIMEタイプは
application/json. - アプリが複数のホストドメインをサポートしている場合、各ドメインで
assetlinks.jsonファイルを各ドメインに公開する必要があります。
- この
-
Androidアプリの設定:
- アプリに
<intent-filter>アプリ内のAndroidManifest.xmlに、処理したいURL用のを追加します。 - に
android:autoVerify="true"を<intent-filter>に含めてください。これにより、Androidにホストドメインの検証が行われます。 - .
<intent-filter>にはACTION_VIEW,BROWSABLEを含め、DEFAULTカテゴリを含める必要があります。 - スキームを指定します
<data>スキーム(例:https)、ホスト、および任意のパスプレフィックスやパターンを指定します。 - 例
AndroidManifest.xmlintent-filter:xml <activity android:name=".MainActivity"> <intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="https" android:host="yourdomain.com" android:pathPrefix="/path/to/content" /> </intent-filter> </activity> - 受信した
Intentを処理し、URL からデータを抽出して適切なコンテンツに移動します。
- アプリに
一般的なベストプラクティス
- iOS ユニバーサルリンクと Android アプリリンクの両方で、HTTPS は必須です。
- これらの関連付けファイルを提供する際は、リダイレクトを避けてください。
- 実際のデバイスで徹底的にテストし、検証ツール(例:Android 用の Google Digital Asset Links API、iOS AASA ファイル用の各種オンライン検証ツール)を使用して、設定が正しいことを確認してください。
- アプリリンクを設定するドメインの所有権を確実に確保してください。