昨天 (3/10/14) iOS 7.1 发布时,我也升级到 Xcode 5.1,发现我的 PhoneGap/Cordova 项目将不再编译到我的 iPhone 5s。我还将 Cordova 升级到最新版本:v 3.4.0-0.1.3。
我已经阅读了许多关于 SO 的不同解决方案,这些解决方案涉及如此多变的事件架构和仅构建事件架构,但它们都不起作用。所以这就是我尝试过的和我得到的错误。最初我得到了错误:
missing required architecture arm64 in file <long file path omitted> libCordova.a
Undefined symbols for architecture arm64
所以我尝试了以下方法。我在我的项目中选择了 CordovaLib 子项目,在项目和目标中,我都转到了 Architectures 下的 Build Settings 并确保 arm64
未包含在任何调试或发布架构中。此时 Build Active Architecture Only 设置为“Yes”。这导致了以下错误:
file was built for archive which is not the architecture being linked (armv7):
<long file path omitted> libCordova.a
Undefined symbols for architecture armv7
将Build Active Architecture Only设置为“No”,错误再次变为:
missing required architecture arm64 in file <long file path omitted> libCordova.a
Undefined symbols for architecture arm64
我不确定还能尝试什么。该项目的架构设置仅包括设置为 iOS 7.1 的关键“Base SDK”。该项目的目标没有体系结构设置。无论如何,我相当确定问题出在嵌入式 CordovaLib 子项目上。我该怎么做才能使这个东西成功编译到我的设备上?
更新:Apache 的 Jira 上的相同问题:https://issues.apache.org/jira/browse/CB-6223
最佳答案
@Shazron 在 Apache JIRA 上发布了修复程序 - 他指出该修复程序将作为 Cordova 3.5 的一部分发布:
- 选择您的项目图标
- 选择build设置。
- 对于“架构”,选择 $ARCHS_STANDARD - 标准架构(armv7、armv7s、arm64)
- 对于“有效架构”,添加“arm64”
- 选择您的 CordovaLib.xcodeproj 图标
- 在项目(而非目标)的build设置中,删除条件架构设置(悬停以查看减号)
- 对于“架构”,选择 $ARCHS_STANDARD - 标准架构(armv7、armv7s、arm64)
- 对于“有效架构”,添加“arm64”
- 转到 6,但现在为“目标”执行此操作
这是指向 Shazron 对该问题的完整记录的链接:http://shazronatadobe.wordpress.com/2014/03/12/xcode-5-1-and-cordova-ios/
现在发布了,简短的版本是:
Cordova CLI 3.4.1-0.1.0 已发布,其中包括 Cordova iOS 3.4.1,它整合了这篇博文中提到的所有修复。更新您的 Cordova CLI,如果您有一个现有项目,请执行“cordova 平台更新 ios”。
关于ios - xcode 5.1 : libCordova. 架构问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22334680/