📝

Androidでの新規リリースとアップデート対応

2021/05/07に公開約15,500字

はじめに

この資料では、Androidでの新規リリースやアップデートなどで発生する(発生した)必要な対応の内容をまとめます。

アプリケーションやゲームのコンテンツに対するアップデートだけではストアでリリースできなくなります。
毎年発生する対応(APIレベル)と新しい機能対応(課金など)が必要になります。オフィシャル情報をチェックしてスケジュールに組み込みスムーズにリリースできるようにしましょう。

ターゲットはAndroidネイティブアプリ向けではなくUnityゲーム開発向けになります。[1]

関連

オフィシャル

今後のAndroidとGoogle Playの期限」を確認すると、いつまでにどんな対応が必要を把握できるようになりました。[2]対応内容は内容により作業量が大きく変わるため、内容を確認して対応スケジュールを決める必要があります。
定期的に「今後のAndroidとGoogle Playの期限」と「Android Developers Blog」を確認して対応項目が増えていないか確認しましょう。

毎年発生する対応

APIレベル

最新OSのメジャーアップデート後に、ひとつ前のOSのAPIレベル対応が必須になります。
たとえば、Android 11(APIレベル30)がリリースされた後に、Android 10(APIレベル29)対応が必須になります。[3]
概ね、新しいアプリリリースは8月。アプリアップデート11月に設定されています。[4]
また、APIレベルの設定を変えるだけでは対応できません。プライバシーやセキュリティーに対する対応が追加で発生します。

27以前

2018年のAndroid 8.0(APIレベル26)から毎年APIレベルを上げる対応が必須になりました。
APIレベルを上げないで回避できていました。必須対応になり、5.0から8.0までの変更点への対応をまとめて行う必要がありました。

また、16:9よりアスペクト比が縦長の18:9などの対応が必要になりました。 (画面サポートの制限の宣言)

APIレベル27はAndroid 8.1のため対応の必要はありませんでした。

参考資料

28対応

Android 9.0(APIレベル28)では、ターゲットAPIレベルを変更なしでも動作が変わるものと、変更すると影響する変更が出てきます。
プライバシーやセキュリティー関連のアクセスが厳格になり始めました。
TLS(HTTPS)のみ通信許可がデフォルトになりました。

29対応

Android 10(APIレベル29)では、GPSや外部ストレージアクセスなどプライバーシー関連対応が増えました。

30対応

Android 11(APIレベル30)では、位置情報、マイク、カメラへの一時的なアクセス権を1回だけアクセス許可や許可のオートリセット。位置情報関係のプライバーシー対応が強化されました。
また、APK署名スキームv2が必須になります。昔から運用しているものだとv1のみの可能性があります。最新のv3まで合わせて対応してしまった方が良いかもしれません。

APK署名スキーム参考資料

31対応

Android 12(APIレベル31)では、引き続きプライバシーやセキュリティーに関する部分の対応強化が行われる。

32対応

Android 12L2(APIレベル32)という、大画面のタブレットや折りたたみ式デバイスの対応が追加された。

33対応

Android 13(APIレベル33)では、フォアグラウンドタスクマネージャーバッテリー リソース運用通知に関する実行時の権限が大きな変更点になる。

セキュリティー対策

root化対策、リバースエンジニアリング対策、メモリ改変対策、通信内容改変対策などのセキュリティー対策により新しいOSで動作しなくなることがないか確認する。

新しい機能対応

課金

毎年、Google Play Billing Libraryはアップデートする。
リリース後のサポート期間は2年と設定されています。
アップデートスケジュールに組み込み無理のないタイミングで対応していく必要があります。

2021年11月1日からBilling Libraryバージョン3対応必須

2021年8月2日より新規リリースのアプリでは最新のBilling Libraryバージョン3への対応が必要になります。2021年11月1日までにすべてのアプリが必須になります。[5]
In-app Billingの時もVersion3へのアップデートが必須対応になり。今後も新たな課金モジュールが出てきたところで入れ替えをする必要が出てくる可能性があります。

2022年11月1日からBilling Libraryバージョン4対応必須

注: 2022年8月2日以降、すべての新規アプリではBilling Libraryバージョン4以降を使用する必要があります。また既存のアプリのアップデートについては、2022年11月1日よりBilling Libraryバージョン4以降の使用が必須となります。

Google Play Billing Library のバージョンのサポート終了  |  Google Play の課金システム  |  Android Developers

PUSH通知

Android Cloud to Device Messaging (C2DM) → Google Cloud Messaging (GCM) → Firebase Cloud Messaging(FCM)とシステムが入れ替わっています。
FCM対応が2018年なので直近での変更はないと思います。

Android System WebView

WebViewを使用するとクラッシュする問題がありました。修正はGoogleが新しいバージョンをリリースすることを待つ必要がありました。
必ず起動時などにWebViewを開くような実装だとアプリを使用できなくなるため。WebViewを開く前にスキップできる仕組みを入れるなど回避できる仕組みを作っておくと安全です。

アプリの権限を自動リセット

GooglePlay開発者サービスを搭載し、Android 6.0(APIレベル23)以降を実行しているデバイスでアプリの権限を自動リセットが自動的に有効化される。

ストレージアクセス

内部・外部ストレージへアクセスするための方法が、バージョンによってパーミッション取得や挙動変更が行われている。

ACCESSテックブック2の「第3章Androidのファイルストレージに関する仕様の整理」にAndroid4.4から12までの情報がまとまっている。

Google Play Console

サイト

Play Consoleのデザインが変更されます。機能は残っているが、UIの配置が変わり、どこをどのように操作すれば良いかがわからなくなったりします。
アプリケーションアップデートの間に新しいページで必要な機能がどこにあるか確認しておきましょう。

審査

2019年の8月ごろ?からGoogleの審査が強化されました。アプリを送信後に審査期間が数時間から最長で7日程度かります。(場合によってはもっと長い)
そのため、スケジュールに審査期間を含めて決める必要があります。
ポリシーガイドラインを確認して違反がないことをチェックしましょう。

位置情報

バックグラウンドでの位置情報の取得は審査が厳しくなっています。対応が必要な内容を把握しておかないとリリースができなくなります。

プライバシー表記

iOSアプリのようにストアへプライバシー関連の表記が追加されます。
2022年2月からGooglePlayに表示されるようになります。
2022年4月から対応が必須になります。

アイコン

新しい使用のアイコンを設定する必要があります。

メタデータ

メタデータのルールが更新されます。導入開始日は2021年中に発表される予定です。

「アプリのタイトルの長さを30文字以内に制限する」、「アイコンやタイトル、デベロッパー名に、Google Playストアでの実績を示唆するキーワードや宣伝を含めることを禁止する」、「ユーザーに誤解を与える可能性があるグラフィック要素をアプリアイコンから排除する」などメタデータポリシーが変わります。

「プレビュー アセットはアプリやゲームを的確に表しているか?」、「プレビュー アセットはユーザーがインストールするかどうか決める際に役立つ十分な情報を提供しているか?」、「プレビュー アセットが適切にPlayストアの地域に合わせて翻訳やローカライズがされており、読みやすくなっているか?」などストアに掲載するプレビュー アセットのガイドラインが変わります。

64bit対応

2019年8月1日以降から64ビットアーキテクチャのサポートが必須になっています。

拡張ファイル

2021年8月月以降にリリースするアプリは、Android App Bundle(AAB)が必須になります。OBB(APK 拡張ファイル)を使用できなくなり、Play Asset Deliveryを使用する必要があります。

まだ、すでにリリースされているアプリのアップデートでは必須となっていません。今後対応が必須になる可能性はあります。事前にPlay Asset Deliveryに関して調査して準備しておきましょう。

OBBではストアインストール時にで1GB×2個のファイルで計2GB使用できました。Play Asset Deliveryでは計2GBは変わりませんが、ストアインストール時に1GB、インストール後にダウンロード512MB、アプリ実行中512MBと取得タイミングや配置などが変わります。
そのため、新たに設計と実装を変更する必要が出てきます。

質の高い広告エクスペリエンス

  • 一般にユーザーがなんらかの操作を選択したときに突然表示される、あらゆるフォーマット(動画、GIF、静止画像など)の全画面インタースティシャル広告は認められません。
    • ゲームをプレイ中、レベルの冒頭やコンテンツ セグメントの開始中に表示される広告は認められません。
    • アプリの読み込み画面(スプラッシュ画面)の前に表示される全画面動画インタースティシャル広告は認められません。
  • 15秒経過後に閉じることができない全画面インタースティシャル広告は認められません。オプトインの全画面インタースティシャル、またはユーザーのアクションを妨げない全画面インタースティシャル(ゲームアプリのスコア画面の後に表示される場合など)は、15 秒以上表示することが可能です。

このポリシーは、ユーザーが明示的にオプトインするリワード広告(例: 広告を視聴したユーザーには特定のゲーム内機能やコンテンツを提供することをデベロッパーが明示している広告)には適用されません。また、通常のアプリの使用やゲームのプレイを妨げない収益化要素や広告(動画コンテンツに組み込まれた広告、全画面表示ではないバナー広告など)にも適用されません。

脚注
  1. ネイティブアプリでもそこまで大きく変わりませんが ↩︎

  2. 昔はGoogle I/OやDevelopers Blogを細かくチェックしないといけなかった。 ↩︎

  3. Google Play の対象 API レベルの要件を満たす  |  Android Developers ↩︎

  4. OSアップデートのリリース月で切り替わっているようす ↩︎

  5. 当初はAIDLやPlay Billing Library 1.xは2021年5月1日までに、Play Billing Library 2の対応必須だった。Google Play Billing: Required updates and new functionality (Android Dev Summit '19) - YouTubePlay Billing Library 2.x Mandatory by May 2021 : androiddevより) ↩︎

Discussion

ログインするとコメントできます