10 回答
这是基于之前发布的Apple Dev Forum的如何避免问题的描述。它对我有用,所以我为那些不想去论坛注册的人重新发布描述。
该错误是由于 XCode 5 在处理用户向项目中添加新文件或文件夹时出现的错误。
Xcode 正在修改“库搜索路径”构建设置,并把它弄得一团糟。它不是添加 $(SRCROOT)/ 而是向所有新项目添加完全根路径,并将随机数量的 /// 添加到字符串的其他元素中。在某些情况下,它似乎也在复制源路径,可能是因为它破坏了现有路径,并且认为它们需要再次添加。
解决方案:
- 将您的库搜索路径字符串复制到文本编辑器中。
- 删除任何不应该存在的完全根路径,并将它们替换为通常的 $(SRCROOT)/MyFiles/ 类型路径。
- 删除所有多余的斜杠并确保每个路径的开头和结尾都有一个 " 字符,以防止文件名中出现空格。
- 将编辑后的字符串粘贴回构建设置。
- 清洁,然后构建。应该恢复正常。
如果您将新文件添加到项目中,此错误很可能会再次出现,因此请注意。
我的 project.pbxproj 看起来像这样:
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\\\"$(SRCROOT)/AdMob-v6.4.1\\\"",
"/MyProject/AdMob-v6.5.1",
);
我关闭了 MyProject,删除了包含 的行AdMob-v6.4.1
,重新打开了项目,执行了“验证项目设置”,清理并构建,现在一切都很好。
是的,Xcode 有时很笨拙。
您是否尝试过清理构建(Product > Clean Build Folder / Shift-Cmd-K)并重试?
您可以做的另一件事是搜索[project_name].xcodeproj/project.pbxproj中的两个条目,删除它们,关闭 XCode,重新打开,清理构建文件夹并重试。
祝你好运!
总结一下@user2963906 的建议,我展示了我对这个问题的解决方案,我认为这很容易。
我假设您的项目文件夹中有所有文件和库。
- 打开你的项目目标
- 查找搜索路径主题和库搜索路径
- 在此处选择并删除所有路径
- 然后像这样添加路径:
$(SRCROOT)/"Your App Name"
- 在同一个窗口中将下拉列表从右边更改
non-recursive
为recursive
- Shift-⌘-K 并运行您的项目
我在 iOS 开发者论坛上找到了一个解决方案。Xcode 5 发生在我身上。请参阅Massive Linker Error Warnings (directory not found for option) yet。对我来说,这是由 Xcode 5 破坏了“库搜索路径”构建设置引起的。
我不得不用 \ 转义任何空格
例如:
/Users/Me/Folder\ with\空格\(和\括号\)
在图书馆搜索路径中
我遇到了同样的问题,但由于项目属性窗口中没有显示库文件夹,因此无法按照步骤修复它。
所以我用另一种方式解决了它(你需要能够使用终端和VIM编辑器。还要备份项目以防万一)
- 打开终端窗口
- 转到项目文件夹。
- XCode 项目是一个文件夹。使用 cd 项目名称进入该文件夹。
- 使用 vim 打开和编辑 project.pbxproj 文件。
- 通过使用 / 搜索并在该行上使用 dd 命令删除它来删除对违规行的引用。
- 使用 :wq 命令保存
在 XCode 中打开项目并构建。奇迹般有效。
简单的解决方案:
这对我有用
当您想通过 xcode 5 及更高版本向项目添加新文件或文件夹时,错误显示。只需按照以下简单步骤操作即可。(请不要忘记备份您的项目)。
- 在旧 XCode 中打开您的项目(我推荐 XCode 4.6.3)
- 添加您的文件或文件夹。(它不会像在 XCode 5 中那样弄乱你的库搜索路径)
- 关闭旧的 xcode 并使用 XCode 5 打开您的项目并开始编码。
这对我有用:
创建这个真实的目录(没有内容),将它们添加到项目中,通过删除引用删除,清理,真正删除
在项目文件夹 -> 目标中,在“构建设置”下搜索“库搜索路径”,然后简单地删除调试和发布区域中的先前路径。
现在使用 + 符号在行下方添加行
$(PROJECT_DIR)/库
注意:添加上述行后,从弹出窗口中单击。它会自动显示完整路径。如果在 $(PROJECT_DIR)/ 之后添加任何更正,请使用 Finder 检查此路径
Clean , Build and Run ... 很简单,它清除了那个错误。:)
-阿努普