私のアプリは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ファイルを含めるにはどうすればよいですか?
それは絶対に可能です。この機能は次の名前を受け取ります:複数のAPK
'Application.mk'を使用する必要はありません
プロセスは簡単です:
複数の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"
参照:
私は簡単な方法でやっています。たとえば、メインのvコードが102であるため、102 vコードを使用して最初のアームを構築し、アップロードします。アップロードが実行されるまで、マニフェストとビルドグレードのvコードを103に変更し、別のコードをx86でビルドできます。簡単でシンプル。
この一年で状況は変わったと思います。私は同じバージョンコードを使用し、両方のapkをアップロードしました(一度に1つずつ-通常の方法で)。 Google Playは、それらが異なるネイティブプラットフォームをターゲットにしていることを自動検出し、両方を本番環境に移行できるようにしました。
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