Xcode 4.5没有这样的文件或目录 - libCordova.a

时间:2012-10-03 21:00:42

标签: xcode ios6

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

如何让这个缺少 libCordova.a

align top http://www.kerrydeaf.com/libCordova.a.png

更新:对于Simon Germain。 align top http://www.kerrydeaf.com/update.png

更新:对于Simon Germain。我没有看到“身份和类型”。我可以看到“身份”。我正在使用xcode 4.5 align top http://www.kerrydeaf.com/id.png

align top http://www.kerrydeaf.com/update.png

更新:对于Simon Germain。我得到了身份。

align top http://www.kerrydeaf.com/cor.png

更新:对于塞缪尔

align top http://www.kerrydeaf.com/armv6.png

更新:对于Simon Germain - 建筑。

更新:对于james0n - armv。

align top http://www.kerrydeaf.com/new.png

更新:对于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 - 有效架构。

align top http://www.kerrydeaf.com/valid.png

更新:现在解决了!在xcode中确保ios 6上的所有armv7和armv7s。它奏效了。

12 个答案:

答案 0 :(得分:18)

对于您的项目,将构建设置“仅构建活动体系结构”设置为yes。

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

答案 1 :(得分:9)

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

  1. 从Phonegap重新编写入门指南(包括下载 并再次提取来源)
  2. HelloWorld应用程序的相同问题
  3. 产品 - 清洁
  4. 根据james0n的回答更改了'HelloWorld'和'CordovaLib' - 项目(所以不是目标):设置:
  5.   

    架构:标准(armv7,armv7s)

         

    仅构建活动架构:是

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

答案 2 :(得分:4)

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

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

答案 3 :(得分:4)

我遇到了和你一样的问题,可以很好地部署到模拟器而不是设备上。这些建议的答案都不适合我。

以下是 为我工作的内容:

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

答案 4 :(得分:3)

确保CordovaLib产品的目标设置为右侧面板上的“相对于内置产品”,左侧的第一个标签,位于“标识和类型”下。

enter image description here

答案 5 :(得分:1)

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

然后安装在ios目录中找到的dmg。

然后运行.pkg安装程序。

重启Xcode。

答案 6 :(得分:1)

你必须运行更新脚本,我知道这可能是一个痛苦的屁股,但这就是它需要的。

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

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

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

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

/update_cordova_subproject [xcodeproj file]

现在打开您的项目并将部署目标设置为4.3,您应该准备好了。希望有所帮助

编辑:

这是我的配置在CordovaLib项目中的样子

enter image description here

答案 7 :(得分:1)

另外 - 确保您一次没有打开多个PhoneGap Xcode项目 - 我之间的冲突正在发生。 “工作区已在另一个工作区中打开”循环类型。

答案 8 :(得分:1)

花了很多时间来处理更多错误后,这对我有用。基本上结合了上述的大部分内容:

  1. 从Cordova的新副本开始。如果你像我一样搞乱它,它就不再那么新鲜了。
  2. 将Cordova文件移出下载目录(我倾向于立即清理该目录......)
  3. 按照Phonegap文档中的说明创建一个新项目,即将ios / bin文件夹拖到终端图标并在终端中运行创建脚本。无需运行update_cordova_subproject脚本。
  4. 在XCode中打开项目。
  5. 对于您的产品,将iOS部署目标设置为4.3(我在项目和目标构建设置中都做了2倍。)
  6. 对于CordovaLib.xcodeproj,在项目构建设置中将Build for Active Architecture设置为Yes。
  7. 清洁并运行。
  8. 不要在任何架构列表中包含armv7,因为它不会为设备构建。

    在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项目上工作。)

答案 9 :(得分:1)

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

答案 10 :(得分:0)

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

的问题

答案 11 :(得分:0)

除了其他一些建议之外&帖子,我发现我在AdHoc版本中遇到了这个问题。请注意,我在调试期间想出了这个,因为如果我设置编辑方案>将构建配置存档到"发布"它会工作正常,但如果设置为AdHoc它会给我一个链接错误,告诉我无法找到这个文件:

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

这实际上是问题所在的一个很好的线索,也就是CordovaLib子项目不具备AdHoc配置(它只有#34; Debug"和#34; Release"配置)。

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

enter image description here