Because We Love Happy Coding

フリーライターからエンジニア × 講師。発信力だけあり余ってる感じ

Android開発 単語レベルから

今日もまたコーディング。だって僕らはHappy Codingが大好きだから。

目次

AndroidStudioで、ソースコードからAPKを生成し、Firebaseに登録するまで。単語レベルでつまずいたことをメモしておく。

環境

  • AndroidStudio 3.5.2
  • Firebase

AndroidStudioのプロジェクトとAndroidの違い

プロジェクトパネルのところ、「Project」や「Android」などいくつかのViewが選べるということに気づくまでに半日くらいかかってしまった。「Android」にしているとgoogle-services.jsonなどが表示されないので首を傾げていた。

Gradle

Mavenなどと同様のビルドツールの一種らしい。

Gradle入門 - Qiita

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を登録してアプリをアップデートすることが可能。

「アルファ版としてリリース」ボタンをクリックすると、現状のバージョンに対するアルファ版を追加できる模様。

参考記事