我们使用Android Studio
运行或测试我们的app,它使用一个默认的debug.keystore进行签名。
这个默认签名(keystore
)是不需要密码的,它的默认位置在 $HOME/.android/debug.keystore,如果不存在Android Studio会自动创建它。
例如我的debug.keystore
就在C:\Users\Administrator\.android\debug.keystore
。在我们正式发布项目的时候是不能使用debug.keystore的。
官方地址: https://developer.android.com/studio/publish/app-signing.html(墙)
下面我们来介绍如何使用Android Studio
创建一个新的keystore
,并发布我们的apk
第一步: Build --->>Generate Signed APK
第二步:Create New
第三步:填写相关信息,里面内容什么含义自行Google
第四步:输入密码
第五步:选择发布app的路径默认即可 选择release方式发布
签名打包时签名版本(Signature Versions)的选择
这边涉及到V1和V2的选择:
结论:
- 一定可行的方案: 只使用 v1 方案
- 不一定可行的方案:同时使用 v1 和 v2 方案
- 对 7.0 以下一定不行的方案:只使用 v2 方案
在 Android 7.0 以上版本的设备上,APK 可以根据Full Apk Signature(v2 方案) 或者 JAR-signed( v1方案)进行验证;
而对于7.0以下版本的设备其会忽略 v2 版本的签名,只验证 v1 签名
下面我们来配置如何在debug的时候使用我们自定义的keystore。
第一步:还是要新建一个keystore,就用上面的也可以。
第二步:在项目上右键 Open Module Settings.然后看图就可以了,选择路径,把密码填上,该填的都填好。
第三步:分别选择debug和release 都设置为刚才填进去的keystore。
点击OK即可,然后查看APP的配置文件应该是这样的。
android {
signingConfigs {
android_studio_app {
keyAlias 'androidstudioapp'
keyPassword 'mypassword'
storeFile file('D:/Android/keystore/android_studio_app.jks')
storePassword 'mypassword'
}
}
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.example.administrator.myapplication"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.android_studio_app
}
debug {
signingConfig signingConfigs.android_studio_app
}
}
}