场景:要求基于系统方案商提供了的Android系统进行产品开发 提供内容:Android 系统,系统签名(.pk8,.pem) ,接口文档等等 文章重点:如何把 .pk8、.pem 这样的系统签名文件生成 APP 开发过程中build.gradle 可使用的 storeFile ?
@echo 即将为您把系统签名转成 APP 可用的 .jks 签名文件
set sys_pk8="D:\xxx\xxx\platform.pk8"
set sys_x509_pem="D:\xxx\xxx\platform.x509.pem"
set out_name=sign_debug.jks
set out_alias="signdebug"
set out_password=123456
set openssl="D:\xxx\xxx\Git\usr\bin\openssl.exe"
set keytool="D:\xxx\xxx\Java\jre1.8.0_251\bin\keytool.exe"
@echo 正在使用 Git 的 openssl 将 pk8 解密为 pem 文件, 此时将会生成一个 signdebug.pem 文件
%openssl% pkcs8 -inform DER -nocrypt -in %sys_pk8% -out signdebug.pem
::将两个pem 文件导入 platform.p12 文件中,
::并设置 别名(keyAlias)为:signdebug 和 密码(keyPassword)为:123456 (别名和密码可自定义),且同时会新生成 platform.p12
%openssl% pkcs12 -export -in %sys_x509_pem% -inkey signdebug.pem -out platform.p12 -password pass:%out_password% -name %out_alias%
::使用 keytool 将之前生成的 platform.p12 导入 sign_debug.jks 签名中,并设置 storePassword 密码(123456)
::此时需要正确提供 keyPassword 密码
::此时即生成了需要的 sign_debug.jks 签名文件
%keytool% -importkeystore -deststorepass 123456 -destkeystore %out_name% -srckeystore platform.p12 -srcstoretype PKCS12 -srcstorepass %out_password%
::查看生成的 签名信息
%keytool% -list -v -keystore %out_name%
pause
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "com.itaso.xxx"
minSdkVersion 23
targetSdkVersion 30
versionCode 1
versionName "1.0.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
signingConfigs {
debug {
storePassword 'storePassword'
keyAlias 'keyAlias'
keyPassword 'keyPassword'
storeFile file('../xxx.keystore')
}
release {
storePassword 'storePassword'
keyAlias 'keyAlias'
keyPassword 'keyPassword'
storeFile file('../xxx.keystore')
}
sign_debug{
storePassword '123456'
keyAlias 'signdebug'
keyPassword '123456'
storeFile file('../sign_debug.jks')
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.sign_debug
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
......
|