After you finish cleaning up your code (remove debugging logging, etc) and make sure it still works....
Add versioning to your AndroidManifest.xml. I'm hoping that eventually this piece can be replaced with something that reads the pom.xml... but, in the meantime attach these to the top level manifest:
android:versionCode="1"android:versionName="1.0"
Then let's add a uses-sdk element:
Update your pom.xml:
<uses-sdk android:minSdkVersion="7"
android:targetSdkVersion="8"/>
Now when you redeploy (mvn clean install) it will also create a target\YOURAPP-1.0-SNAPSHOT-aligned.apk... That will be the one we upload to Google.<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>maven-android-plugin</artifactId>
<version>2.5.0</version>
<configuration>
<androidManifestFile>${project.basedir}/src/AndroidManifest.xml</androidManifestFile>
<assetsDirectory>${project.basedir}/src/main/assets</assetsDirectory>
<resourceDirectory>${project.basedir}/src/main/android/res</resourceDirectory>
<!--<resourceOverlayDirectory>${project.basedir}/src/main/android/overlay</resourceOverlayDirectory>-->
<nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory>
<sdk><platform>7</platform></sdk>
<deleteConflictingFiles>true</deleteConflictingFiles>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
<sign>
<debug>false</debug>
</sign>
</configuration>
<extensions>true</extensions>
<executions>
<execution>
<id>android-undeploy</id>
<phase>pre-clean</phase>
<goals><goal>undeploy</goal></goals>
</execution>
<execution>
<id>alignApk</id>
<phase>install</phase>
<goals>
<goal>zipalign</goal>
</goals>
</execution>
<execution>
<id>android-deploy</id>
<phase>install</phase>
<goals><goal>deploy</goal></goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jarsigner-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>signing</id>
<goals>
<goal>sign</goal>
</goals>
<phase>package</phase>
<inherited>true</inherited>
<configuration>
<archiveDirectory></archiveDirectory>
<includes>
<include>target/*.apk</include>
</includes>
<keystore>android.keystore</keystore>
<storepass>{{YOUR_PASSWORD}}</storepass>
<keypass>{{YOUR_PASSWORD}}</keypass>
<alias>android</alias>
</configuration>
</execution>
</executions>
</plugin>
Make sure you are registered with the Android Market.
Click on the "Upload Application".
Fill in the form... Here are a few notes/gotchas:
1. If your app's icon is not a 48x48 PNG, it will give you these error messages:
The icon for your application is not valid. Please use a 48x48 PNG.Fixing the icon resolves all of these.
Market requires versionCode to be set to a positive 32-bit integer in AndroidManifest.xml.
Market requires versionName to be set in AndroidManifest.xml.
Market requires the minSdkVersion to be set to a positive 32-bit integer in AndroidManifest.xml.
2. You can't just browse and hit publish. You have to hit "Upload" on each item. The APK has to be uploaded before you can upload pictures. Make sure to choose the -aligned.apk one.
3. Screenshots vs Promo graphics... Screenshots are the ones that show up on the app description page. Promos are the tiny ones that scroll across the top (ie: Featured Apps). Note the commentary in the side. If you take a picture from the emulator, strip off the skin and resize it as suggested.
4. You can NOT have just 1 screenshot. You can have 0. You can have 2. You can not have 1. Weird, I know.
If you still have your app installed on your phone for testing, uninstall it now.
And for a little fluff....
Go to the QR-Code Generator and specify a market url using the package name (not class name) of your app. For example, for the Prime Browser, I used 'market://details?id=org.eoti.android.primebrowser'. Choose whatever size you want (I did small on mine) and generate a QR Code... as such:
Once you have the QR code, you can put it on your blog (as I did on the left side of this page) or email it, or whatever you like.
The real key is that now you can pull out your phone, scan it with your Barcode Scanner and whala - you can see your app in the market place.
Go ahead and install it. Enjoy =)
For the images...
ReplyDeleteput a 48x48 in the drawable directory and in the drawable/drawable-mdpi
put a 36x36 into the drawable/drawable-ldpi directory
put a 72x72 into the drawable/drawable-hdpi
That should work best across all phones