web-dev-qa-db-ja.com

コルドバクロスウォークアプリのx86とARM APKをPlayストアに公開するにはどうすればよいですか?

私のアプリはCordovaとCrosswalkで開発/公開されています。 Crosswalkは、ARM cpus用のapkと、x86cpus用のapkを生成します。

現時点では、ARM apkをPlayストアにアップロードしてから、x86をアップロードしようとすると、アップロードできなくなり、apkを2つ持つことはできないというメッセージが表示されます同じバージョンコードで。

各apkファイルの対象となるデバイスをフィルタリングすることで、同じバージョンのアプリケーションの複数のapkファイルをPlayストアにアップロードできるようです。

ただし、Cordovaプロジェクト構造にはデフォルトではないように見える「Application.mk」ファイルを使用する必要があるようです。

ARMと同じバージョンコードのx86の両方をPlayストアにアップロードできるように、apk内にApplication.mkファイルを含めるにはどうすればよいですか?

10
Żabojad

それは絶対に可能です。この機能は次の名前を受け取ります:複数のAPK

'Application.mk'を使用する必要はありません

プロセスは簡単です

  1. 開発者コンソールで、詳細モードに切り替えます(右上の詳細モードに切り替えるボタンをクリックします[APK]タブの-そのボタンを表示するには、少なくとも1つのAPKをアップロードしておく必要があることに注意してください)
  2. 2つのAPKをアップロードする
  3. 公開!

複数のAPKを使用するためのいくつかのルールがありますが、cordova横断歩道によって生成されたファイルを使用する場合は、心配する必要はありません。

バージョンコードで説明した問題は、アプリごとに異なるバージョンコードが必要なために発生します。私の場合、ionicフレームワーク(cordovaを拡張)を使用し、ビルドプロセスで、apkごとに異なるバージョンコードが生成されたため、問題はありませんでした。問題が発生しない場合は、 AndroidManifest.xmlファイルでdeAndroid: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"

そしてx86apkでは

Android:versionCode = "104"

参照:

Android複数APK DOC

複数のAPK DOCを維持する

22
Henry Ávila

私は簡単な方法でやっています。たとえば、メインのvコードが102であるため、102 vコードを使用して最初のアームを構築し、アップロードします。アップロードが実行されるまで、マニフェストとビルドグレードのvコードを103に変更し、別のコードをx86でビルドできます。簡単でシンプル。

この一年で状況は変わったと思います。私は同じバージョンコードを使用し、両方のapkをアップロードしました(一度に1つずつ-通常の方法で)。 Google Playは、それらが異なるネイティブプラットフォームをターゲットにしていることを自動検出し、両方を本番環境に移行できるようにしました。

1
James L.

cordova-crosswalk doc は、armとx86の両方で機能するapkの作成方法を指示します。問題はそれが巨大なapkを作ることです。

本当に2つのapkを作成したい場合は、platforms/Android/jniフォルダーにApplication.mkファイルを作成してみてください(まだテストされていません)。

腕の場合、この行を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
0
QuickFix