用命令列發布android程式

來源:互聯網
上載者:User

標籤:pre   自己   android   lld   log   oid   blog   程式   build.xml   

在開發android程式的過程中,我們使用ant debugant installd這兩個命令就夠了,不涉及到APK的簽名。

但是在正式發布我們的Android程式時,需要對APK簽名。ant release產生一個release版程式。

ant release在package這一步會產生一個未簽名的apk:xxx-release-unsigned.apk。然後試圖用ant.properties裡面給出的keystore檔案對這個apk簽名,產生xxx-release.apk。如果ant.properties沒有給出keystore,不會產生簽名的apk。這時你運行ant installr就會失敗,因為ant找不到xxx-release.apk

解決方案有兩種:(1)在ant.properties檔案中設定key.store和key.alias,然後重新運行ant releaseant installr命令。(2)自己用命令對xxx-release-unsigned.apk簽名和zipalign,產生xxx-release.apk,然後再運行ant installr

不管用哪種方法,我們都要先準備好keystore檔案。JDK提供了keytool程式,可以產生key.store檔案。

keytool.exe -genkey -alias jollywing.android.keystore -keyalg RSA -validity 36500 -keystore android.keystore
  • -genkey 表示要進行的動作是產生keystore.
  • -alias 是這個keystore的別名。
  • -keyalg 表示產生金鑰組的演算法。
  • -validity 表示有效期間,這裡36500接近100年。
  • -keystore 指定最終產生的keystore檔案名稱。

運行命令,會提示輸入密鑰庫口令。這個口令在給apk簽名時還會問到。
然後會詢問一些資訊,你的姓名、你的組織、你所在的地區等。
最後還會詢問key.alias的密鑰口令,直接斷行符號,表示使用和密鑰庫相同的口令。

命令運行成功,還會得到一個警告資訊:

JKS 密鑰庫使用專用格式。建議使用 "keytool -importkeystore -srckeystore android.keystore -destkeystore android.keystore -deststoretype pkcs12" 遷移到行業標準格式 PKCS12。

我們可以運行警告資訊中的命令,把密鑰庫轉換成標準格式。這一步可選。

然後我們可以簽名了。兩種方式,一種是用ant release命令簽名,另一種是手動簽名。

如果用ant release命令簽名,我們把android.keystore放在工程根目錄下,即和build.xml和ant.properties相同的目錄。然後編輯ant.properties,增加以下內容。

key.store=android.keystorekey.alias=jollywing.android.keystorekey.store.password=<剛才設定的密鑰庫口令>key.alias.password=<剛才設定的密鑰庫別名口令>

如果android.keysotre沒放在工程根目錄下,最好使用絕對路徑指明keystore檔案放在哪裡。

然後ant releaseant installr就OK了。

最後再講一下自己用命令對xxx-release-unsigned.apk進行簽名。

使用jdk中的jarsigner命令(apk就是一個jar包檔案)。

jarsigner -keystore <keystore檔案的路徑> <xxx-release-unsigned.apk的路徑> 密鑰庫別名

命令運行後,xxx-release-unsigned.apk就是已經簽名的了。

zipalign -v 4 <xxx-release-unsigned.apk的路徑> <要產生的xxx-release.apk的路徑>

zipalign命令放在android sdk的build-tools目錄下。

好了,一個發行就緒的apk新鮮出爐了,adb install <xxx-release.apk的路徑>試試看吧。如果xxx-release.apk放在工程的bin目錄下,也可以直接運行ant installr

2017-11-25 周六

用命令列發布android程式

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.