目前我正在开发一个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 .;
那么有人可以解释为什么它正确地构建了它,但它无法运行?也许你可以让我走上正确的轨道来解决这个问题。
提前致谢。
答案 0 :(得分:1)
我已经弄清楚了。我被指向错误的方向。正是ANE本身造成了这个问题。它没有为armv7正确构建,本机库的构建目标设置为模拟器。我将其更改为iOS设备并且有效。当然,我很快就会为模拟器和真实设备进行编译。
如果有人偶然发现这个问题,请随时给我发消息,也许我可以提供帮助。
答案 1 :(得分:0)
它来自Xcode菜单(在构建按钮的右侧),您选择iOS设备而不是iOS模拟器,然后按下构建按钮。