2

() 中的数字,见文末链接

我正在开发一个 Air Native Extension (ANE),以便能够在移动设备上使用突发广告。

至于我的设置,我使用的是 FlashDevelop 4.0.4 和 Adob​​e Air 3.3。我正在使用 Flex 4.6.0 SDK。该项目是在 Windows7 上设置的。

为了在 iOS 设备上工作,Burstly 需要一些框架和库

我设法为 iOS 编写和编译 .a 库。我也有将被编译成 swc 和 librairy.swf 的 Android 和 iOS 共享的界面(actionscript 代码)。所有这些都成功打包到我的项目中包含的 .ane 中。

在 MacOS 上编译 .a 库时,使用的所有框架和库似乎都没有打包在“.a”中。这就是为什么我必须为 -platformsdk 选项 (1) 使用 Air 3.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>

这是编译实际 .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:警告:找不到选项'-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/

4

0 回答 0