node - Cordova 生成android签名apk 补充

2 篇文章 0 订阅
2 篇文章 0 订阅

网上关于cordova为安卓应用程序生成签名并生成发布版本的方法有很多,但是对应的方法要不就是通过eclipse导入然后借用eclipse发布,要不就是对应的cordova版本过低(当时还是用ant来build项目的)。查到了方法但都没有解答这个问题 (题目),所以小白要上阵了~ (参考:Cordova 3.5 为android APK签名,生成可发布程序文件) 
原材料:Cordova 5.4.0; Java SE 8 
当笔者建好一个PhoneGap应用后:

cordova build android
 
 
  • 1
  • 1

得到的是 (位于 项目路径\platforms\Android\build\outputs\apk)

XXXX-debug.apk
XXXX-debug-unaligned.apk
 
 
  • 1
  • 2
  • 1
  • 2

笔者看到这里顿时傻眼了,这是啥啊?于是导入手机安装(真是犯傻)不行啊,于是想解决办法: 
1)首先咱们要生成一个签名,(作为学过电子签名法的笔者就不装逼了),不知道这里的签名是否是电子签名的一种,但是生成原理是一样一样的:

keytool -genkey -v -keystore XXXX-release.keystore -alias XXXX -keyalg RSA -validity 40000(推荐取大些,原因是啥我也不知道= =,估计是为了避免过期后再生成,懒呗!)
 
 
  • 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文件,里面赫然写着:

if (ext.cdvDebugSigningPropertiesFile == null && file('debug-signing.properties').exists()) {
    ext.cdvDebugSigningPropertiesFile = 'debug-signing.properties'
}
if (ext.cdvReleaseSigningPropertiesFile == null && file('release-signing.properties').exists()) {
    ext.cdvReleaseSigningPropertiesFile = 'release-signing.properties'
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这是啥玩意?笔者也暂时解释不清,但是通过关键字眼可以看出,咱们需要一个release-signing.properties 来提示gradle keystore的位置,于是在”项目路径\platforms\android”下面新建一个release-signing.properties :

key.store=XXXX-release.keystore(笔者的理解是:与build.gradle文件同根同源,在一个路径下所以直接写文件名)
key.alias=XXXX
key.store.password=你的store密码
key.alias.password=你的alias密码(如果在生成keystore时输入了y来统一两者密码一样那就和上一行一样)
 
 
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

好了,终于可以给apk签名了T T,

cordova build android –release
 
 
  • 1
  • 1

这之后,咱就能看见在 “项目路径\platforms\android\build\outputs\apk”下有咱signed过的release版本apk了。 
笔者写到这里有点瞌睡了,如有错误,请大神指出(鞠躬)~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值