()内の数字については、最後のリンクを参照してください
モバイルデバイスでバースト広告を使用できるようにするために、Air Native Extension(ANE)を開発しています。
セットアップとしては、FlashDevelop4.0.4とAdobeAir3.3を使用しています。Flex4.6.0SDKを使用しています。プロジェクトはWindows7でセットアップされています。
iOSデバイスで動作するために、バーストリーは多くのフレームワークとライブラリを必要とします
iOS用の.aライブラリを作成してコンパイルすることができました。また、AndroidとiOSで共有されるインターフェイス(actionscriptコード)をswcとlibrairy.swfにコンパイルしました。これらはすべて、私のプロジェクトに含まれている.aneに正常にパッケージ化されています。
MacOSで.aライブラリをコンパイルする場合、使用されるすべてのフレームワークとライブラリが「.a」にパッケージ化されていないようです。これが、-platformsdkオプション(1)にAir3.3を使用しなければならなかった理由です。
私はWindowsで作業しているので、この投稿の指示に従ってiOS SDK(2)を入手しました。
必要なフレームワークと(1)に従って、このようなplatformConfig.xmlファイルを作成しました。これは.aneにパッケージ化されています。
<platform xmlns="http://ns.adobe.com/air/extension/3.1">
<sdkVersion>4.2</sdkVersion>
<linkerOptions>
<!-- to use the AssetsLibrary framework -->
<option>-framework AssetsLibrary</option>
<option>-framework AudioToolbox</option>
<option>-framework AddressBook</option>
<option>-framework AVFoundation</option>
<option>-framework CFNetwork</option>
<option>-framework CoreLocation</option>
<option>-framework MapKit</option>
<option>-framework MediaPlayer</option>
<option>-framework MessageUI</option>
<option>-framework OpenAL</option>
<option>-framework OpenGLES</option>
<option>-framework QuartzCore</option>
<option>-framework StoreKit</option>
<option>-framework SystemConfiguration</option>
<option>-framework Foundation</option>
<option>-framework CoreGraphics</option>
<option>-libsqlite3</option>
<option>-libxml2</option>
<option>-libz</option>
</linkerOptions>
</platform>
これは、actuale.aneをコンパイルするための行です。
call "%FLEX_SDK%\bin\adt" -package -target ane ../release/burstlyadsextension.ane extension.xml -swc burstlyAds.swc -platform iPhone-ARM library.swf libBurstlyAds.a -platformoptions platformConfig.xml
iOSアプリをADTでパッケージ化しようとすると、問題が発生します。
call adt -package -target %TYPE%%TARGET% %OPTIONS% %SIGNING_OPTIONS% "%OUTPUT%" "%APP_XML%" %FILE_OR_DIR% -extdir lib/external/ -platformsdk ../Libraries/iPhoneOS5.0.sdk/
これは起こります:
"ld:-libsqlite3のライブラリが見つかりません:実行中にコンパイルに失敗しました:ld64"
フレームワークはうまく追加されているようですが、dylibはそうではありません。次の行を追加しようとしました:
<option>-L usr/lib/</option>
libを含める前に、代わりにこのエラーが発生しました:
"ld:警告:オプション'-Lusr / lib /'のディレクトリが見つかりませんld:-libsqlite3のライブラリが見つかりません実行中にコンパイルに失敗しました:ld64"
フルパスやその他の相対パスを使おうとしましたが、オプションにどのパスを入れても、常に「警告:オプションのディレクトリが見つかりません」というメッセージが表示されます。「-L../」でもこの警告が表示されます。動作しているように見えるのは「-L/../」だけですが、私の.dylibの明らかなものはありません。
だから私の質問は:私は何を間違えたのですか?他に何を試すことができるか考えたことがありますか?なぜそれが機能しないのかについての説明でさえ役立つでしょう!
リンク: