目次
- 目次
- 環境
- AndroidStudioのプロジェクトとAndroidの違い
- Gradle
- Gradle Sync
- apkの生成
- Build Finishした後
- Google Play Consoleへの登録作業
- 参考記事
AndroidStudioで、ソースコードからAPKを生成し、Firebaseに登録するまで。単語レベルでつまずいたことをメモしておく。
環境
- AndroidStudio 3.5.2
- Firebase
AndroidStudioのプロジェクトとAndroidの違い
プロジェクトパネルのところ、「Project」や「Android」などいくつかのViewが選べるということに気づくまでに半日くらいかかってしまった。「Android」にしているとgoogle-services.jsonなどが表示されないので首を傾げていた。
Gradle
Mavenなどと同様のビルドツールの一種らしい。
Gradle Sync
依存関係のあるパッケージを同期する機能。
apkの生成
Android Studioで APK ファイルを作成する - Android Studioでアプリ開発!
Key store pathはどこが正しいか。
答えはないみたい。
webの画像検索では以下の事例があるようだ。
~/user/keystores/upload-keysotore.jks
/Users/adarshf/AndroidStudioProjects/MyApplication/app
C:\Users\keybowNew\Desktop\newploadKey.jks
/home/user/keysotres/android.jks
/Users/konifar/work/whovoice/whovoice_key.jks
D:\Android\AndroidStudioProjects\ListView3\ListView3.jks
まあ要するにどこでもいいということのようだ。
apk - Keystore For Signing Android App - Stack Overflow
こちらのページでは「Path to your app directory」を指定するように、とある。
つまり、私の場合で言えば C:\Users\some_user_name\Documents\some_project_name\src\app\some-keystore-name.jks
ということになる。
buildTypeと署名
Android端末で動作確認する場合、apkファイルをAndroidになんらかの形で渡して起動すればインストールされる。ただし、Playプロテクト、buildTypeと署名に注意が必要。
Playプロテクトを外す
Playストア以外からのapkファイルを使用する場合、PlayストアアプリのメニューからPlayプロテクトを外す必要がある。
Google Play プロテクトを使用して有害なアプリから保護する - Google Play ヘルプ
「Google Play プロテクトのオン / オフを切り替える」の項目を参照のこと。
buildType=debugの場合
署名なしapkでインストールできる。
buildType=releaseの場合
署名ありapkでないとインストールできない。
keytoolエラー : java.io.IOException:Incorrect AVA format
「New Key Store」画面のOKボタンをクリックした時にこのエラーが出て進めない。
組織名などの欄に無効な文字が入ってますエラーらしい。 カンマとかスペースとか抜いたらおkでした。 ――署名作成時にincorrect AVA formatエラーが出る - 優々自適
Key was created with errors:
Key was created with errors: Warning: JKSキーストアは独自の形式を使用しています。"keytool -importkeystore -srckeystore C:\Users\aibri\Documents\mirais-pays-android\src\app\upload-keystore.jks -destkeystore C:\Users\aibri\Documents\mirais-pays-android\src\app\upload-keystore.jks -deststoretype pkcs12"を使用する業界標準の形式であるPKCS12に移行することをお薦めします。
Javaが独自のJKSキーストアを使用しているのだけれど、keytoolとしてはPKCS12の方を推奨しているらしい。Android的にはJKSキーストアで問題ないみたい。無視。
Build Finishした後
apkファイルがC:\Users\some_user_name\Documents\some_project_name\src\app\
(destinationで指定したディレクトリ)直下に出ると思っていたらそうではなかったのでちょっと焦ってしまった。
Variant名のディレクトリの下にapkファイルが生成される。つまり、debugなら、C:\Users\some_user_name\Documents\some_project_name\src\app\debug\
の下。
Google Play Consoleへの登録作業
GooglePlayConsoleにアクセス、ログイン。
左メニューから、「すべてのアプリ」をクリックし、アプリ名をクリック。アプリのダッシュボードへ。
apkファイルの登録
左メニューから「アプリのリリース」
- 製品版トラック
- オープントラック
- クローズドトラック
- 内部テスト版トラック
今回は内部テスト版で
「リリースを作成」をクリック。
「内部テスト版として新たにリリース」
「Google でアプリ署名鍵の管理、保護を行う(推奨)」 「次へ」をクリック
「App Signing by Google Play Terms of Service」 「同意する」
「アップロード」 「リリース名」バージョン番号など 「このリリースの新機能」
「保存」をクリック。「変更を保存しました」という表示が一瞬出て消える。
エラー「デバッグ可能なAPKまたはAndroid App Bundleをアップロードしました」
apkファイルをアップロードする際にこんなエラーに遭遇することがある。
アップロードできませんでした デバッグ可能な APK または Android App Bundle をアップロードしました。セキュリティ上の理由により、Google Play に公開するにはデバッグを無効にする必要があります。詳しくは、デバッグ可能な APK または Android App Bundle についての説明をご覧ください。
C:\Users\aibri\Documents\mirais-pays-android\src\app\build.gradle
を開く。
buildTypes { debug { debuggable true applicationIdSuffix ".hoge.huga.stg" buildConfigField("String", "BASE_URL", '"https://dev.foo-bar.com/"') }
debuggable true
の値をdebuggable false
に変更して、再度signed APKを作成。
ストアの掲載情報
- タイトル
- 簡単な説明(80字まで)
- 詳しい説明(4000字まで)
- 高解像度アイコン(512×512、32ビットPNG)
- スクリーンショット(JPEGまたは24ビットPNGアルファなし)。最小320px。最大3840px。少なくとも2つのスクリーンショット。
- フィーチャーグラフィック 横1024px×縦500px、JPGまたは24ビットPNG(アルファなし)
- アプリのタイプ
- カテゴリ
- コンテンツのレーティング
- ウェブサイト
- メール
- プライバシーポリシー
コンテンツのレーティング
「次へ」
- メールアドレス
- アプリのカテゴリを選択
- 質問に答える
「レーティングを算定」 「レーティングを適用」
価格と配布
- 国
- 広告を含む
- コンテンツガイドライン
- 米国輸出法
アプリのコンテンツ
先に左メニューの「価格と配布」の中の「広告を含む」の質問に答えている必要がある。
- 対象年齢層
- アプリの詳細
- 広告
- ストアでの表示
- 概要
対象年齢層を「18歳以上」にして「次へ」をクリックすると、「アプリの詳細」「広告」はスキップされる
アプリのリリース
左メニュー「アプリのリリース」に戻って一番したを表示すると「確認」ボタンが青くなっている。クリック。
ボタン名が「内部テストとして段階的な公開を開始」に変わる。クリック。
「リリースに公開前に確認すべき情報または警告が含まれています」
「確認」をクリック。
リリース管理>アプリのリリース
左メニュー「リリース管理 > アプリのリリース」に遷移する。
「リリースの作成」ボタンをクリックすると、新しいapkを登録してアプリをアップデートすることが可能。
「アルファ版としてリリース」ボタンをクリックすると、現状のバージョンに対するアルファ版を追加できる模様。