Phonegap / Cordova构建错误 - Apple Mach-O链接器错误:没有这样的文件或目录:libCordova.a

时间:2012-09-27 12:29:29

标签: xcode cordova

创建新的Cordova 2.1.0项目并使用之前的PhoneGap应用程序中的某些代码更新www文件夹后,出现错误。

clang: error: no such file or directory: '/Users/peterbanjo/Library/Developer/Xcode/DerivedData/OpuzMobile-bhwawiqfaptmxvfosawfabudgbkj/Build/Products/Debug-iphoneos/libCordova.a'

只有在我尝试在设备上运行应用程序时才会出现错误 - 在模拟器中它运行正常。

我在目标iPad上运行Xcode 4.5和iOS6。我尝试了一个干净的构建,并且libCordova.a出现在Build Phases>链接库与库选项卡,但它是红色。

8 个答案:

答案 0 :(得分:43)

通过从1.4升级,我发现与PhoneGap / Cordova 2.1.0混淆的是我的应用程序中有两个项目。有MyApplication.xcodeproj和CordovaLib.xcodeproj。解决此问题的更改需要应用于CordovaLib项目。

  • 更改"仅构建活动架构"到"是"
  • 更新文本文件project.pbxproj to these values
  • 在模拟器和设备的构建架构之间切换(使用停止按钮旁边的选择菜单。不知何故,这似乎会导致检测到更改。)

这对你有用吗?我错过了什么吗?

PS:为了更好地理解这个问题,请看一下这个Google Forum thread

答案 1 :(得分:16)

我正在使用Cordova / Phonegap 2.9,这解决了我的问题。没碰到任何拱形的东西。一切都设置在我的armv7 armv7s上。

请按照以下步骤解决此问题:

  1. 转到项目设置和构建选项卡。
  2. 搜索“其他链接标志”
  3. 双击Release和Change $ {TARGET_BUILD_DIR} /libCordova.a的链接器标志到$ {BUILT_PRODUCTS_DIR} /libCordova.a
  4. 对Debug Clean和再次构建存档执行相同的操作

答案 2 :(得分:6)

我遇到了同样的错误,并通过恢复旧版的cordova ios来修复它。

解决问题的步骤:

  1. 首先使用npm uninstall cordova-ios
  2. 卸载cordova-ios
  3. 使用npm install cordova-ios@4.4.0
  4. 安装旧版本的cordova-ios
  5. 使用ionic cordova platform rm iosionic platform rm ios
  6. 删除现有的ios平台
  7. 之后我们应该添加ionic cordova platform add ios@4.4.0ionic platform add ios@4.4.0
  8. 的平台
  9. Run ionic cordova build ios。
  10. 说明来自here

答案 3 :(得分:3)

只需要从YourProject和CordovaLib中删除 armv6 remove armv6 from CordovaLib and do the same for YourProject

这样做的后果?显然,它仍在使用iPhone 3GS,但不是以前的版本..

答案 4 :(得分:3)

为了使其正常工作,我从http://connect.apple.com单独下载了Xcode 4.4.1。使用此版本,我可以使用armv6构建我的phonegap应用程序:)

是的,在这种情况下,您需要在计算机上安装两个Xcode。

答案 5 :(得分:1)

看看这个https://groups.google.com/forum/?fromgroups=#!topic/phonegap/ywoc9wNydZ8

适合我

- OS X 10.8.2 XCode 4.5 iOS 6.0 PhoneGap 2.1.0

答案 6 :(得分:1)

不要认为拥有Standard (armv7,armv7s) - $(ARCHS_STANDARD_32_BIT) 与上面的修复相同。 手动将此值更改为仅armv7,并为我修复此值。 我非常沮丧。

答案 7 :(得分:0)

如果您在此处执行了所有操作但仍然无法正常工作,除了发布和调试之外,您还有其他配置 - 此示例为“生产”。确保Cordova项目中存在“生产”构建配置。构建Cordova项目并再次构建+归档您的主项目。