我如何发布我的cordova-crosswalk app的x86和ARM apks?

时间:2015-02-24 21:41:40

标签: android cordova app-store crosswalk-runtime

我的应用程序是与Cordova和Crosswalk一起开发/发布的。 Crosswalk为ARM cpus生成一个apk,为x86 cpus生成另一个。

此刻,当我将我的ARM apk上传到Play商店然后尝试上传x86时,它阻止我这样做并显示一条消息,说我不能拥有两个具有相同版本代码的apk。

It seems it's possible to upload on the play store multiple apk files for the same version of an application byt filtering the devices targetted by each apk file.

然而,似乎需要使用" Application.mk"文件,Cordova项目结构默认情况下似乎没有。

如何在我的apks中包含Application.mk文件,以便ARM和具有相同版本代码的x86都可以上传到Play商店?

4 个答案:

答案 0 :(得分:22)

这是绝对可能的。 此功能接收名称: Multiple APK

您无需使用'Application.mk'

流程很简单

  1. 在开发者控制台中,切换到高级模式(点击APK标签右上角的切换到高级模式按钮 - 请注意,您必须至少上传一个APK用于显示该按钮)
  2. 上传两个APK
  3. 发布<!/ LI>

    使用多个APK有一些规则,但如果您使用cordova crosswalk生成的文件,则无需担心。

    您使用版本代码描述的问题发生,因为每个应用必须具有不同的版本代码。在我的情况下,我使用离子框架(扩展cordova),并在构建过程中,它为每个apk生成了不同的版本代码,所以我没有问题。如果不适合您,您可以尝试直接在AndroidManifest.xml文件中更改de android:versionCode 。 以下是我的清单的样子:

    <manifest 
      android:hardwareAccelerated="true" 
      android:versionCode="102" 
      android:versionName="0.1.2" 
      package="br.org.yyyyyyy.xxxxxxxxxx"   
      xmlns:android="http://schemas.android.com/apk/res/android">
    

    在我的情况下,arm7 apk,

      

    机器人:的versionCode = “102”

    在x86 apk中

      

    机器人:的versionCode = “104”

    参考文献:

    Android Multiple APKs DOC

    Maintaining Multiple APKs DOC

答案 1 :(得分:1)

我做的很简单。主要v代码的示例是102,因此您使用102 v代码构建第一个arm并上载。在上传运行之前,您可以将清单和构建等级中的v代码更改为103并构建另一个x86。简单易用。

答案 2 :(得分:1)

我认为过去一年情况发生了变化。我使用了相同的版本代码并上传了两个apks(一次一个 - 以正常方式)。 Google Play会自动检测到它们是针对不同的原生平台,并允许两者都投入生产。

答案 3 :(得分:0)

cordova-crosswalk doc指示如何制作适用于arm和x86的apk。问题是它制作了一个巨大的apk。

如果你真的想制作两个apks,你可以尝试(抱歉还没有测试)在文件夹platforms / android / jni中创建Application.mk文件

对于arm,您可以将此行放在Application.mk:

APP_ABI := armeabi armeabi-v7a

对于intel x86:

APP_ABI := x86

您必须更改AndroidManifest.xml以使每个平台具有不同的版本(按照您提供的链接中的说明进行操作)。

小心,如果你再次运行cordova build android,它可能会取代所有平台/ android的内容,你的更改将会丢失。

构建项目使用

platforms\android\cordova\build.bat -release 

而不是

cordova build android --release