新聞中心
Andriod系統(tǒng)要求所有的程序經(jīng)過(guò)數(shù)字簽名才能安裝。

創(chuàng)新互聯(lián)公司2013年開(kāi)創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元二道江做網(wǎng)站,已為上家服務(wù),為二道江各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
在release模式下編譯程序, 在Package面版上按project右鍵,選擇Android Tools>Export Application Package.或者你可以點(diǎn)擊Manifest Editor, overview 頁(yè)面上的“Exporting the unsigned .apk”連接 ,導(dǎo)出未簽名apk文件。保存.apk文件之后,用Jarsigner及你自己的密鑰給apk文件簽名 ,如果沒(méi)有密鑰, 你可以用Keystore創(chuàng)建密鑰和密鎖。如果已經(jīng)有一個(gè)密鑰了,如公共密鑰,就可以給.apk文件簽名了。
Android程序的簽名和Symbian類似都可以自簽名(Self-signed),但是在Android平臺(tái)中證書初期還顯得形同虛設(shè),平時(shí)開(kāi)發(fā)時(shí)通過(guò)ADB接口上傳的程序會(huì)自動(dòng)被簽有Debug權(quán)限的程序。需要簽名驗(yàn)證在上傳程序到Android Market上時(shí)大家都已經(jīng)發(fā)現(xiàn)這個(gè)問(wèn)題了。Android signed制作方法
首先在Android開(kāi)發(fā)時(shí)沒(méi)有安裝JDK的網(wǎng)友在Sun官方網(wǎng)站下載JDK:http://www.java.net/download/jdk ... 6-p-12_sep_2008.exe,其實(shí)僅需要中的Keytool和Jarsigner詳細(xì)的簽名步驟:
***步
- C:\Program Files\Java\jdk1.6.0_10\bin>keytool -genkey -alias android123.keystore
- -keyalg RSA -validity 20000 -keystore android123.keystore
輸入keystore密碼:[密碼不回顯]
再次輸入新密碼:[密碼不回顯]
您的名字與姓氏是什么
[Unknown]: android123
您的組織單位名稱是什么?
[Unknown]: www.android123.com.cn
您的組織名稱是什么?
[Unknown]: www.android123.com.cn
您的組織名稱是什么?
[Unknown]: www.android123.com.cn
您所在的城市或區(qū)域名稱是什么?
[Unknown]: New York
您所在的州或省份名稱是什么?
[Unknown]: New York
該單位的兩字母國(guó)家代碼是什么
[Unknown]: CN
- CN=android123, OU=www.android123.com.cn, O=www.android123.com.cn, L=New York, ST
=New York, C=CN 正確嗎?
[否]: Y
輸入
其中參數(shù)-validity為證書有效天數(shù),這里我們寫的大些20000天。還有在輸入密碼時(shí)沒(méi)有回顯,只管輸入就可以了,一般位數(shù)建議使用20位,***需要記下來(lái)后面還要用。
接下來(lái)我們開(kāi)始為apk文件簽名了。
第二步
執(zhí)行下面這句
- jarsigner -verbose -keystore android123.keystore -signedjar android123_signed.apk android123.apk android123.keystore
就可以生辰簽名的apk文件,這里輸入文件android123.apk,最終生成android123_signed.apk為Android簽名后的 APK執(zhí)行文件。下面提示輸入的密碼和keytool輸入的一樣就行了,如圖:
本人測(cè)試時(shí)使用:jarsigner -verbose -keystore android123.keystore android123.apk android123
有關(guān)Android程序發(fā)布和簽名可以查看SDK中 http://code.google.com/android/devel/sign-publish.html 一文.
附上keytool參數(shù)以及jarsigner參數(shù):
#p#
keytool用法:
-certre
[-v] [-protected][-alias <別名>][-sigalg
-changealias
[-v] [-protected] -alias <別名> -destalias <目標(biāo)別名>[-keypass <密鑰庫(kù)口令>][-keystore <密鑰庫(kù)>][-storepass <存儲(chǔ)庫(kù)口令>][-storetype <存儲(chǔ)類型>][-providername <名稱>][-providerclass <提供方類名稱> [-providerarg <參數(shù)>]] ... [-providerpath <路徑列表>]
-delete
[-v] [-protected] -alias <別名>][-keystore <密鑰庫(kù)>][-storepass <存儲(chǔ)庫(kù)口令>][-storetype <存儲(chǔ)類型>][-providername <名稱>][-providerclass <提供方類名稱> [-providerarg <參數(shù)>]] ... [-providerpath <路徑列表>]
-exportcert
[-v] [-rfc] [-protected] [-alias <別名>][-file <認(rèn)證文件>][-keystore <密鑰庫(kù)>][-storepass <存儲(chǔ)庫(kù)口令>][-storetype <存儲(chǔ)類型>][-providername <名稱>] [-providerclass <提供方類名稱> [-providerarg <參數(shù)>]] ... [-providerpath <路徑列表>]
-genkeypair
[-v] [-protected] [-alias <別名>][-keyalg
-genseckey
[-v] [-protected] [-alias <別名>] [-keypass <密鑰庫(kù)口令>] [-keyalg
-help
-importcert [-v] [-noprompt] [-trustcacerts] [-protected] [-alias <別名>] [-file <認(rèn)證文件>] [-keypass <密鑰庫(kù)口令>] [-keystore <密鑰庫(kù)>] [-storepass <存儲(chǔ)庫(kù)口令>] [-storetype <存儲(chǔ)類型>] [-providername <名稱>] [-providerclass <提供方類名稱> [-providerarg <參數(shù)>]] ... [-providerpath <路徑列表>]
-importkeystore
[-v] [-srckeystore <源密鑰庫(kù)>] [-destkeystore <目標(biāo)密鑰庫(kù)>] [-srcstoretype <源存儲(chǔ)類型>] [-deststoretype <目標(biāo)存儲(chǔ)類型>] [-srcstorepass <源存儲(chǔ)庫(kù)口令>] [-deststorepass <目標(biāo)存儲(chǔ)庫(kù)口令>] [-srcprotected] [-destprotected] [-srcprovidername <源提供方名稱>] [-destprovidername <目標(biāo)提供方名稱>] [-srcalias <源別名> [-destalias <目標(biāo)別名>] [-srckeypass <源密鑰庫(kù)口令>] [-destkeypass <目標(biāo)密鑰庫(kù)口令>]] [-noprompt] [-providerclass <提供方類名稱> [-providerarg <參數(shù)>]] ... [-providerpath <路徑列表>]
-keypasswd
[-v] [-alias <別名>] [-keypass <舊密鑰庫(kù)口令>] [-new <新密鑰庫(kù)口令>] [-keystore <密鑰庫(kù)>] [-storepass <存儲(chǔ)庫(kù)口令>] [-storetype <存儲(chǔ)類型>] [-providername <名稱>] [-providerclass <提供方類名稱> [-providerarg <參數(shù)>]] ... [-providerpath <路徑列表>] -list
[-v | -rfc] [-protected]
[-alias <別名>]
[-keystore <密鑰庫(kù)>] [-storepass <存儲(chǔ)庫(kù)口令>]
[-storetype <存儲(chǔ)類型>] [-providername <名稱>]
[-providerclass <提供方類名稱> [-providerarg <參數(shù)>]] ...
[-providerpath <路徑列表>]
-printcert
[-v] [-file <認(rèn)證文件>]
-storepasswd
[-v] [-new <新存儲(chǔ)庫(kù)口令>]
[-keystore <密鑰庫(kù)>] [-storepass <存儲(chǔ)庫(kù)口令>]
[-storetype <存儲(chǔ)類型>] [-providername <名稱>]
-providerclass <提供方類名稱> [-providerarg <參數(shù)>]] ...
[-providerpath <路徑列表>]
jarsigner用法:
[選項(xiàng)] jar 文件別名
jarsigner -verify [選項(xiàng)] jar 文件
[-keystore
[-storepass <口令>] 用于密鑰庫(kù)完整性的口令
[-storetype <類型>] 密鑰庫(kù)類型
[-keypass <口令>] 專用密鑰的口令(如果不同)
[-sigfile <文件>] .SF/.DSA 文件的名稱
[-signedjar <文件>] 已簽名的 JAR 文件的名稱
[-digestalg <算法>] 摘要算法的名稱
[-sigalg <算法>] 簽名算法的名稱
[-verify] 驗(yàn)證已簽名的 JAR 文件
[-verbose] 簽名/驗(yàn)證時(shí)輸出詳細(xì)信息
[-certs] 輸出詳細(xì)信息和驗(yàn)證時(shí)顯示證書
[-tsa
[-tsacert <別名>] 時(shí)間戳機(jī)構(gòu)的公共密鑰證書
[-altsigner <類>] 替代的簽名機(jī)制的類名
[-altsignerpath <路徑列表>] 替代的簽名機(jī)制的位置
[-internalsf] 在簽名塊內(nèi)包含 .SF 文件
[-sectionsonly] 不計(jì)算整個(gè)清單的散列
[-protected] 密鑰庫(kù)已保護(hù)驗(yàn)證路徑
[-providerName <名稱>] 提供者名稱
[-providerClass <類> 加密服務(wù)提供者的名稱
[-providerArg <參數(shù)>]] ... 主類文件和構(gòu)造函數(shù)參數(shù)
新聞標(biāo)題:Android程序的簽名
本文網(wǎng)址:http://fisionsoft.com.cn/article/cojgdip.html


咨詢
建站咨詢
