モバイル用にコンパイルしている AIR アプリケーションがあります。IDE で使用すると正常にコンパイルされる iOS ネイティブ拡張機能 ( JamPot MobileBackup ) があります。
しかし、現在、他のプラットフォームをサポートするために移動しているため、IDE では十分ではありません。ビルド プロセスを実行する Ant スクリプトを作成することにしました。
問題は、この特定の ANE が拡張コードで MobileBackup クラスを定義しているように見えることであり、私が使用している他の ANE のような別の .as ファイルではありません。
私が見ているエラーは次のとおりです。
[mxmlc] Loading configuration file /Users/anderson/src/flex/4.6.0/frameworks/airmobile-config.xml
[mxmlc] /Users/anderson/src/xxx/src/xxx/Utility.as(32): col: 35 Error: Type was not found or was not a compile-time constant: MobileBackup.
[mxmlc]
[mxmlc] private static var mobileBackup:MobileBackup = new MobileBackup();
[mxmlc] ^
[mxmlc]
[mxmlc] /Users/anderson/src/xxx/src/xxx/Utility.as(32): col: 54 Error: Call to a possibly undefined method MobileBackup.
[mxmlc]
[mxmlc] private static var mobileBackup:MobileBackup = new MobileBackup();
[mxmlc] ^
[mxmlc]
[mxmlc] /Users/anderson/src/xxx/src/xxx/Utility.as(32): col: 54 Error: Call to a possibly undefined method MobileBackup.
[mxmlc]
[mxmlc] private static var mobileBackup:MobileBackup = new MobileBackup();
[mxmlc] ^
[mxmlc]
[mxmlc] /Users/anderson/src/xxx/src/xxx/Utility.as(21): col: 35 Error: Definition ie.jampot.nativeExtensions:MobileBackup could not be found.
[mxmlc]
[mxmlc] import ie.jampot.nativeExtensions.MobileBackup;
mxmlc 呼び出しは次のようになります。
<mxmlc
file="${app.main.class.file}"
output="${build.output.swf.file}"
locale="${LOCALE}"
static-rsls="false"
accessible="false"
configname="airmobile"
debug="${build.debug.mode}"
failonerror="true"
fork="true"
maxmemory="512m">
<source-path path-element="${app.src.path}"/>
<compiler.library-path dir="${FLEX_HOME}/frameworks" append="true">
<include name="libs/*" />
</compiler.library-path>
<library-path file="${FLEX_HOME}/frameworks/locale/${LOCALE}" append="true"/>
<library-path dir="${spicelib.lib.path}" includes="*.swc" append="true"/>
<library-path dir="${parsley.lib.path}" includes="*.swc" append="true"/>
<library-path dir="${app.lib.path}" includes="*.swc" append="true"/>
<external-library-path file="${AIR_GLOBAL}" append="true"/>
<external-library-path dir="${app.ane.path}" includes="*.ane" append="true"/>
<define name="CONFIG::DESKTOP" value="${output.config.environment.desktop}"/>
<define name="CONFIG::IOS" value="${output.config.environment.ios}"/>
<define name="CONFIG::ANDROID" value="${output.config.environment.android}"/>
<define name="CONFIG::PRODUCTION" value="${output.config.environment.production}"/>
<define name="CONFIG::STAGING" value="${output.config.environment.staging}"/>
<define name="CONFIG::LOCAL" value="${output.config.environment.local}"/>
</mxmlc>
app.ane.path は、プロジェクトの .ane ファイルのコレクションへのパスです。
また、external-library-path の代わりに library-path を使用してみました。
build.xml を追加する以外は、Flash Builder プロジェクトのレイアウトやコンテンツをまったく変更していません。IDE 内で問題なくコンパイルできます。
これを IDE の外でコンパイルするにはどうすればよいですか?