製品版リリースの作成でaabファイルアップロード後の確認画面で出る2つの警告文について
警告
この App Bundle に関連付けられている難読化解除ファイルはありません。難読化コード(R8 / ProGuard)を使用している場合、難読化解除ファイルをアップロードすると、クラッシュと ANR をより簡単に分析、デバッグできるようになります。R8 / ProGuard の使用は、アプリサイズの縮小につながります。
警告
この App Bundle にはネイティブ コードが含まれ、デバッグ シンボルがアップロードされていません。クラッシュや ANR を簡単に分析、デバッグできるよう、シンボル ファイルをアップロードすることをおすすめします。
結論から言うと、その2つの警告は無視して公開しても問題ありません。
特に個人開発アプリや小規模アプリでは、最初のリリース時点では対応しないケースも多いです。
今回の内容を見る限り、Google Play Consoleが「推奨設定」を案内しているだけで、公開をブロックするエラーではありません。
難読化解除ファイル(mapping.txt)がありません
この App Bundle に関連付けられている難読化解除ファイルはありません。
(R8 / ProGuardを使用している場合)
これは、
- R8でクラス名やメソッド名を短縮した
- 例:
com.example.myapp.UserProfileManager ↓ a.b.c.a
のような変換をした場合に必要になるファイルです。
R8は変換後に、
mapping.txt
という「変換前 → 変換後」の対応表を作ります。
例えば:
UserProfileManager -> a.b.c
loadUserData -> d.e
のようなものです。
Google Playのクラッシュ解析では、
Exception at a.b.c:123
では人間には分かりませんが、
mapping.txtがあると、
Exception at UserProfileManager.swift:123
のように復元できます。
ネイティブコードのデバッグシンボル
この App Bundle にはネイティブ コードが含まれ、デバッグ シンボルがアップロードされていません。
これは主に、
- C/C++
- NDK
- Unity
- Flutter
- 一部のライブラリ
などが内部でネイティブコードを使っている場合です。
Kotlin + Jetpack Composeだけでも、Android標準ライブラリ内部でネイティブコードを含む場合があるため表示されることがあります。
これも、
「クラッシュ時の詳細解析がしやすくなる」
という意味で、公開可否には関係ありません。
R8とは?
簡単に言うと、
Androidアプリを小さく、高速化し、解析されにくくする仕組み
です。
主な機能は3つあります。
① 不要コード削除(縮小)
例えば、
class Test {
fun unusedFunction() {
}
}
のような、使われていないコードを削除します。
↓
APK/AABサイズ削減
② 難読化
例えば:
元:
class PaymentManager {
fun purchaseSubscription()
}
↓
変換後:
class a {
fun b()
}
アプリ解析を多少困難にします。
③ 最適化
例えば:
if (true) {
doSomething()
}
のような不要な処理を整理します。
R8対応
app/build.gradle.kts の設定だけです。
現在:
android {
buildTypes {
release {
isMinifyEnabled = false
}
}
}
なら、
↓
android {
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile(
"proguard-android-optimize.txt"
),
"proguard-rules.pro"
)
}
}
}
に変更します。
するとAAB作成時に、
app/build/outputs/mapping/release/mapping.txt
が生成されます。
これをGoogle Play Consoleにアップロードできます。
ただし、最初の公開ではおすすめ設定は?
今回の状況なら、私は以下をおすすめします。
初回リリース
✅ R8なし
✅ 警告は無視
✅ 公開する
理由:
- クラッシュ解析基盤がまだ不要
- R8有効化でライブラリ関連エラーが出ることがある
- デバッグしやすい状態を維持できる
ユーザーが増えたら
その時点で:
- Firebase Crashlytics導入
- R8有効化
- mapping.txtアップロード
- Native debug symbols対応
という流れで十分です。
AppleのApp Store Connectでいう「不足しています」系ではなく、Google Play側の「より運用しやすくするなら設定してください」というレベルなので、安心してリリース作業を進めて大丈夫です。
スクリーンショット
フィーチャーグラフィックのサイズ:1024 * 500
Google Play Console のスクリーンショットは、実機に近く、かつ Play ストアの要件を満たす解像度で撮るのが重要です。
2026年現在、Android Studio の Device Manager で用意されている公式エミュレータの中では、以下がおすすめです。
| 用途 | 推奨エミュレータ | 解像度 | 備考 |
|---|---|---|---|
| スマートフォン(9:16) | Pixel 8 | 1080 × 2400 | 現在の標準的なスマホ。Play Console提出に最も無難 |
| スマートフォン(9:16寄り) | Pixel 7a | 1080 × 2400 | Pixel 8とほぼ同等 |
| 7インチタブレット | Nexus 7 (2013) | 1200 × 1920 | 画面比率が9:16に近く、7インチカテゴリ向き |
| 10インチタブレット | Pixel Tablet | 1600 × 2560 | Google公式の現行タブレット。Play掲載用としておすすめ |
ただし、Google Play Console の現在の要件では、
- Phone screenshots
- 7-inch tablet screenshots(任意)
- 10-inch tablet screenshots(任意)
となっており、タブレット対応をアピールしたい場合のみ提出すればよいケースもあります。
スマートフォン
Pixel 8 (1080×2400)
- Android 15 も利用可能
- 現在の主流サイズ
- Play Store掲載画像として見栄えが良い
7インチタブレット
Nexus 7 (1200×1920)
- Play Console の 7-inch tablet 枠に適している
- 縦向きで撮影しやすい
10インチタブレット
Pixel Tablet (1600×2560)
- Google純正
- 現行タブレットUIの確認にも使える
- 高解像度で掲載画像が綺麗
Device Managerで作成する場合
Device Manager → Create Device
- Phone → Pixel 8
- Tablet → Nexus 7
- Tablet → Pixel Tablet
を選択し、
- Portrait(縦向き)
- ナビゲーションバーを非表示
- 通知を非表示
- アプリの主要画面のみ表示
で撮影すると審査・掲載用として見栄えが良くなります。
なお、あなたのアプリが Jetpack Compose のレスポンシブ対応をしているなら、Pixel 8、Pixel Tablet の2種類だけでも十分なことが多いです。Play Console のタブレット最適化審査を意識するなら、さらに Nexus 7 を追加して 3サイズ分撮影するのがおすすめです。
デモモード
エミュレーターでそのままキャプチャすると、上部のステータスバーに「あやふやな時刻」「中途半端なバッテリー残量」「エラー通知」などが映り込んでしまいます。撮影前にデモモードを有効にすると、時刻が「9:00」、Wi-Fi・バッテリー表示が「MAX」に固定された綺麗な状態になります。
- エミュレーターの設定アプリを開く
- System > Developer options(デベロッパー モード)を開く
- Demo mode(デモモード)を選択し、Enable Demo Mode と Show Demo Mode をONにする
ADB(Android Debug Bridge)を使用すると、ターミナル(Windowsの場合はコマンドプロンプトやPowerShell、Macの場合はターミナル)からコマンドを流し込むだけで、一瞬にしてエミュレーターを完璧なスクリーンショット用の状態(時刻固定、バッテリー100%、通知なし)に切り替えることができます。
以下のコマンド群をターミナルにコピー&ペーストして実行してください。※エミュレーターが起動している状態で行います。
1. デモモードを一括でONにするコマンド
以下の行をすべてコピーし、ターミナルに貼り付けて実行します(Mac/Windows共通)。
Bash
# 1. デモモードの使用を許可する
adb shell settings put global sysui_demo_allowed 1
# 2. デモモードを開始する
adb shell am broadcast -a com.android.systemui.demo -e command enter
# 3. 時計を 12:00 に固定する(hhmm の数字を変えれば好きな時刻にできます)
adb shell am broadcast -a com.android.systemui.demo -e command clock -e hhmm 1200
# 4. Wi-Fiアイコンを最大レベルで表示する
adb shell am broadcast -a com.android.systemui.demo -e command network -e wifi show -e level 4
# 5. モバイルデータ通信アイコンを非表示にする(Wi-Fiのみにする場合)
adb shell am broadcast -a com.android.systemui.demo -e command network -e mobile show -e datatype none -e level 0
# 6. バッテリーを100%(充電中マークなし)にする
adb shell am broadcast -a com.android.systemui.demo -e command battery -e level 100 -e plugged false
# 7. 余計な通知アイコンをすべて非表示にする
adb shell am broadcast -a com.android.systemui.demo -e command notifications -e visible false
コマンドが成功すると、一瞬でステータスバーが「12:00 / Wi-Fi MAX / バッテリー100% / 通知ゼロ」の美しい状態に固定されます。
2. デモモードをOFFにする(元に戻す)コマンド
撮影が終わり、元の状態(実際の時刻や通知を表示する状態)に戻したい場合は、以下のコマンドを1行実行するだけです。
Bash
adb shell am broadcast -a com.android.systemui.demo -e command exit
エラーが出る場合(
adb: command not foundなど)ADBの環境変数が通っていない可能性があります。Android StudioのTerminalタブ(画面下部)を開いてそこから実行すると、パスが通っていることが多いためスムーズに実行できます。