版权声明:将遇到的问题,记录下来,方便自己也方便大家。 本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/y491887095/article/details/80036738
上一节中我们提到了怎么打包出一个混合应用。那么当我们打包后,就需要发布了,发布需要使用不同的key,那么做这些key怎么生成呢?
1.使用JDK中提供的keytool命令来生成一个签名证书
当然当你使用这条命令的时候,请把keytool加入到环境变量中。
还有看到这些xxx了吗?他们其实是你的包名,在我们创建应用时,会提示你命名。如果没有及时命名,叫做Hello World也无所谓,可以改。不过,建议还是全部采用统一的名称便于维护。
keytool -genkey -v -keystore XXXX.keystore -alias XXXX -keyalg RSA -validity 365
一般,我们会有一个专有的key文件夹,放在根目录下,生成key的时候,可以用相对路径,直接将keystore放在key文件夹下。
详细命令参考:
http://www.cnblogs.com/kungfupanda/archive/2010/09/01/1815047.html
注意:
生成秘钥时的各种详细信息,应该有记录,以便以后查询。
举例如下:
秘钥口令87654321
密码87654321
姓名:yueshenghu
组织单位名称:
深圳航天智慧城市系统工程技术研究院
组织名称:
中国航天
城市名:
shenzhen
省市自治区名称:
guangzhou
国家、地区代码:
CN
同时,一旦签名成功,请将秘钥及时上传到git仓库上保存,否则一旦秘钥丢失会导致很多麻烦。
2.使用keytool生成的秘钥,对我们的app签名
如果使用build.json,这一步可以忽略。建议采用步骤“3”的方式。
当然,jarsigner 也是要加入到环境变量中。
jarsigner -keystore XXXX.keystore -digestalg SHA1 -sigalg MD5withRSA XXXX-release-unsigned.apk XXXX
3.生成打包描述文件
新建一个文件,文件名为build.json,放在根目录下。
文件具体内容,可以参考下面的内容。这个时候你会发现创建app时的别名有了作用。
{
"android": {
"debug": {
"keystore": "./key/daPengWater1.0.debug.keystore",
"storePassword": "ascsdapeng0815",
"alias": "daPengWater1.0.debug",
"password" : "ascsdapeng0815",
"keystoreType": ""
},
"release": {
"keystore": "./key/daPengWater1.0.keystore",
"storePassword": "ascsdapeng0815",
"alias": "daPengWater1.0",
"password" : "ascsdapeng0815",
"keystoreType": ""
}
}
}