iOSおよびAndroidでのディープリンクのテストには、コマンドラインツールから専用アプリ、統合開発環境(IDE)の機能に至るまで、いくつかの方法があります。
1. Android ディープリンクのテスト
-
Android Debug Bridge (ADB) シェルコマンドの使用: これは、Androidデバイスやエミュレータ上でディープリンクをテストするための一般的かつ効果的な方法です。
adb shell am startコマンドを使用して、ディープリンクの呼び出しをシミュレートできます。- コマンド:
bash adb shell am start -W -a android.intent.action.VIEW -d "your_deep_link_url" - [test-link]
"your_deep_link_url"を、テストしたい実際のディープリンクに置き換えてください(例:https://www.example.com/product?id=123). - このコマンドは、
VIEWアクションでADBシェルを起動し、ディープリンクのURLを指定することで、リンクがアプリの正しいセクションに遷移するかどうかを確認します。
- コマンド:
-
Android Studio からのテスト: Android Studio には、ディープリンクをテストするための組み込みツールが用意されています。
- [Test] > [Run] > [Test Deep Links] に移動します。
Tools > App Links Assistant. - [テスト] をクリックします
Test App Links. - テストしたい URL を入力し、[実行] をクリックします
Run Test. - あるいは、Android Studio で実行構成を編集し、「Launch」オプションを「URL」に変更して、ディープリンクを入力することもできます。
- [Test] > [Run] > [Test Deep Links] に移動します。
2. iOS ディープリンクのテスト
-
シミュレータまたはデバイス上の Safari を使用する場合: iOS シミュレータまたは実機上の Safari に、ディープリンクの URL(特に URL スキームの場合)を直接入力できます。
-
ターミナルでの
xcrun simctl openurlの使用: iOSシミュレータでテストを行うには、xcrun simctl openurlコマンドを使用できます。- コマンド:
bash xcrun simctl openurl booted "your_deep_link_url" - [URL]
"your_deep_link_url"を自身のディープリンクに置き換えてください。これにより、起動済みのシミュレーターで指定されたURLが開かれ、ディープリンクが正しく設定されていればアプリが起動します。
- コマンド:
-
iOS 専用ディープリンクテストツール: iOS でのディープリンクテストを簡素化するツールがいくつか利用可能です:
- DeepLinkr: iOSチームがディープリンクやユニバーサルリンクのドキュメント作成、テスト、検証を行うのを支援する無料のmacOSアプリです。プロジェクトの作成、リンクの追加、シミュレータでの直接起動、またはデバイスでのテスト用QRコードの生成が可能です。
- Deeplink Checker: 開発者やマーケター向けに設計されたiOSアプリで、ユニバーサルリンク用のApple App Site Association (AASA) ファイルを含む、ディープリンクの設定をテスト、確認、共有できます。
3. ディープリンクのテストに関する一般的な考慮事項
- ディープリンクの種類:以下の種類に注意してください:
- デフォルトのディープリンク:アプリがすでにインストールされている場合にのみ機能します。
- 遅延ディープリンク:アプリがインストールされていなくてもユーザーをアプリに誘導できます。多くの場合、App Storeにリダイレクトし、インストール後にディープリンクのコンテキストを維持することで実現されます。
- コンテキスト型ディープリンク:より具体的なアクションやコンテンツのためのパラメータが追加された、デフォルトまたは遅延型ディープリンク。
- テストシナリオ:アプリがすでにインストールされている場合と、インストールが必要な場合(遅延ディープリンク)の両方のシナリオを必ずテストしてください。
- サードパーティ製ツール:ディファード・ディープリンクについては、Firebase Dynamic LinksやBranch.ioなどのサードパーティ製サービスの利用を検討してください。これらのサービスは、このような複雑なシナリオの管理やテストを支援します。