Cordova 6安卓版本问题

时间:2017-03-04 14:17:58

标签: cordova crosswalk-project

我在Play商店发布了一个应用程序。我面临的问题是它看起来像Cordova 6(我刚升级到6.5)已经改变了发布版本的生成。这是我的config.xml

cordova build android --release -- --minSdkVersion=21

我使用以下规则为我的应用构建本机和人行横道构建:

  • 如果API版本> = 21,请安装原生版本cordova plugin add cordova-plugin-crosswalk-webview && cordova build android --release
  • 对于其他版本,请安装crosswalk版本android-versionCode="102390" version="1.2.39"

以下是我发布的应用的版本代码: enter image description here

现在,在将cordova升级到6.5后,当我完成构建过程时,将版本更改为1.2.39 ,人行横道版本使用了正确的版本代码102392用于ARM,102394用于x86。 但是,原生版本现在的版本代码为10239

这会导致升级问题,因为我当前的本机代码版本是“102389”,即> “10239”

我尝试在我的config.xml中添加android-versionCode,如下所示:

$ brew install Caskroom/cask/xamarin-studio

然而这导致

  1. Xwalk x86版本= 1023904
  2. Xwalk arm版本= 1023902
  3. 原生版本= 102390
  4. 如您所见,Xwalk版本的数量远远超过现有的生产版本。 这也不对,因为即使在SDK> = 21 的设备中,Xwalk版本也会优先于原生版本,这是不受欢迎的。我该如何解决这个问题?

    核心问题是cordova xwalk构建多个arch文件,版本计算乘以10并添加平台代码。原生版本是作为一个包构建的,不会乘以10.旧版本的cordova似乎已经正确处理了这个。

1 个答案:

答案 0 :(得分:0)

我通过为原生构建添加手动版本代码来实现解决方法。我真的不应该这样做。它有效,但我不打算接受这一点,希望我能得到更好的答案。

以下是本机(非XWalk构建)的附加代码

APPVER=`cat config.xml | grep "widget " | sed 's/.* version=\"\([^\"]*\)\" xmlns.*/\1/'`
a=( ${APPVER//./ } )
vcode="$(((a[0]*10000+a[1]*100+a[2])))9"
cordova build android --release -- --minSdkVersion=21 --versionCode=${vcode}

现在生成符合预期的版本代码: enter image description here