Open2

Yuniframe: Androidパッケージング

okuokuokuoku

... これみんなマジでどうやってんの。。? まぁUnityの実装がかなり気合と根性なので世間的にもどこも同じようなもんだとは思うけど。。

loose deploymentとパッケージdeployment

ファイルシステム上のファイルをそのままアプリケーションとして利用する方法をloose deploymentと呼ぶ。 ...が、これをサポートしている環境はUWP https://learn.microsoft.com/en-us/windows/uwp/debug-test-perf/loose-file-registration と macOS 、WindowsやLinuxのようなデスクトッププラットフォームくらいしかない(弊社プラットフォームもサポートしてるけど)。基本的にはテスト用途と割り切るべきだろう。

というわけで、AndroidやiOSのような、メジャーなモバイル / TVプラットフォームでは、アプリケーションは一旦パッケージする必要がある。更に、通常の ./configure && make ビルドシステムでは存在しない難しい点が3つある。

アプリケーション単位のユニークなメタデータが必要である 。パッケージのidentifierやバージョン等が必要となる。これらは基本的にプラットフォーム間で使いまわせない。

パッケージングには公式IDEの利用がほぼ必須である 。しかも、Androidの場合はCMakeでプロジェクトを生成できないJavaプロジェクトとして作成しなければならない。

マルチプラットフォームをサポートする必要がある 。iOSではsimulator buildと実ビルドを単一のXcodeプロジェクトとして生成する必要がある。Androidでは。。どうすれば良いんですかね。。?(これを今から調べる)

okuokuokuoku

build variantにした

https://github.com/okuoku/em2native-tests/commit/272ce54afaaa7023f9dc7a55d7a5747987ce19b6

AndroidのGradle pluginではbuild variantsが使えるようなので、バックエンド(= WebGL実装)と内包するアプリのマトリックスでbuild variantにしてみた。

https://developer.android.com/build/build-variants

こういう感じでなんか目立たない感じに選択メニューが出るようになる。まとめてビルドするのがちょっと面倒だけど、それは普段のintegrationビルドでやっているので気にしないことにする。