【问题标题】:Missing architecture when adding framework to AIR Native Extension (ANE)向 AIR 本机扩展 (ANE) 添加框架时缺少架构
【发布时间】:2014-01-16 09:51:15
【问题描述】:

目前我正在开发 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 .;

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

提前致谢。

【问题讨论】:

    标签: ios frameworks air adobe


    【解决方案1】:

    我想通了。我被指向了错误的方向。是 ANE 本身导致了问题。它没有为 armv7 正确构建,本机库的构建目标设置为模拟器。我将其更改为 iOS 设备并且它工作。当然我会尽快让它为模拟器和真实设备编译。

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

    【讨论】:

    • 我想知道,您在 Xcode 中的 Build Settings 中究竟在哪里更改了构建目标?或者当您构建 ANE 时,用户 adt 命令?我在 XCode 中检查了我的库“构建设置”,它完成了,“iOs 部署目标”是 Ios 4.3
    • 很遗憾,我无法检查它,因为我不再为那家公司工作。不过我确实记得,问题在于它是为 ARMv7 而不是为 i386 设置的。我相信它在 XCode 构建设置中,但我不知道具体在哪里。祝你好运,我希望我能提供更多帮助。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-06-06
      • 2019-06-17
      • 2013-10-08
      • 2013-03-19
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      • 1970-01-01
      • 2013-12-14
      相关资源
      最近更新 更多