在为iOS打包时找不到lib

时间:2012-07-18 17:59:55

标签: ios air air-native-extension

表示()中的数字,请参阅末尾的链接

我正在开发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明显不存在。

所以我的问题是:我做错了什么?还有什么想法我还能尝试什么?即使是为什么它不起作用的解释也会有所帮助!

链接:

1:http://blogs.adobe.com/rajorshi/2011/11/16/ios5-support-for-airusing-external-sdks-to-package-apps/

2:http://blogs.adobe.com/airodynamics/2012/05/18/using-platformsdk-for-ios-on-windows/

0 个答案:

没有答案