Flash Player および AIR バージョン 28 のベータ版が公開されています。(Adobe AIR@Labs) 新しい SWF バージョンは 39 です。
今回の主な追加機能および変更点は以下の通りです。
- 許可を求める説明文のローカライズをサポート (iOS)
- Swift ベースの ANE サポート (iOS/tvOS)
- ビットコード埋め込みサポート (iOS/tvOS)
- iOS 11 SDK にアップグレード
- Android SDK アップグレード
- オーディオデバイスマネージャー ActionScript API サポート (AIR デスクトップ)
- 複数 GPU 環境での選択機能 (AIR デスクトップ)
Android SDK の各ツールのバージョンは以下の通りです。
- Android SDK Platform : 25 ver 3 (Android 7.1.1)
- Android SDK build tools :26.0.1
- Android SDK tools : 26.0.2
- Android SDK platform tools : 26.0.0
- Android NDK : 15.1.4119039
- Android Support Repository : 47.0.0
iOS SDK アップグレード
AIR ランタイムは iOS 11 SDK にアップグレードされました。これにより、いくつかアイコンをアプリに追加で含めることが必要になります。以下は、Xcode 9 を使って、Assets.car ファイルを準備する手順です。
- File -> New Project -> Single View App (iOS) と選択肢、当たらしプロジェクトを作成して保存
- Assets.xcassets を選択し、AppIcon に以下のサイズのアイコンをドラッグ & ドロップ
- App Store icon : 1024x1024 (1024pt, 1x)
- iPad icon : 76x76 (76pt, 1x) & 152x152 (76pt, 2x)
- iPad Pro icon : 167x167 (83.5pt, 2x)
- iPhone icon : 120x120 (60pt, 2x)
- iPhone icon : 180x180 (60pt, 3x).
- App Store icon : 1024x1024 (1024pt, 1x)
- ターゲットに Generic iOS Device を指定して、プロジェクトをビルド
- アプリをファインダーに表示、右クリックしてパッケージ内を表示
- Assets.car ファイルを取り出して、AIR アプリとパッケージ
上記手順について、詳しくは、 こちらのページ (Add an App Store icon) をご覧ください。
追加したアイコンは App Store 用を除き、icon タグで app.xml に記述します。なお、iOS 11 をターゲットにした場合、生成される IPA は 64 ビットのみになります。
AIR デスクトップ版の機能追加
AIR デスクトップ版に 2 つの新機能が追加されました。
まず、オーディオデバイスマネージャー API は、Flash Player 27 から追加された機能を AIR に実装したもので、オーディオ出力デバイスをアプリごとに選択できます。デスクトップ版のみで利用可能です。
その際、デバイス選択画面はアプリが提供する必要があります。また、再起動するとシステムデフォルトに戻るため、前回の選択を保管しておく仕組みの実装が必要になる場合もあるでしょう。
もう一つの新機能は、複数の GPU を搭載するシステムで、使用したい GPU を指定する機能です。<gpuPreference> 要素を、アプリケーション記述子に追加することで指定できます。これもデスクトップ版 AIR だけの機能です。
<application> <gpuPreference>(discrete|integrated)</gpuPreference> </application>
discrete はパフォーマンス重視 、integrated はバッテリー重視の選択という位置づけです。
許可を求める説明文のローカライズ (iOS)
AIR 28 から、アプリに必要な許可を求める際に、ローカライズされた文章を使えます。 ローカライズした文は、決められたフォーマットで XML ファイルに記述する必要があります。AIR SDK にサンプルファイル SDK/samples/purposeStrings-sample.xml が提供されています。
アプリケーションからファイルを参照できるよう、パッケージする際、以下のようにコマンドラインに XML ファイル名を記述します。
adt -package -target <target> -provisioning-profile <provisioning profile> -storetype pkcs12 -keystore <certificate> -storepass <password> <ipa> <application.xml> <swf> purposeStrings.xml
Swift ベースの ANE サポート (iOS/tvOS)
AIR 28 からは iOS/tvOS 向けに、Swift ベースの ANE が利用できます。ダイナミックフレームワークも利用できます。フレームワークへの署名はアプリのパッケージングのタイミングで行われます。
Swift ANE を利用する手順は以下の通りです。
1. platform.xml ファイルにダイナミックフレームワークの情報を記述
<?xml version="1.0" encoding="utf-8" ?>
<platform xmlns="http://ns.adobe.com/air/extension/28.0">
<linkerOptions>
<option>-rpath @executable_path/Frameworks</option>
</linkerOptions>
<packagedDependencies>
<packagedDependency>
<dynamic_swift_framework_path>
</packagedDependency>
</packagedDependencies>
</platform>
2. ANE ファイルをパッケージ
下の例の iPhone-ARM フォルダと appleTV-ARM フォルダは、それぞれの platform_xml ファイルに記述された、ダイナミックフレームワーク等の環境に依存するライブラリを含む場所です。
adt -package -target ane <ane_file> <extesionxml_file> -swc <swc_file> -platform iPhone-ARM -platformoptions <platformxml_file> -C iPhone-ARM/ . -platform appleTV-ARM -platformoptions <tvOS_platformxml_file> -C appleTV-ARM/ .
3. IPA ファイルをパッケージ
adt -package -target <target> -provisioning-profile <path-to-profile> -storetype pkcs12 -keystore <certificate> -storepass <password> <ipa_file> <appxml> <swf> Frameworks -extdir extension
Swift ダイナミックフレームワークのファイルは Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos for iOS に含まれています。以下が必要なファイルのリストです。
- libswiftCore.dylib
- libswiftCoreGraphics.dylib
- libswiftCoreImage.dylib
- libswiftDarwin.dylib
- libswiftDispatch.dylib
- libswiftFoundation.dylib
- libswiftObjectiveC.dylib
- libswiftQuartzCore.dylib
- libswiftUIKit.dylib
Xcode 9 および Swift 4 には以下のファイルも必要です。
- libswiftCoreFoundation.dylib
- libswiftMetal.dylib
- libswiftos.dylib
MinimumOSVersion のデフォルトは、iOS が 8.0、tvOS が 9.0 です。
ビットコード埋め込みサポート (iOS/tvOS)
ADT でビットコード埋め込みができるようになりました。パッケージの際、embedBitcode の値に yes を指定するとこの機能が有効になります。 AppStore 用のアプリ (ipa-app-store をターゲットにする場合) は、この指定が必須になります。
下の例のように、署名関連のオプションの前に -embedBitcode yes を指定します。
adt -package -target <target type> <other options> -embedBitcode yes -provisioning-profile <SampleProvisioning.mobileprovision> -storetype pkcs12 -keystore <SampleCertificate.p12> -storepass <password> Example.ipa Example-app.xml Example.swf
このオプションを利用する場合、使用する ANE も全てビットコードに対応していることが必要です。対応していない ANE が使われるとパッケージエラーが発生します。
コメントする