一、使用脚本生成keystore文件
- 随便创建一个文件夹用于管理keystore文件,比如
cd Desktop
mkdir MyKeys
cd MyKeys
- 新建keystore文件
keytool -genkey -v -keystore testdemo-release.keystore -alias key0 -keyalg RSA -keysize 2048 -validity 10000
这里的参数说明:
-genkey 表示创建一个新的密钥。
-v 表示详细输出。
-keystore 后面跟着密钥库的名称和路径(例如:testdemo-release.keystore)。
-alias 是密钥的别名(-alias key0,一般默认为key0)。
-keyalg 是密钥算法,这里使用的是RSA(非对称加密算法)。
-keysize 是密钥的长度,这里使用的是2048位。
-validity 是密钥的有效期,这里是10000天。
在命令行中运行上述命令时,你需要回答一系列问题,如密钥库密码、密钥别名密码、组织单位、组织名称、城市、省份、国家代码等。
请确保替换命令中的my-release-key.keystore和alias_name为你想要的文件名和别名,并根据需要设置其他参数。
- 生成后可看见生成的.keystore文件,可以自己改名
二、使用keystore 导出PKCS12格式
- key0 是上一步.keystore设置的-alias的别名,上一步设置的是key0 ,因此这里是key0
- 如果生成.keystore的-alias没有设置为key0但是在PKCS12设置-srcalias key0 则报错:keytool 错误: java.lang.Exception: 别名 <key0> 不存在
keytool -importkeystore \
-srckeystore /Users/用户名/Desktop/MyKeys/testdemo-release.keystore \
-destkeystore /Users/用户名/Desktop/MyKeys/test.p12 \
-deststoretype PKCS12 \
-srcalias key0 \
-destalias key0
三、将PKS12转换为JKS格式
keytool -importkeystore \
-srckeystore /Users/用户名/Desktop/MyKeys/test.p12 \
-destkeystore /Users/用户名/Desktop/MyKeys/test.jks \
-srcstoretype PKCS12 \
-deststoretype JKS
### 查看证书信息
keytool -list -v -keystore /Users/用户名/Desktop/MyKeys
四、生成的所有文件
五、打包apk
方法一:使用jenkins自动管理打包
- 如果使用jenkins来自动管理打包,需要把文件拷贝到如下路径,配合Fastlane打包apk
/Users/用户名/.jenkins/workspace/app_Android/
方法二:使用Android Studio 打包apk
- 前面已经生成了.jks文件
- 打开Android Studio–> Build -->Generate Signed Bundle or APK–>APK ,选择
- 选择已存在的jks
- 选择debug或者release,后生成apk包 这时候别人手机安装上可打开app
- 等待生成就好了