折角アカウント取得したので

HelloWorld をマーケットに投入してみます。
木南さん本によれば手順としては

  • Manifest の設定
  • アプリケーションへの署名
  • Android Market への登録

となっております。順に本を読みつつ、って事で以下。

AndroidManifest の設定

面倒臭いのでアイコンとラベルはそのままで。以下なカンジ。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="jp.shuri.yamanetoshi.helloworld"
      android:versionCode="1" android:versionName="1.0.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".HelloActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

</manifest> 

android:versionName はデフォでは "1.0" だったので Linux Kernel 風味にしてみました。

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

オレオレ証明書で良いみたい。keytool で作成すれば良いって事で以下。

~$ keytool -genkey -keystore yamanetoshi.keystore -alias yamanetoshi -validity 10000
Enter keystore password:  **********
What is your first and last name?
  [Unknown]:  Toshiaki Yamane
What is the name of your organizational unit?
  [Unknown]:  JAG        
What is the name of your organization?
  [Unknown]:  Okinawa Branch
What is the name of your City or Locality?
  [Unknown]:  Naha
What is the name of your State or Province?
  [Unknown]:  Okinawa
What is the two-letter country code for this unit?
  [Unknown]:  JP
Is CN=Toshiaki Yamane, OU=JAG, O=Okinawa Branch, L=Naha, ST=Okinawa, C=JP correct?
  [no]:  yes

Enter key password for <yamanetoshi>
        (RETURN if same as keystore password):  
~$ 

したらカレントディレクトリに yamanetoshi.keystore ができてました。ちなみにパスワードは入力したら見えちゃう状態になるんですが、一応隠してます。

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

どーするんだろ。とりあえず .apk があるディレクトリで作業してみるか。プロジェクトなディレクトリの下にある bin というディレクトリの中です。

$ ls
HelloWorld.apk  classes.dex     jp              resources.ap_
$ 

で、jarsigner というコマンドを使うのか。ここでもパスワードは見えますが隠してます。

$ jarsigner -verbose -keystore ~/yamanetoshi.keystore HelloWorld.apk yamanetoshi
Enter Passphrase for keystore: ********
   adding: META-INF/YAMANETO.SF
   adding: META-INF/YAMANETO.DSA
  signing: res/layout/main.xml
  signing: AndroidManifest.xml
  signing: resources.arsc
  signing: res/drawable-hdpi/icon.png
  signing: res/drawable-ldpi/icon.png
  signing: res/drawable-mdpi/icon.png
  signing: classes.dex
$

で、次。

Android Market に登録

ええと、http://market.android.com/publish/Home にアクセスして Upload Application なリンクをナニします。で、さっき署名した .apk を upload したら

Market requires the minSdkVersion to be set to a positive 32-bit integer in AndroidManifest.xml.

とのご指摘を頂戴しました。これはもっかい AndroidManifest のソレに戻らんと駄目か。

AndroidManifest 修正

以下なカンジ。

    </application>
    <uses-sdk android:minSdkVersion="4" />

</manifest> 

ええと

Attribute MinSdkVersion (4) is lower than the project target API Level (8)

と言われますが構わず再度署名して upload しました。
upload to android market (1)
で、詳細情報入れれ、という事で適当に以下。
upload to Android Market (2)
で、いっちゃん下にある publish なボタンをクリックすれば OK なのか。クリックしたら叱られた。

Promotional graphic required if there is promotional text. Please upload a graphic or remove the promotional text for en_US.

との事。面倒なので Promo Text の中身を削除しました。また、Categoly も入れれ、と言われたので、Demo を選択しました。
あと、Consent の欄もちゃんと読んでチェック入れましょう。
上記対応してリトライ。

登録完了

以下で OK なのかなぁ。別途実機に導入してみます。
upload to Android Market (3)
確かに iPhone なソレと比べたら楽さ加減が格段に違いますな。

追記

アカウントでマーケット検索したらパケジが出てきた。いやはや。