在android中。可以非常快速的生成签名文件.jsk文件。步骤如下:
如果你已经有了签名文件.jsk那么就选择③导入文件,这时①中就是文件路径,④是keystore的密码,⑤是别名,⑥是文件的密码。
我们这里默认没有.jsk文件。所以点击②新建一个.jsk文件
这里我填写的全是模拟的数据:
路径可选择:我这选择的是:F:\daima\TestJsk\app
点击finish:
可以看到生成一个:app-release.apk
同时生成一个:testjsk.jks
ok:完成
这种方法是在假设你已经有了jsk文件的前提下面(这里我们用在第一中方法中生成的testjsk.jks)
可以看到在app的build.gradle中生成了:
signingConfigs {
config {
keyAlias 'test'
keyPassword '123456'
storeFile file('F:/daima/TestJsk/testjsk.jks')
storePassword '123456'
}
}
这里的Singing Config选择在 前一步的config即可;
可以看到在app的build.gradle中生成了:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
}
debug {
signingConfig signingConfigs.config
}
}
在android studio中的terminal 中使用gradlew assembleRelease命令,可以在outputs的apk中生成签名后的apk文件
找到java的jre的bin下的keytool.exe
在cmd中输入下面命令:keytool -list -v -keystore "jsk路径" -storepass 密码
需要注意的是签名密码千万不要暴露:
Android Studio 打包时 Signature Version V1 V2
前几天更新了一下Android Studio ,今天在打正式包的时候发现多了个签名版本选择:
从图中可以看到多了签名版本的选择,因为刚开始默认勾选的v2(Full APK Signature),没多想一路下一步下去,
结果在测试机上(5.0.1)一直都安装失败,想着和那个选择签名版本有关系,那就查查吧。
问题描述(v1和v2)
Android 7.0中引入了APK Signature Scheme v2,v1呢是jar Signature来自JDK
V1:应该是通过ZIP条目进行验证,这样APK 签署后可进行许多修改 - 可以移动甚至重新压缩文件。
V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。正因如此,现在在编译过程中,我们将压缩、调整和签署合并成一步完成。好处显而易见,更安全而且新的签名可缩短在设备上进行验证的时间(不需要费时地解压缩然后验证),从而加快应用安装速度。
解决方案一
v1和v2的签名使用
只勾选v1签名并不会影响什么,但是在7.0上不会使用更安全的验证方式
只勾选V2签名7.0以下会直接安装完显示未安装,7.0以上则使用了V2的方式验证
同时勾选V1和V2则所有机型都没问题
解决方案二
在app的build.gradle的android标签下加入如下