昨日、風邪でダウンしているときに、Googleから毎月恒例の「パートナー ニュースレター(2018.01向け)」が着たので見ていたら、気になる記載があったので備忘録がてら記載します。

何が変わったの?

これまで、Androidアプリをリリースする際にAndroid Manifestに宣言するtargetSdkVersionは最新の値(2018.01現在だと26: Oreo)を指定する必要はありませんでした。
ある時期を境にアプリをリリース(新規リリース、アップデートとも)する場合、targetSdkVersionに最新のSDK Versionを設定する必要があるようです。

Android 6.0からRuntime Permissionが導入されましたが、targetSdkVersionを22以下に設定していると、これが動作しない(ただし、設定アプリから無効することが可能)といったことができましたが、こういった逃げ道を使えなくするようです。
また外部SDKライブラリを使用している場合、targetSdkVersionによって挙動が違うことがあるので、外部ライブラリを使用している場合は早めのアクションが必要になりそうな気がします。

何時から?

主に3種類に分かれます。
時期概要
2018年8月 新しいアプリをリリースする場合、targetSdkVersionに必ず最新のSDK Version(26: Oreo)を指定する必要がある
2018年11月 既にGoogle Playにリリースされているアプリをアップデートする場合、targetSdkVersionに必ず最新のSDK Version(26: Oreo)を指定する必要がある
2019年以降 最新のOSがリリースされてから1年間新規アプリのリリース、既存アプリのアップデートを行う場合は、その最新のSDK VersionをtargetSdkVersionに指定する必要がある

ただし、もう更新する予定がないアプリはどうなるのかというと、そのままでも良いようです。
特にtargetSdkVersionが更新されないことを理由にGoogle Playから削除されるなどのことは現状(※)行わないようです。
※ ブログでは「Future Android versions will also restrict apps that don't target a recent API level and adversely impact performance or security.」があるので、もしかしたらAndroid上でそういったアプリを制限することも検討しているニュアンスが感じられますが。

最後に

今回の施策が実施されるまで少し時間はありますが、これから開発するもの(新規・既存アップデート問わず)は、targetSdkVersionを最新にすることをお勧めします。
また、今後情報が更新されることもあるかと思うので、注視していきましょう。

参考文献

Android Developers Blog - Improving app security and performance on Google Play for years to come

コメントの投稿