Ale*_*sov 4 cordova android-gradle-plugin ionic-framework crosswalk-runtime crosswalk
我需要为32位(armeabi-v7a和x86)和64位(arm64-v8a和x86_64)平台构建ionic / cordova应用程序。我使用命令构建了四个单独的APK,ionic build android --release
并且ionic build android --release --xwalk64bit
一切顺利,除了versionCode(将版本设置为0.0.11)略微偏离-参见下文
问题是x86和x86_64必须具有比ARM apks高的versionCode。这是必需的,因为x86设备能够处理ARM库,但是没有ARM设备能够处理x86库。因此,我们必须保持x86 APK的版本代码高于ARM apk的版本代码,并且正确的APK将进入正确的设备。
问题是版本代码既由build.gradle设置,又由crosswalk mobile-xwalk.gradle修改,这使用上述构建方法给出了错误的版本。我尝试使用config.xml中的android-versionCode参数并将cdvVersionCode设置为build.gradle 来设置versionCode (请参阅http://cordova.apache.org/docs/en/6.x/guide/platforms/android/index。 html#configuring-gradle),但没有运气。
我最终通过手动更改mobile-xwalk.gradle来为64位apk设置正确的versionCode 来解决该问题(如第二个屏幕截图所示)。这似乎不是我的最佳解决方案
问题-是否有更好的方法来解决此问题?
似乎cordova-plugin-crosswalk-webview中存在错误。来自platforms / android / build.gradle的以下代码部分(用于构建32位):
productFlavors {
armv7 {
versionCode defaultConfig.versionCode*10 + 2
ndk {
abiFilters "armeabi-v7a", ""
}
}
x86 {
versionCode defaultConfig.versionCode*10 + 4
ndk {
abiFilters "x86", ""
}
}
all {
ndk {
abiFilters "all", ""
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是versionCode * 10,如所见...以及来自platforms / android / cordova-plugin- crosswalk -webview / YOUR_APP_SUFFIX -xwalk.gradle的代码部分(用于构建64位):
productFlavors {
x86_64 {
versionCode defaultConfig.versionCode + 6
ndk {
abiFilters "x86_64", ""
}
}
arm64 {
versionCode defaultConfig.versionCode + 9
ndk {
abiFilters "arm64-v8a", ""
}
}
}
Run Code Online (Sandbox Code Playgroud)
这只是versionCode。所以我通常将第二个文件更改为versionCode * 10来解决PlayMarket问题
归档时间: |
|
查看次数: |
1437 次 |
最近记录: |