表示()中的数字,请参阅末尾的链接
我正在开发Air Native Extension(ANE),以便能够在移动设备上使用突发广告。
至于我的设置,我使用的是FlashDevelop 4.0.4和Adobe Air 3.3。我正在使用Flex 4.6.0 SDK。该项目是在Windows7上设置的。
为了在iOS设备上工作,Burstly需要许多框架和图书馆
我设法为iOS编写和编译.a库。我还有将为Android和iOS共享的接口(actionscript代码)编译成swc和librairy.swf。所有这些都成功打包成一个.ane,它包含在我的项目中。
在MacOS上编译.a库时,所使用的所有框架和库似乎都没有打包在“.a”中。这就是为什么我必须使用Air 3.3,用于-platformsdk选项(1)。
由于我在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>
这是编译精算.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
当我尝试使用ADT打包iOS应用程序时出现问题:
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:warning:找不到选项'-Lusr / lib /'的目录 ld:找不到-libsqlite3的库 执行时编译失败:ld64“
我尝试使用完整路径,其他相对路径,但无论我在选项中放入什么路径,我总是得到“警告:找不到选项的目录”。甚至“-L ../”也给了我这个警告。似乎唯一有效的是“-L /../”,但我的.dylib明显不存在。
所以我的问题是:我做错了什么?还有什么想法我还能尝试什么?即使是为什么它不起作用的解释也会有所帮助!
链接: