网上关于cordova为安卓应用程序生成签名并生成发布版本的方法有很多,但是对应的方法要不就是通过eclipse导入然后借用eclipse发布,要不就是对应的cordova版本过低(当时还是用ant来build项目的)。查到了方法但都没有解答这个问题 (题目),所以小白要上阵了~ (参考:Cordova 3.5 为android APK签名,生成可发布程序文件)
原材料:Cordova 5.4.0; Java SE 8
当笔者建好一个PhoneGap应用后:
- 1
- 1
得到的是 (位于 项目路径\platforms\Android\build\outputs\apk)
- 1
- 2
- 1
- 2
笔者看到这里顿时傻眼了,这是啥啊?于是导入手机安装(真是犯傻)不行啊,于是想解决办法:
1)首先咱们要生成一个签名,(作为学过电子签名法的笔者就不装逼了),不知道这里的签名是否是电子签名的一种,但是生成原理是一样一样的:
- 1
- 1
这里是调用了Java的一个生成keystore文件的东西(也是一个文件,名叫 “keytool.exe”,在Java根目录/bin中能找到,由于笔者直接在command prompt中调用的,所以已经把“%JAVA_HOME%\bin;”加到了环境变量中)
用英语翻译一下 上面那行生成keystore的命令:(装逼开始可跳过,参考:java中Keytool的使用总结)
use keytool.exe to generate a key, which will be stored in XXXX-release.keystore and can also called (its alias is) XXXX,using RSA algorithm, with a validity of 40000 days.
好了!别忘了keystore的位置,为了之后方便(懒)可把keystore拷贝至“项目路径\platforms\android”下面。
对了再唠叨一句:Java会让你输入密码,输入密码时,你是不会在显示屏上看到密码的,别以为是屏幕卡了啊= =
2)然后自然就是用这个新诞生的keystore来为咱的应用签名:
且慢!!为PhoneGap应用签名之前还要配置一下(尼玛)
这里原创内容才开始:
笔者观察了一下新版Cordova,用的是gradle来build项目,所以网上的那些设置ant.properties的解决方法都排除掉,不能用,为了看看到底咱需要什么才能让cordova知道哪里找keystore,笔者打开了 “项目路径\platforms\android”下面的build.gradle文件,里面赫然写着:
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
这是啥玩意?笔者也暂时解释不清,但是通过关键字眼可以看出,咱们需要一个release-signing.properties 来提示gradle keystore的位置,于是在”项目路径\platforms\android”下面新建一个release-signing.properties :
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
好了,终于可以给apk签名了T T,
- 1
- 1
这之后,咱就能看见在 “项目路径\platforms\android\build\outputs\apk”下有咱signed过的release版本apk了。
笔者写到这里有点瞌睡了,如有错误,请大神指出(鞠躬)~