Signing in Release Mode
When your application is ready for release to other users, you must:
- Obtain a suitable private key
- Compile the application in release mode
- Sign your application with your private key
- Align the final APK package
發布release版本要有4步
官方說明: http://developer.android.com/tools/publishing/app-signing.html#releasecompile 平時通過Eclipse生成在bin目錄下的apk文件,都是debug版的,如何創建release版的軟件呢? 其實還是挺簡單的。 1. 通過java自帶的keytool工具,創建release版的keystore keytool -genkey -v -keystore keystore_name.keystore -alias alias_name -keyalg RSA -validity 10000
keystore_name.keystore:要創建的release版keystore的文件名 alias_name:別名?取個好記點的名字吧,后面還要用到的 (填寫配置文件)-keyalg RSA:通過RSA算法生成 -validity 10000:有效期,單位是天 如果java環境配置正常,輸入命令后會出現下列信息 Enter keystore password:(keystore的密碼) Re-enter new password:(確認keystore的密碼) What is your first and last name? [Unknown]: (姓名,用自己喜歡的名字吧,不知道會顯示在哪里) What is the name of your organizational unit? [Unknown]: (組織單位) What is the name of your organization? [Unknown]: (組織,不知道和上面那個有什么區別) What is the name of your City or Locality? [Unknown]: (城市) What is the name of your State or Province? [Unknown]: (州,省,縣) What is the two-letter country code for this unit? [Unknown]: CN Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN correct? [no]: yes (確認輸入的信息) Generating 1,024 bit RSA key pair and self-signed certificate (SHA1withRSA) with a validity of 10,000 days for: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN Enter key password for <alias_name> (RETURN if same as keystore password):(alias的密碼,如果和keytore密碼一致,直接回車) Re-enter new password:(確認alias的密碼) [Storing my-release-key.keystore]
2.發布Release版本
Signing in Release Mode
When your application is ready for release to other users, you must:
- Obtain a suitable private key
- Compile the application in release mode
- Sign your application with your private key
- Align the final APK package
官方的步驟有4步,編譯release版本的應用程序
2.1 Eclipse導出在Eclipse中,右鍵要發布的項目,依次選擇Android Tool -> Export Signed Application Package... 然后就是step-by-step了,選擇剛才生成的release版keystore,輸入密碼,選擇alias,輸入alias密碼,生成release版的apk。
2.2 采用ANT命令行形式$ ant release
By default, the build script compiles the application APK without signing it. The output file in your project bin/
will be <your_project_name>-unsigned.apk
. Because the application APK is still unsigned, you must manually sign it with your private key and then align it using zipalign
. 默認編譯出來的版本是沒有證書的
<your_project_name>-unsigned.apk ,需要手動添加證書和對齊
To specify your keystore and alias, open the project ant.properties
file (found in the root of the project directory) and add entries for key.store
and key.alias
. For example: 我們可以在
ant.properties文件中指定證書位置和對齊
# This file is used to override default values used by the Ant build system.
#
# This file must be checked into Version Control Systems, as it is
# integral to the build system of your project.
# This file is only used by the Ant script.
# You can use this to override default values such as
# 'source.dir' for the location of your java source folder and
# 'out.dir' for the location of your output folder.
# You can also use it define how the release builds are signed by declaring
# the following properties:
# 'key.store' for the location of your keystore and
# 'key.alias' for the name of the key to use.
# The password will be asked during the build when you use the 'release' target.
#我的證書在上一級目錄下
#alias是創建證書時填寫的alias_name
key.store=../keystore_name.keystore
key.alias=alias_name
接下來的步驟很easy了
Save your changes. Now you can build a signed .apk in release mode:
- Open a command-line and navigate to the root of your project directory.
- Use Ant to compile your project in release mode:
ant release
- When prompted, enter you keystore and alias passwords.
Caution: As described above, your password will be visible on the screen.
This creates your Android application .apk file inside the project bin/
directory, named<your_project_name>-release.apk
. This .apk file has been signed with the private key specified inant.properties
and aligned with zipalign
. It's ready for installation and distribution.
ant release后會生成一個
<your_project_name>-release.apk的版本
啊,世界清靜了~~~ 最后就是安裝了。 由于使用了新的簽名,必須先卸載原來安裝的程序才可以安裝。 /////////////////////////////////////////////////////////////////////////////////////////////////////////////
常見問題:
生成的debug和release有什么區別 大小差不多
Support for a true debug build. Developers no longer need to add the android:debuggable attribute to the tag in the manifest — the build tools add the attribute automatically. In Eclipse/ADT, all incremental builds are assumed to be debug builds, so the tools insert android:debuggable="true". When exporting a signed release build, the tools do not add the attribute. In Ant, a ant debug command automatically inserts the android:debuggable="true" attribute, while ant release does not. If android:debuggable="true" is manually set, then ant release will actually do a debug build, rather than a release build.
posted on 2012-08-15 10:11
風輕云淡 閱讀(2295)
評論(0) 編輯 收藏 引用 所屬分類:
cocos2d