追加のフレームワークやライブラリにリンクするため、またはサードパーティのフレームワークやライブラリをバンドルするために、プラットフォームオプション(platform.xml)ファイルを使用して、ネイティブ拡張で iOS 固有のオプションを指定することができます。iOS の
-platform
フラグの後に
-platformoptions
フラグを指定して拡張をパッケージ化すると、プラットフォームオプションファイルは ANE に追加されます。後で開発者が拡張を使用するアプリケーションの IPA ファイルを作成すると、ADT は platform.xml ファイル内でこのオプションを使用して追加ライブラリにリンクしたり、バンドルされた依存関係を含めたりします。
注意:
プラットフォームオプションファイルには任意の名前を付けることができます。「platform.xml」という名前を付ける必要はありません。
iOS プラットフォームオプションファイルは iPhone-ARM(デバイス)プラットフォームおよび iPhone-x86(iOS シミュレーター)プラットフォームの両方と共に使用できます。
プラットフォームオプションファイルには AIR 3.1 以降が必要です。
iOS 用の ANE のパッケージ化に
packagedDependencies
機能を使用する場合は、次の項目を追加します。
<option>-rpath @executable_path/Frameworks</option>
platformoptions.xml
ファイルの
linkerOptions
タグ内に追加してください。
iOS リンカーオプション
iOS リンカーオプションは、任意のオプションをリンカーに渡す方法を提供します。指定されたオプションは、変更されずにリンカーに渡されます。これを使用して、追加の iOS フレームワークなど、追加のフレームワークやライブラリにリンクできます。リンカーオプションを指定するには、プラットフォームの options xml ファイルで
<linkerOptions>
タグを使用します。以下の例で示すように、
<linkerOptions>
タグ内で、各リンケージオプションを
<options>
タグのペアでラップして指定します。
<linkerOptions>
<option>-ios_version_min 5.0</option>
<option>-framework Accelerate</option>
<option>-liconv</option>
</linkerOptions>
この方法でリンクされた依存関係は、ネイティブ拡張をネイティブ拡張自体とは別に使用する開発者に配布される必要があります。これは、iOS に含まれる追加のライブラリを使用する際に最も便利な方法ですが、AIR ではデフォルトではリンクされません。このオプションを使用して、別に提供する静的ライブラリに開発者がリンクできるようにすることもできます。
<linkerOptions>
タグには、AIR 3.3 以降が必要です。
パッケージ化されたサードパティの依存関係
ライブラリのソースコードにアクセスせずに、または拡張とは別にライブラリにアクセスすることを開発者に強要せずに、ネイティブ拡張内で静的ライブラリ(ネイティブサードパーティライブラリなど)を使用する場合があります。静的ライブラリをパッケージ化された依存関係として指定することで、ネイティブ拡張と共にバンドルすることができます。プラットフォームの options xml ファイルで、
<packagedDependencies>
タグを使用します。以下の例に示すように、拡張パッケージに含める各依存関係に対して、その名前または相対パスを
<packagedDependency>
タグのペアで囲んで指定します。
<packagedDependencies>
<packagedDependency>foo.a</packagedDependency>
<packagedDependency>abc/x.framework</packagedDependency>
<packagedDependency>lib.o</packagedDependency>
</packagedDependencies>
パッケージ化された依存関係は、
.a
、
.framework
または
.o
のいずれかの拡張子を持つ静的ライブラリである必要があります。ライブラリをデバイス上で使用するには、ライブラリが ARMv7 アーキテクチャをサポートする必要があり、iOS シミュレーターと共に使用するには、i386 アーキテクチャをサポートする必要があります。
ネイティブ拡張をパッケージ化する場合は、依存関係の名前を
-platformoptions
フラグとして指定する必要があります。次の例に示すように、platform.xml ファイルのファイル名の後、続く
-package
フラグの前に、依存関係をリストします。
adt -package <signing options> -target ane MyExtension.ane MyExt.xml -swc MyExtension.swc
-platform iPhone-ARM -platformoptions platformiOSARM.xml
foo.a abc/x.framework lib.o -C platform/ios .
-platform iPhone-x86 -platformoptions platformiOSx86.xml
-C platform/iosSimulator
-platform default -C platform/default library.swf
<packagedDependencies>
タグには、AIR 3.5 以降が必要です。
プライベート埋め込みフレームワークの使用
Xcode6 以降でプライベートフレームワークを使用して iOS ANE を作成するには、次の手順を実行します。
-
platform.xml を編集します。
<option>-rpath @executable_path/Frameworks</option>
上記の項目を
linkerOptions
タグ内に追加します。
次に例を示します。
</description>
<linkerOptions>
<option>-ios_version_min 5.1.1</option>
<option>-rpath @executable_path/Frameworks</option>
</linkerOptions>
<packagedDependencies>
<packagedDependency>SampleFramework.framework</packagedDependency>
</packagedDependencies>
-
Frameworks という名前のフォルダーを既存の iPhone-ARM フォルダー内に作成します。
-
プライベートフレームワークを Frameworks フォルダーにコピーして、フレームワークを ANE とともにパッケージ化します。
プライベートフレームワークのコピー
プラットフォームオプション(platform.xml)ファイルの例
以下は、プラットフォームオプション(platform.xml)ファイルの構成の例です。
<platform xmlns="http://ns.adobe.com/air/extension/3.5">
<description>An optional description.</description>
<copyright>2011 (optional)</copyright>
<sdkVersion>5.0.0</sdkVersion>
<linkerOptions>
<option>-ios_version_min 5.0</option>
<option>-framework Accelerate</option>
<option>-liconv</option>
</linkerOptions>
<packagedDependencies>
<packagedDependency>foo.a</packagedDependency>
<packagedDependency>abc/x.framework</packagedDependency>
<packagedDependency>lib.o</packagedDependency>
</packagedDependencies>
</platform>
このプラットフォームオプションファイルをネイティブ拡張パッケージに含めるには、以下のような ADT コマンドを使用できます。
adt -package <signing options> -target ane MyExtension.ane MyExt.xml -swc MyExtension.swc
-platform iPhone-ARM -platformoptions platformiOSARM.xml
foo.a abc/x.framework lib.o -C platform/ios .
-platform iPhone-x86 -platformoptions platformiOSx86.xml
-C platform/iosSimulator
-platform default -C platform/default library.swf