Android资源文件local.properties使用以及Gradle文件中的值、Manifests文件中的值

1、没有v1签名问题

从Android Studio项目中生成一个签名的apk,但是当同时启用签名方案v1和v2时,APK签名方案v1似乎不起作用,v1似乎失效了,apksigner -verify -v返回:

Verifies

Verified using v1 scheme (JAR signing): false

Verified using v2 scheme (APK Signature Scheme v2): true

Verified using v3 scheme (APK Signature Scheme v3): false

Number of signers: 1

可以单独使用v1或v2进行验证。

app支持的最低API级别太高minSdkVersion>=24(android 7), 只有minSdkVersion<=23(android 6),才支持v1签名。

注:只有v2签名的apk,包体中不含签名文件。只有v1签名或v1+v2签名的apk,包体中有签名文件CERT.SF、Cert.RSA

2、不同环境(sit/uat/prd)使用不同签名文件自动打包

2.1、在与app文件夹同级目录下添加3个文件:sitstore.properties, uatstore.properties, prdstore.properties

prdstore.properties

APP_KEY_ALIAS=testKey

APP_KEY_PASSWORD=test123456

APP_STORE_FILE=../keystore/testkey.keystore

APP_STORE_PASSWORD=test123456

2.2、配置build.gradle(app)

Properties keyProperties = new Properties()

android {

...

productFlavors {

sit {

...

keyProperties.load(project.rootProject.file('sitstore.properties').newDataInputStream())

}

uat {

...

keyProperties.load(project.rootProject.file('uatstore.properties').newDataInputStream())

}

prod {

...

keyProperties.load(project.rootProject.file('store.properties').newDataInputStream())

}

}

/**

* 签名信息

*/

signingConfigs {

config {

keyAlias keyProperties.getProperty("APP_KEY_ALIAS")

keyPassword keyProperties.getProperty("APP_KEY_PASSWORD")

storeFile file(keyProperties.getProperty("APP_STORE_FILE"))

storePassword keyProperties.getProperty("APP_STORE_PASSWORD")

}

}

/**

* 不同版本

*/

buildTypes {

release {

...

signingConfig signingConfigs.config

}

debug {

...

signingConfig signingConfigs.config

}

unsignedRelease {

...

signingConfig null

}

}

}

3、查看签名信息方法

jarsigner/apksigner详细使用方式

3.1、jarsigner

jarsigner -verbose -keystore keystore文件 -signedjar 签名以后的apk名称 要签名的apk keystore中的别名

只能查看含v1方式签名的apk

3.2、apksigner

apksigner sign --ks keystore位置 --v3-signing-enabled false apk位置

可以查看使用了v1v2v3哪种签名方案,无法查看签名文件信息

3.3、解压查看

(1)将apk解压

(2)找到META-INF 下的.RSA文件

(3)在控制台上输入命令:"keytool -printcert -file xxx.RSA",即可查看签名文件

keytool -printcert -file xxx.RSA

只能查看含v1方式签名的apk

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: