将框架添加到AIR Native Extension(ANE)时缺少体系结构

时间:2014-01-16 09:51:15

标签: ios frameworks air adobe

目前我正在开发一个Native Extension for AIR。我已经让它完美地用于Android,我现在正在使用iOS。到目前为止,我已经运行了,我有各种方法做一些基本的事情,比如显示一条警告信息。所以我知道ANE正在建设并且自身工作正常。

但现在我面临的问题。我尝试添加一些框架。我建立自己,并在本机应用程序和一些第三方应用程序。 ANE仍然可以正常运行,但是当我将它添加到测试项目并运行它时,它说它忽略了我的文件,因为它错过了正确的架构。

ld: warning: ignoring file /var/folders/zn/r6p91gln37n2323yj8rw1q6c0000gp/T/0bd78fa0-1b71-   4371-a6c5-a4ad3073df62/libcom.mycompany.myproduct.a, missing required architecture armv7 in file /var/folders/zn/r6p91gln37n2323yj8rw1q6c0000gp/T/0bd78fa0-1b71-4371-a6c5-a4ad3073df62/libom.mycompany.myproduct.a (2 slices)
ld: file too small for architecture armv7 
Compilation failed while executing : ld64

我在平台选项中添加了它们:

<platform xmlns="http://ns.adobe.com/air/extension/3.8">
    <sdkVersion>6.0</sdkVersion>
    <linkerOptions>
        <option>-ios_version_min 6.0</option>
        <option>-framework coreTelephony</option>
        <option>-framework EventKit</option>
        <option>-framework MediaPlayer</option>
        <option>-framework MessageUI</option>
        <option>-framework SystemConfiguration</option>
        <option>-framework AdSupport</option>
    </linkerOptions>
    <packagedDependencies>
        <packagedDependency>ios/myproduct.framework</packagedDependency>
    </packagedDependencies>
</platform>

我将它打包在构建命令中。

adt -package -target ane myproduct.ane extension.xml -swc myproduct.swc -platform Android-ARM -C android . -platform iPhone-ARM -platformoptions iosoptions.xml ios/myproduct.framework -C ios  . -platform default -C default .;

那么有人可以解释为什么它正确地构建了它,但它无法运行?也许你可以让我走上正确的轨道来解决这个问题。

提前致谢。

2 个答案:

答案 0 :(得分:1)

我已经弄清楚了。我被指向错误的方向。正是ANE本身造成了这个问题。它没有为armv7正确构建,本机库的构建目标设置为模拟器。我将其更改为iOS设备并且有效。当然,我很快就会为模拟器和真实设备进行编译。

如果有人偶然发现这个问题,请随时给我发消息,也许我可以提供帮助。

答案 1 :(得分:0)

它来自Xcode菜单(在构建按钮的右侧),您选择iOS设备而不是iOS模拟器,然后按下构建按钮。