1. 如何对android的APP进行签名
1、在Android Studio中打开工程,点击“Build”菜单下的“Generate Signed APK”。
2. APK重新签名或者更换APK签名版本
在某些特殊情况下,需要对已经生成的apk进行重新签名,或者对已经生成的apk更换签名版本(v1/v2/v3/v4)。如何实现呢? 可以通过命令行对已生成的apk进行处理。
apksigner.jar通常包含在Android SDK中可。路径一般是在Android SDK/build-tools/ {SDK版本} /lib/apksigner.jar
不同的SDK版本中均有一个,取最新版本的就好了。
使用压缩软件打开apk,删除包内 /META-INF/ 文件夹及文件夹内所有文件,并重新压缩文件。
准备好签名证书及相关密码和需要刚处理过得apk文件
示例:
执行命令
接着输入证书保护密码及别名密码。
可以从此命令的输出中看出当前生成的apk签名情况。
可以通过如下命令行参数进行控制
--v1-signing-enabled true
--v2-signing-enabled true
--v3-signing-enabled false
使用的签名版本还跟apk编译时使用的最低SDK版本有关, 即min-sdk-version的值。如果设置的值大于等于26,即使添加--v1-signing-enabled true 也无法通过上述步骤签V1版本的签名--仅有V2签名(Android Studio也是)。
可以对最后生成的apk通过执行如下命令尝试:
3. android开发 怎么给apk文件用已有的签名文件进行签名,不用eclipse
给apk文件签名主要分三步:
1、创建证书
2、签名
3、优化(可选)
1)使用jdk的keytool工具生成签名用的证书> keytool -genkey -v -alias CERT -keyalg RSA -keysize 2048 -validity 10000 -keystoreCERT.keystore 创建过程需要输入一些标识信息和密码,一些重要的参数值说明如下(根据自己的需要要进行相应的修改): CERT.keystore ---- 证书保存的文件名 CERT ---- 证书的别名 10000 ---- 10000天的有效期 2048 ---- 默认为1024 bits,Android 建议使用2048 bits或更高其他的详细信息可以使用keytool -help查看帮助 证书生成后使用如下命令可以查看证书的信息:> keytool -list -alias CERT -keystore CERT.keystore
2)使用jdk的jarsigner工具对apk文件签名> jarsigner -verbose -keystore CERT.keystore to_sign.apk CERT 签名过程需要输入证书的密码,一些重要的参数值说明如下(根据自己的需要要进行相应的修改): CERT.keystore ---- 证书保存的文件名 CERT ---- 证书的别名 待签名的apk文件根根目录下如果有文件夹“META-INFO”,请先删除(重新签名就需要这样做)。如果不想创建过程输出太多信息,可以删除“-verbose” 。上述签名会直接覆盖原来的文件,如果不想被覆盖而签名为另外的新文件 signed.akp,只需将 to_sign.apk 改为 -signedjar to_sign.apk signed.akp 即可。签名后可以使用如下命令验证是否签名成功: > jarsigner -verify to_sign.apk 如果需要查看更详细的验证信息,可修改为:> jarsigner -certs -verbose -verify to_sign.apk
3)使用android sdk的zipalign工具优化已签名的apk文件> zipalign -v 4 unaligned.apk aligned.apk 注意要在签名后再zipalign。这个工具不是jdk自带的,而是在%ANDROID_HOME%\tools\zipalign.exe。
4. 如何对Android的APP进行签名
1.签名的步骤
a.创建key
b.使用步骤a中产生的key对apk签名
2.具体操作
方法一: 命令行下对apk签名(原理)
创建key,需要用到keytool.exe (位于jdk1.6.0_24jrein目录下),使用产生的key对apk签名用到的是jarsigner.exe (位于jdk1.6.0_24in目录下),把上两个软件所在的目录添加到环境变量path后,打开cmd输入
D:>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore
/*说明:-genkey 产生密钥
-alias demo.keystore 别名 demo.keystore
-validity 40000 有效期限4000天
-keystore demo.keystore */
D:>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*说明:-verbose 输出签名的详细信息
-keystore demo.keystore 密钥库位置
-signedjar demor_signed.apk demo.apk demo.keystore 正式签名,三个参数中依次为签名后产生的文件demo_signed,要签名的文件demo.apk和密钥库demo.keystore.*/
注意事项:android工程的bin目录下的demo.apk默认是已经使用debug用户签名的,所以不能使用上述步骤对此文件再次签名。正确步骤应该是:在工程点击右键->Anroid Tools-Export Unsigned Application Package导出的apk采用上述步骤签名。
方法二:使用Eclipse导出带签名的apk
Eclipse直接能导出带签名的最终apk,非常方便,推荐使用,步骤如下:
第一步:导出。
第二步:创建密钥库keystore,输入密钥库导出位置和密码,记住密码,下次Use existing keystore会用到。
第三步:填写密钥库信息,填写一些apk文件的密码,使用期限和组织单位的信息。
第四步:生成带签名的apk文件,到此就结束了。
第五步:如果下次发布版本的时候,使用前面生成的keystore再签名。
第六步:Next,Next,结束!
方法三:使用IntelliJ IDEA导出带签名的apk
方法步骤基本和Eclipse相同,大概操作路径是:菜单Tools->Andrdoid->Export signed apk。