Adobe Airについて。事前にユーザーにair アプリをインストールさせる必要がありません!
いや、もうほとんどの方が知っているはず、と信じたいです。
ただ、どうも、いまだに「このゲームを起動させるにはまずAIRアプリをインストールしてください」と指示しているところがあるみたいなので、ここでもう一度話したほうがいい気がします。
以前、AIRが初めて出たとき、確かにEXE化するためにADOBE社に許可をもらう必要がありますが、しばらく経って、この必要がなくなりました。
というか、そもそもフラッシュは2020年で終わりという話もあって、AIR事態はフラッシュを動かすためのツールの一つなので、まだまだ先があるかもしれません。
今は、HARMAN社が受け継いでいますが、AIR SDK 33リリースされた後も、なぜかAIR SDK32がまだしばらくADOBE社より更新されました。
例えばMACカタリナに対応するための更新とかですね。記憶違いでなければ、確か32版が先にカタリナ対応機能が追加されました。
SDK33は、主にアンドロイド64bit (arm64v8) 用に作られている感じです。現在すでにカタリナ対応になったのですが、こちらのフリー版(収入1年間50万USD/5百万円前後の方向け)だと、HARMAN社のロゴが入ります。
ま、それはそうとして、まず簡単にネイティブアプリについて説明します。
①WINDOWSまたはMAC用のCAPTIVE RUNTIME BUNDLE(.EXE/.APP)
ドキュメント:
https://help.adobe.com/ja_JP/air/build/WSfffb011ac560372f709e16db131e43659b9-8000.html
これとはほかに、target nativeというのもあるのですが、こちらは、単に『事前にAIRアプリをインストールしてね』と表示するインストーラーを作るためです。
今ご紹介するのはCAPTIVE RUNTIME BUNDLE (target bundle)であって、この機能使うと、AIRをインストールしなくともすぐにダブルクリックで起動できるゲーム(またはアプリ)を作るためです。
ドキュメントに書いてある通り、ウィンドウズでビルドするコードは
adt -package -keystore ..\cert.p12 -storetype pkcs12 -target bundle myApp myApp-app.xml -C bin .
最後の行は『-C bin .』に変更したのですが、これは、ディレクトリーにある bin フォルダの中身を全部 myAppというゲームインストーラーフォルダに含めるという意味です。EXEは、myAppフォルダの中にXML表記通りに作られます。
MACの場合は、ビルドする際に、MACのパソコンが必要になります!!!(WINDOWSでビルドできません!)
adt -package -keystore ../cert.p12 -storetype pkcs12 -target bundle myApp.app myApp-app.xml -C bin .
これで同じく『-C bin .』 の中身が新しく作られたアプリ『myApp.app』に入ります。このアプリをダブルクリックするだけで、ゲームが起動します。
※注意:MACでビルドすると、appファイルの中にsymlinkファイルが含まれています。このファイルは、新しいセキュリティパッチにより、windows端末にコピーできません!ZIPにしてから、windowsに展開しようとしても、展開の最中にエラーが出ます! また、windows端末を使いアップロードしようとしても、このファイルははじかれるので、オンラインストアなどにアップする場合、必ずMAC端末からすべて行ってください。(ZIP形式のものをWINDOWSでアップロードできるかどうかは、まだわかりません)
symlinkファイルを無視してアップロードすると、Steamなど、クライアントで起動するものならはいいのですが、スタンドアロンとして、ダブルクリックでAPPファイルを起動すると、ファイルが破損したというエラーが出てしまいます。
②アンドロイドアプリの場合
iOSアプリはもともとairランタイムが含まれているようなので、省きます。
アンドロイドの場合は、もう知っている方がほとんどかと思いますが、こちらのコードを使ってください:
adt -package -target apk-captive-runtime -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp-app.xml -C bin .
ただ、アンドロイドの場合は今64bitが必要になるので、2回ビルドする必要があります(32bit版と64bit版)。両方、SDK33で行えますが、32bit版だけSDK32を使う、ということも可能かと思います(HARMAN社のロゴが入ってません)、こちらは2020年8月以降だと必須になります。64bit版は、64bit対応のものがないと、64bitの端末からゲームがストアに表示されなくなるということらしいですが、現時点では、まだまだ32bitしか対応してない端末が多いです。
つまり、両方がないといけません(ややこしい)。
ちなみに、ANEを使う場合、32bitのANEが64bitのアプリでは使えません。ええ。使えないのです……😫😫😫😫
しかも64bitANE対応のものって、案外数が少なくて、結構高いものが多いです💸💸💸
③STEAMの場合
STEAM版は、何もしなくても起動できるはずですが、かなり前それをやってみたら、タイトル画面にてshift+tabを押して、コミュニティを開いてみたら、ゲームがフリーズしてしまいました。
なので、念のために必ずfresteamworksのANEを入れてください:(v0.6以降はカタリナに対応できます)
https://github.com/Ventero/FRESteamWorks
これを使うと、WINとMACでも、STEAMAPIが使えます。例えば、事績や、購入を確認するためのAPIなど。
ただし、MAC カタリナに対応したければ、使うSTEAMSDKが、必ずver46以上にしてください。redistributable_binにosxフォルダがあるほうです(osx32ではありません)