28

clang:错误:没有这样的文件或目录:'/Users/admin/Library/Developer/Xcode/DerivedData/__TESTING__-fzbkvdbnndieeagphtjhdndiyttl/Build/Products/Debug-iphoneos/libCordova.a'

我如何得到这个丢失的libCordova.a

对齐顶部
(来源:kerrydeaf.com

更新:对于西蒙·日尔曼。 对齐顶部

更新:对于西蒙·日尔曼。我没有看到“身份和类型”。我可以看到“身份”。我正在使用 xcode 4.5 (来源:kerrydeaf.com对齐顶部

对齐顶部

更新:对于西蒙·日尔曼。我得到了身份。

对齐顶部
(来源:kerrydeaf.com

更新:对于塞缪尔

对齐顶部
(来源:kerrydeaf.com

更新:对于 Simon Germain - 建筑。

更新:对于 james0n - armv。

对齐顶部
(来源:kerrydeaf.com

更新:对于 Simon Germain - 建筑。

更新:对于 james0n - armv。

 Undefined symbols for architecture i386:
   "_OBJC_CLASS_$_CDVURLProtocol", referenced from:
       objc-class-ref in AppDelegate.o
   "_OBJC_CLASS_$_CDVViewController", referenced from:
       _OBJC_CLASS_$_MainViewController in MainViewController.o
   "_OBJC_METACLASS_$_CDVViewController", referenced from:
       _OBJC_METACLASS_$_MainViewController in MainViewController.o
 ld: symbol(s) not found for architecture i386
 clang: error: linker command failed with exit code 1 (use -v to see invocation)

更新:对于 james0n - 有效架构。

对齐顶部
(来源:kerrydeaf.com

更新:现在解决了!!!确保所有用于 ios 6 的 armv7 和 armv7 都在 xcode 中。有效。

4

12 回答 12

18

对于您的项目,将构建设置“仅构建活动架构”设置为是。

(也许还为 CordovaLib 项目将架构构建设置设置为“标准(armv7,armv7s)”。)

于 2012-10-04T08:07:31.397 回答
9

有(和许多其他人一样)同样的问题,这就是我所做的:

  1. 重做 Phonegap 的入门指南(包括再次下载和提取源代码)
  2. HelloWorld 应用也有同样的问题
  3. 产品 - 清洁
  4. 根据 james0n 的回答更改了 'HelloWorld' 和 'CordovaLib'-项目(所以不是目标),设置:

架构:标准(armv7、armv7s)

仅构建活动架构:是

然后它神奇地起作用了,但我认为步骤 3 和 4 做到了。

于 2012-10-08T08:00:13.797 回答
4

我和你有同样的问题,很好地部署到模拟器但没有部署到设备上。建议的答案都不适合我。

这对有用:

将部署目标设置为 v4.3,并在项目的项目设置中CordovaLib,将其设置Build Active Architecture OnlyYes. (在您的主要项目中不需要)。
重要的是,做一个产品-> 清理和重建。

于 2012-10-06T20:15:19.673 回答
4

只需要从 YourProject 和 CordovaLib 中删除armv6 :从 CordovaLib 中删除 armv6 并对 YourProject 执行相同操作

这样做的后果是什么?显然,它仍在 iPhone 3GS 上运行,但不是以前的版本。

于 2012-10-03T22:57:43.217 回答
3

确保 CordovaLib 的产品目标设置为右侧面板上的“相对于已构建产品”,左侧第一个选项卡,在“身份和类型”下。

在此处输入图像描述

于 2012-10-03T21:04:30.743 回答
1

另外-确保您一次打开的PhoneGap Xcode项目不超过一个-我在两者之间遇到了冲突。“工作区已在另一个工作区中打开”类型的循环。

于 2012-10-09T11:12:51.323 回答
1

你必须运行更新脚本,我知道这样做可能会很痛苦,但这就是它所需要的。

从官方网站下载并打开Phonegap 2.1 包。打开终端窗口,cd 到安装目录

您需要首先创建一个新项目:

./create [project_folder_path] [package_name] [project_name]

然后,您需要设置库的路径。

/update_cordova_subproject [xcodeproj file]

现在打开您的项目并将部署目标设置为 4.3,您应该可以开始了。希望有帮助

编辑:

这就是我的 CordovaLib 项目配置的样子

在此处输入图像描述

于 2012-10-04T15:58:04.753 回答
1

从此处下载 Cordova 安装程序http://phonegap.com/download。确保它与您当前使用的版本相同(例如 2.0)。

然后挂载在 ios 目录中找到的 dmg。

然后运行 ​​.pkg 安装程序。

重新启动 Xcode。

于 2012-10-03T21:09:35.187 回答
1

我通过从有效架构设置中删除 armv6 和 i386 架构来解决此问题

于 2012-10-24T13:25:42.690 回答
1

在花费了很多时间并遇到更多错误之后,这对我有用。基本上结合了上述大部分内容:

  1. 从新的 Cordova 副本开始。如果你像我一样一直在弄乱它,它就不再新鲜了。
  2. 将 Cordova 文件移出下载目录(我倾向于不时清理该目录......)
  3. 按照 Phonegap 文档中的描述创建一个新项目,即将 ios/bin 文件夹拖到终端图标并在终端中运行创建脚本。无需运行 update_cordova_subproject 脚本。
  4. 在 XCode 中打开项目。
  5. 对于您的产品,将 iOS 部署目标设置为 4.3(我在项目和目标构建设置中都做了 2 次)。
  6. 对于 CordovaLib.xcodeproj,在 Project Build Settings 中将 Build for Active Architecture 设置为 Yes。
  7. 清洁并运行。

不要在任何架构列表中包含 armv7s,因为它不会为设备构建。

在模拟器和装有 iOS 6 的 iPad 上测试。使用 Phonegap 2.1.0 和 XCode 4.5.1。

更新:如果你想支持 iPhone 5,你需要 armv7s。它需要https://issues.apache.org/jira/browse/CB-1360中的修复,该修复将在 Cordova 2.2.0 中。(还没有尝试过,正在做一个 iPad 项目。)

于 2012-10-09T17:15:04.283 回答
0

除了其他一些建议和帖子之外,我发现我只在 AdHoc 构建中遇到了这个问题。请注意,我在调试过程中发现了这一点,因为如果我将 Edit Scheme > Archive build configuration 设置为“release”,它会正常工作,但如果设置为 AdHoc,它会给我一个链接错误,告诉我这个文件不能成立:

/Users/jason/Library/Developer/Xcode/DerivedData/MommyNearest-ceourmykvgxdekbkmzenuvhcfnzk/Build/Intermediates/ArchiveIntermediates/MommyNearest/BuildProductsPath/Adhoc-iphoneos/libCordova.a

这实际上是问题所在的一个很好的线索,即 CordovaLib 子项目不知何故没有 AdHoc 配置(它只有“调试”和“发布”配置)。

因此,在构建 AdHoc 版本(与 Testflight 一起使用)时,它不会为该文件正确创建符号链接。一旦我向 CordovaLib 子项目添加了“AdHoc”配置,它就开始工作了。

在此处输入图像描述

于 2014-08-20T20:15:02.187 回答
0

我也有这个问题。我认为这是因为我之前安装了一个旧版本的 phone gap,它在 xcode 中安装了一些东西。我卸载了,然后重新安装了xcode。然后我运行了电话间隙附带的 Uninstall Cordova.applescript。这解决了红色 libCordova.a 的问题

于 2013-02-19T15:35:25.663 回答