スポンサーリンク

Androidアプリをマーケットに公開する方法の作業手順メモ (リリース時とアップグレード時のチェックリスト)


アプリのリリース作業を実施する際には,このページを作業手順書およびチェックリストとして参照し,確認しながら進めてゆく。


はまりがちな,よくあるミスも記載しておく。

よく注意してリリース作業に当たること。

※↑ もくじジェネレータ で自動生成



(1)マーケット初回のみ:デベロッパ登録

まだ1つもアプリを公開した事が無い場合,マーケットに開発者登録をする必要がある。


開発者アカウントの登録

下記のURLから,デベロッパの更改プロフィールを記入して登録。

※電話番号の欄は,Googleからの緊急連絡用なので安心して入力すること。

Google Playデベロッパー登録
https://play.google.com/apps/publish/...


初回登録のためには,クレジットカードで2000円ちょい(US 25ドル)かかる。

これはマーケットのインフラを利用開始するためにかかる諸経費の金額であり,Suicaのデポジットみたいなものだ。(返ってこないが)

もしも,その2000円という初期投資額を惜しく感じるようであれば,下記のWebページを読み直してよく考えること。

シンプルなアプリで成功事例が登場 / 個人開発のAndroidアプリで月収116万円に(2010年の情報)
http://www.atmarkit.co.jp/news/201003...


なお,Googleウォレット側でクレジットカードの処理がうまくいかないと,デベロッパ登録も手間取る事になる。
早めに済ませておくこと。

Android Marketアプリ登録時の画像アップロード失敗とデベロッパー登録時の留意点
http://blog.uskanda.com/2012/03/03/an...

  • Androidマーケットへのリリース時はデベロッパー登録を必ず先にしておく!ということ。通常でも半日〜1日かかるケースもある等、Google先生の機嫌に左右されて時間がかかるリスクがあるので、一週間余裕を持っておいたほうがいい

デベコンにログイン

登録手続きを進めて,最終的には,自分の開発者アカウントを使って「デベロッパコンソール」(=デベコン)にログインできるようになること。

デベコンのURLは下記。

Google Play / ANDROID DEVELOPER CONSOLE
https://play.google.com/apps/publish/...


(2)電子署名付きのAPKファイルを作成

開発中は,アプリをエミュレータで動作させたり,USBデバッグで端末に直接アプリをインストールしていただろう。

その時に使っていたのは,デバッグ用の「仮の」APKファイルである。

アプリ公開時には,正式な署名が付与されたAPKファイルが必要になる。


署名付きAPKファイルの新規作成(アプリのアップロードが初回の場合)

該当アプリに対して,初めて電子署名を付与する場合,下記の手順を踏む。

  • まず,これからリリースしようとしているアプリのパッケージ名が本当に正しいかどうか,今一度確かめる。
    • 一度マーケットにアップしてしまったが最後,削除は不可能なので。アップしたパッケージ名は他のデベロッパが使えなくなる。

AndroidMarket公開後に注意すべき点。
http://www.miyaware.com/blog/2011/03/...

  • androidMarketに1度公開したものは削除不可。「非公開」しかできません
  • 同じパッケージファイルで新たな署名のapkファイルもUP不可
  • また,アプリに対してアイコンを付与したかどうか,忘れずにチェックする。まだ作ってなかった場合は,リリース用に作成する。
  • Eclipse上で該当するAndroidプロジェクトを右クリック>Androidツール>Export Signed Application Package を選択。
  • 「Export Android Application」ダイアログ上で,署名対象のプロジェクト名が正しいことを確認して「次へ」を押下。
  • KeyStore Selectionで「Enter path to keystore」と言われる。
    • 初回なので,「Create new keystore」を選択。
    • ロケーションとしては,好きな場所を選択。例えば「workspace/該当Androidプロジェクトのフォルダ/key/」というフォルダを作って,そのフォルダ上に key のようなファイル名を指定する。
    • 電子署名のパスワードは基本的に,アプリケーションごとに管理する。新規パスワードを入力して,大事に控えておく。確認欄にも同じものを入力。
    • 「次へ」を押下。
  • Key Creationで「Enter key alias」と言われる。
    • エイリアス(電子署名の名前)は好きな名称を付けて良いが,例えば「key」などの名前を付ける。
    • エイリアスに対応するパスワードを考案して入力する。エイリアス名とパスワードは,やはり大事に控えておく。
    • validityには,署名の有効期間を年単位で入力する。「25」とか「50」とか。
    • 「At least one Certificate issuer field is required to be non-empty」と言われるので,リリース者の情報をとりあえず1か所以上入力する。例えば,「組織」の欄に会社名を入れる。
    • 「次へ」を押下。
  • Destination APK file(リリース用のAPKファイルの保存パス)を入力する。
    • どこでもよいが,例えばworkspace内にreleaseというフォルダを作り,そこにAPKを保存するように指定する。
    • 「完了」を押下。
  • リリース用のAPKファイルが生成された事を,エクスプローラなどで確認する。


もし用語が分からない場合は,下記ページなどを参照:

Androidアプリを配布する仕組み
http://docs.monaca.mobi/manual/build/...

  • キーストアとは、署名を行うための証明書(秘密鍵)。キーストアはパスワードで暗号化されており、パスワードを紛失するとキーストアは復元できなくなる。
  • エイリアスとは、キーストアに格納されたキー情報。パッケージの実際の署名に用いられる。キーストアには複数のエイリアスを登録できるが,通常は1つのキーストアに1つのエイリアスが設定される。


アプリケーションをAndroidマーケットに登録する
http://ascii.jp/elem/000/000/561/5613...

  • キーストアは、個々のプロジェクトで作るパッケージ用の電子署名キーを保存しておく領域。電子署名処理には、JDK付属のツールであるkeytool.exeやjarsigner.exeが使われている
  • 一度プロジェクトを特定の署名キーで電子署名したら、署名キーを変更しないように。同一の署名キーで署名されていないパッケージでは、ユーザーはプログラムをアップグレードすることができない。また、署名キーは後から修正することもできない
  • aliasとは署名キーに付ける名前。署名キーのパスワードはキーストアのパスワードとは別。

署名付きAPKファイルの更新(アプリのアップロードが2回目以降の場合)

もし,既存のアプリを更新する場合は,再度署名し直す必要がある。


初回とほぼ手順は同じだが,署名ダイアログ上で「Use existing keystore」を選択する部分が異なる。

初回に署名した際のキーストアのファイルパス,エイリアス名,パスワードなどを参照しつつ,初回と同一の情報を入力すること。

なお,マニフェストXMLのバージョンを上げておかないと,マーケットでアップロードできないので注意。


(3)マーケットにAPKをアップロード・公開

前項で完成したAPKファイルを,マーケットに保管し,公開する。


ただし,APK以外にも色々とPR用の資材が必要であり,その分の作業時間は前もって考慮しておく必要がある。

また,デベコン経由でマーケットにアップロード作業を実行する際には,Firefoxを使わずにIEやChromeなどのブラウザを利用すること。正常に動作しない場合があるので。


  • 上述の安全なブラウザで,デベロッパコンソールを開く。
  • 「アプリケーションをアップロード」を押下。
  • リリース用のAPKを選択してアップロード。
    • 「オプション: 拡張ファイルの追加」という欄があるが,通常は無視する。
    • アップロードしたAPKファイルのアプリ名とアイコン・バージョン番号などが表示される。正しい事を確認した上で,「保存」ボタンを押下。
      • ※「保存」ボタンは,軽くクリックしただけでは効かない場合がある。1秒ぐらい長押ししてみること。
  • もし既存のアプリのバージョンを上げる場合は,最新のAPKを有効にすること。
  • IEで「セキュリティで保護されたWebページコンテンツのみを表示しますか?」と聞かれたら,「いいえ」を押下すること。さもないと,正常にリリース作業ができない。
  • スクリーンショットを2個以上追加する。
    • EclipseのDDMS経由で,USBデバッグ中の端末の画面キャプチャを取得し,画像のサイズを調整してアップロードすればよい。
    • 「アップロード」ボタンの押し忘れに注意。
  • 「高解像度アプリケーションアイコン」を追加する。
    • 「アップロード」ボタンの押し忘れに注意。
  • 「今回はプライバシー ポリシー の URL を送信しない」をチェック。
  • 「Android マーケットや Google 所有のオンライン/モバイル サイト以外ではアプリケーションを宣伝しません」のチェックについては,こちらの解説を基に判断して自由に決めること。※Google社が他所で本アプリを宣伝してもよいかどうか,を設定する項目である。
  • 掲載情報として,PR用の言語と,それぞれのタイトル(アプリ紹介名)および説明を記述。
    • 日本語オンリーにするためには,言語を追加>日本語>OK>英語の掲載情報を削除 を選択。
  • バージョンが上がる場合は変更点も記述。
  • アプリケーションタイプとカテゴリを選択。
  • 価格などの情報を入力。いったん無料で公開したアプリは,あとから有料に変更できないので注意。
  • 画面末尾の「同意事項」に同意。
  • 画面上部に戻り,「APKファイル」というタブを選択。公開したいAPKファイルに対し,「有効にする」操作を実行。(これを忘れると,有効なAPKファイルが無いため公開できない
    • アプリをアップグレードする場合にも,この操作をミスりやすいので注意。APKの更新時には,「この操作を実行すると,現在有効なAPKと入れ替わります。よろしいですか?」のような確認ダイアログに念を押されるので,「はい」を選択する。
    • さらにアップグレード時には,「警告: 有効な APK がサポートする端末の数が、以前に有効だった APK のサポート数より少なくなっています。ユーザーの一部が更新できなくなります。」というメッセージが表示される場合がある。これは,アプリがサポートするSDKのバージョンの下限(minSdkVersion)を引き上げた場合に発生する。新しいSDKの新機能を使いたい場合は,必然的にminSdkVersionの値を引き上げることになるから,これは発生して当然のこと。したがって無視してよい。
  • 画面右上の「保存」を実行。(これを忘れると,今までの編集操作がパーになり,何もアップされない
    • もし「このアプリの価格を無料に設定してもよろしいですか?」というダイアログが現れた場合は,「いったん無料に設定したアプリの価格は後で有料に変更できないことに同意します」にチェックして,OKを押下。
    • 画面最上部に「保存されました」というメッセージが表示され,すぐに消える。
  • 新規アプリの場合は,画面右上の「公開」を実行。
    • 無料アプリの場合は,無料でよいかの確認ダイアログが再度出るのでOKを押下。
    • 公開が完了。
  • デベコンのトップに画面遷移。
    • いま公開操作をしたアプリの状態が「公開」になっていることを確認。
    • アプリをアップグレードした場合は,該当アプリのバージョンが正しく上がっている事も確認。


アップロードが反映されるまでにはしばらく時間がかかる。

操作をミスらなければ、1時間ぐらい待てばちゃんと反映される。


もしも半日経ってマーケットで公開されていなかったら,リリースをミスっている。

そのようなミスが発生していないか,ちゃんと確認すること。



以上でリリース完了。


補足

慣れてくれば,APKの新規公開+アップグレード操作は,何も見ないでパッパッと行なえるようになる。

特に,アップグレード操作は緊急のタスクとなる場合もあるため,迅速にオペできるのに越したことはない。

デベコンの正確かつ素早い操作に習熟しよう。


関連する記事:

今から5分で,開発中のAndroidアプリを単体テストしよう (JUnitで自動テストする方法)
http://language-and-engineering.hatenablog.jp/entry/20130121/UnitTestOfAndroi...


Androidアプリ開発作業時に,頻繁に参照するサイトのリンク集
http://language-and-engineering.hatenablog.jp/entry/20121116/AndroidAppsDevel...


Androidアプリ開発用のMVCフレームワーク 「Android-MVC」 ver0.3をリリース
http://language-and-engineering.hatenablog.jp/entry/20120730/AndroidMVCFramew...