Googleのサンプルアプリで参考にしたい機能があり、ダウンロードしてみたところ、
AndroidManifest.xmlで以下のワーニングが出てました。
App is not indexable by Google Search; consider adding at least one Activity with an ACTION-VIEW intent filter.
Google翻訳
アプリはGoogle検索でインデックス登録できません。 ACTION-VIEWインテントフィルターで少なくとも1つのアクティビティを追加することを検討してください。
この警告は、Deep Linkの設定がない場合に警告されるLintエラーとなります。
#Deep Linkは、アプリのActivityに直接アクセス可能なリンクです。
対応方法
対策としては、2つあります。
- 警告通りにACTION-VIEW intent filterを追加して、Deep Linkを追加する方法
- Deep Linkチェックを無効にする方法
#実際には、空のACTION-VIEW intent filterを追加する方法や、警告がでているのを気にしないなどのやりかたもあるかと思いますが、キレイな対応ではないと思います。
特に後者について、すべてのアプリでDeep Linkを使っているわけでないと思うのでこの対応方法も知っておいて損はないかと思います。
詳細
- 警告通りにACTION-VIEW intent filterを追加して、Deep Linkを追加する方法
AndroidManifest.xml
<activity
android:name="AbcActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="myapp" android:host="detail" />
</intent-filter>
</activity>
この設定により、myapp://detail
でアプリが起動して、AbcActivityが開きます。
Deep Linkは、便利な機能ではありますが、外部からのアクセスを許可して不正なアクセスが行われる可能性も広がってしまうため、本当に必要な場合のみに設定すべきです。
- Deep Linkチェックを無効にする方法
{project_folder}/app/build.gradle
android {
compileSdkVersion 28
buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
// something
}
lintOptions {
disable 'GoogleAppIndexingWarning'
baseline file("lint-baseline.xml") // your choice of filename/path here
}
}
コメント