【问题标题】:How can I publish to play store the x86 and ARM apks of my cordova-crosswalk app?如何发布以播放存储我的 cordova-crosswalk 应用程序的 x86 和 ARM apk?
【发布时间】:2015-02-24 21:41:40
【问题描述】:

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

目前,当我将我的 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.

但是,它似乎需要使用默认情况下 Cordova 项目结构似乎没有的“Application.mk”文件。

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

【问题讨论】:

    标签: android cordova app-store crosswalk-runtime


    【解决方案1】:

    绝对有可能。 此功能的名称为:Multiple APK

    您不需要使用“Application.mk”

    过程很简单

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

    使用多个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,

    android:versionCode="102"

    在 x86 apk 中

    android:versionCode="104"

    参考资料:

    Android Multiple APKs DOC

    Maintaining Multiple APKs DOC

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

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

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

          APP_ABI := armeabi armeabi-v7a
          

          对于英特尔 x86:

          APP_ABI := x86
          

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

          小心,如果你再次运行cordova build android,它可能会替换所有platforms/android的内容,你的修改会丢失。

          要构建项目使用

          platforms\android\cordova\build.bat -release 
          

          而不是

          cordova build android --release
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-07-13
            • 1970-01-01
            • 2015-05-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多