com.google.android.gms:play-servicesの警告について

最近のAndroidアプリ開発で気になった警告ですが、build.gradle内で指定していたGoogle Playサービス

implementation 'com.google.android.gms:play-services:12.0.1’

に対して、Google Play Console

play-services-safetynet (com.google.android.gms:play-services-safetynet) のデベロッパーから、バージョン 12.0.1 に重大な問題があることが報告されています。新しいリリースを公開する前にアップグレードすることをおすすめします。

と警告が出ていました。com.google.android.gms:play-services:12.0.1は投稿時点の最新バージョンですが、それでも警告が出てしまいます。含まれているライブラリcom.google.android.gms:play-services-safetynet(最新は18.0.1)が古いのでしょうか。

あくまでも警告レベルなので、製品版のリリースはできます。そのため、対応せずにリリースする開発者もいるようです。しかし、重大な問題との指摘があるので対応してみます。

警告の原因はcom.google.android.gms:play-services-safetynetのライブラリであるようなので、これを使わないようにすれば良いはずです。

そこで、com.google.android.gms:play-servicesを個別に指定することとします。しかし、明らかに必要なものは良いのですが、自分では使っていなくても、どこかで使っているライブラリもあって、選ぶのが大変でした。

私の地図アプリ「日本周遊マップ」では、以下のライブラリが必要でした。

    implementation 'com.google.android.gms:play-services-location:20.0.0'
    implementation 'com.google.android.gms:play-services-maps:18.1.0'
    implementation 'com.google.firebase:firebase-appindexing:20.0.0'    // 非推奨らしい
    implementation 'com.google.android.gms:play-services-analytics:18.0.2'

日本周遊マップで明らかに必要なライブラリは「location」と「firebase-appindexing」です。それ以外の指定は、どこかで必要になる場合があるためです。どうして必要になるかは、全てのスマートフォンの機種で必要となるわけではなく、特定の機種でのみ問題が発生するといった感じです。

この辺はまだはっきりしてなくて、実はAndroid 13までターゲットを上げると、機種による異常発生が格段に増えました。中には他でも発生していて解決していないケースもあり、Android 13へのターゲットに上げるのを止めました。このようなことがあり、ver 2.74のリリースは時間がかかりました。

2022年以降、Google Play Consoleでリリースするアプリケーション対する警告が、各段に増えた気がします。そして、機種依存による警告やエラーが増えています。こうなると、iPhoneに優位性がありますね。Androidは常に精査されていますが、逆にそれが問題の引き金になっているのかもしれません。

いずれ、Android 13にターゲットを上げます。そこで起きたことを報告します。