パッケージ作成 without 署名

  • Eclipse の Package Explorer でパッケージ名を右クリック - [Android Tools] - [Export Unsigned Application Package] を選択。

パッケージ作成 with 署名

  • Eclipse の Package Explorer でパッケージ名を右クリック - [Android Tools] - [Export Signed Application Package] を選択。
  • Export Android Application ダイアログ1画面目
    • Create new keystore を選択
    • Location … C:\keys\kobayashi.keystore
    • Password … 適当 (ファイル自体のパスワード)
    • Confirm … パスワードもう一度
  • Export Android Application ダイアログ2画面目
    • Alias … 署名の別名 Kobayashi
    • Password … パスワード (キー自体のパスワード)
    • Confirm … パスワード再入力
    • validity(years) … 鍵の有効期限 (年単位で指定。25以上を指定する)。25が無難。
    • First and Last Name … 作者の名前 Keiichi Kobayashi
    • Organizational Unit … 部門・部署名 Tablet
    • Organizational … 組織名 HAL
    • City and Locality … 市区町村名 Shinjuku-ku
    • State or Province … 都道府県名 Tokyo-to
    • Country Code(XX) … 国番号。日本は81
  • Export Android Application ダイアログ3画面目
    • Destination APK file … C:\packages\RgbMeter.apk

署名の期限切れについて

アプリケーションへの署名 | Android Developers

システムが署名証明書の有効期限を確認するのは、インストール時のみです。 アプリケーションのインストール後に署名者証明書が期限切れになった場合、アプリケーションは正常な動作を継続します。

ストア登録 (Google play store)

自分のパッケージ一覧管理 - Google Play Developer Console

デベロッパーとしての登録料 $25 (約2500円) が必要。(銀行口座を登録する場合は5営業日程度必要?)

パッケージのアップロードから公開までは数時間程度。

  • 新しいアプリを追加
    • デフォルトの言語 = 日本語 ja-JP
    • タイトル (30文字) ※グローバル展開を考えると英語が良い
  • APKをアップロード
    • APK をドラッグ&ドロップ
  • ストアの掲載情報
    • タイトル
    • 説明
    • スクリーンショット (※)(少なくとも7インチ用1つ、10インチ用1つの計2つのスクリーンショットが必要)(1辺の長さ:320~3840px)
    • 高解像度アイコン 512x512px
    • アプリのタイプ
    • カテゴリ
    • コンテンツレーティング
    • ウェブサイト or メール
    • 上部の保存を押す
  • 価格と販売/配布地域
    • 価格
    • 配布する国
    • 同意事項等
    • 上部の保存を押す
  • あとは右上の「公開の準備完了」のところを「このアプリを公開する」で「公開中」に変更すれば良い。
  • 「Google Play ストアで見る」を押せばアプリ紹介ページが見れる
  • パッケージ名がURLに使われるので、恥ずかしくない名前を付けよう。

※エミュレータのスクリーンショットは DDMS の機能で撮ると良い。 DDMS の画面左上あたりに Screen Shot アイコンがある。

パッケージ作り直し

Package Explorer からパッケージ名を右クリック - [Android Tools] - [Export Signed Application Package] を選択。 - Use existing keystore を選択。 - Use existing key を選択。

apk作成

正式版署名

  • ※あらかじめ keytool.exe があるディレクトリにパスを通しておくこと。
  • keytool.exe は jdk や jre の中に入ってる。
    • 例:C:\Program Files\Java\jdk1.7.0_45\bin\keytool.exe

作成済みの keystore ファイルに対して、

> keytool -list -keystore MapViewSample2.keynote
…
mapviewsample2, 2011/09/04, PrivateKeyEntry,
証明書のフィンガープリント (MD5): 16:AD:6E:88:C9:A5:92:4E:EF:4D:BF:1D:94:6D:26:11

※キーストアのパスワードは入力しなくても良い。

このフィンガープリントを使って、 Error 404 (Not Found)!!1
上記フィンガープリントを入力し、[Generate API Key] を押下し、Google Maps API Key を取得し直す。

取得し直した API Key を main.xml に貼り付ける。

Keystoreというものが必要

この場合、ファイルのロケーション (Location) は「C:\idea\HelloAndroid.keystore」とします

Location: ~\.keystore
Password: hogehoge
Confirm: hogehoge
↓
Alias: alias_key1
Password: pass_key1
Confirm: pass_key1
Validity: 1000 (年単位)
First and Last Name: K Kobayashi
Organizational Unit: Teachers
Organization: Kaisha
City or Locality: Tokyo
State or Province: Shinjuku
Country Code (XX): JP
↓
Destination APK file: ~\hoge.apk

・キーストアには複数のキーを格納することができる。(aliasで区別する。)

「はじめての Android」開発環境 〜Eclipse 編〜 (5) : Android プロジェクトの署名&パッケージング - 倭マン's BLOG

公開するアプリがデバッグ可能状態で出荷されるとまずいので、 AndroidManifest.xml で「debuggable=true」が指定されているままパッケージングしようとすると注意を喚起してくれます:

Validity(years)は25あたりが無難らしい。(証明書の有効期間)

Android Market 公開

エミュレータにマーケットをインストール

参考

apkの用意

以下を D:\Android\android-sdk-windows\platform-tools にコピーしておく。 - 1.Vending.apk(マーケット本体) - 2.GoogleServiceFramework.apk(必要なファイル) - 3.MarketUpdater.apk(たぶん必要なファイル) - 4.Development.apk(たぶん必要なファイル)

system.imgコピー

D:\Android\android-sdk-windows\platforms\android-8\images\system.img
↓コピー
K:\Documents and Settings\kobake\.android\avd\A22small.avd\

パーミッション変更

> cd D:\Android\android-sdk-windows\tools
> emulator -avd A22small -partition-size 100
(ここでエミュレータが起動する)
> cd D:\Android\android-sdk-windows\platform-tools
> adb -s emulator-5554 shell
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
# chmod 777 /system/app
# exit

※partition-sizeを指定してシステム領域を広げないとマーケットを入れる容量が足りなくなります

apkインストール

> cd D:\Android\android-sdk-windows\platform-tools
> adb -s emulator-5554 push Vending.apk /system/app/
> adb -s emulator-5554 push GoogleServicesFramework.apk /system/app/
> adb -s emulator-5554 push MarketUpdater.apk /system/app/
> adb -s emulator-5554 push Development.apk /system/app/
> adb -s emulator-5554 shell rm /system/app/SdkSetup.apk

不要キャッシュファイル削除

  • エミュレータを終了しておく。
  • 以下のファイルを削除。
  • *K:\Documents and Settings\kobake.android\avd\A22small.avd\userdata-qemu.img
  • *K:\Documents and Settings\kobake.android\avd\A22small.avd\cache.img

失敗メモ

>adb shell rm /system/app/SdkSetup.apk
error: more than one device and emulator

「-s emulator-5554」が抜けてた。