迁移 Xcode 项目后无法更改位置/路径设置
Posted
技术标签:
【中文标题】迁移 Xcode 项目后无法更改位置/路径设置【英文标题】:Unable to change location / path settings after migrating Xcode project 【发布时间】:2011-10-18 12:34:01 【问题描述】:我已将 Xcode 项目(ios 应用程序)从一台 mac 迁移到另一台(相同的开发帐户和代码签名首选项)。现在构建失败,我收到错误消息,指出某些文件(MainWindow.xib、MyappViewController.xib 和 InfoPlist.string)不存在。我已经读到有几个人以前遇到过这个问题并尝试了他们得到的答案,但似乎没有任何效果。
据我了解,问题在于 NIB 文件的路径首选项。错误消息将文件的路径指定为 Users/Meonmyoldmac/etc - 我应该更改它,因为它是绝对路径,因此在另一台计算机上没有意义。但是:当我尝试在“组和文件”下打开这些文件时,它们的位置已经设置为“相对于组”,并且它们的路径以 Users/Meonmynewmac/etc 的形式给出。 - 这正是我真正想要的样子。 (奇怪的是,文件类型被列为“默认 - 未知”)
我已经试过了…… - 清理项目 - 从项目中删除这些文件并重新放入 - 多次重启Xcode
这可能很重要: - 我说的是通用 iOS 应用程序,但只有 iPhone 文件受到影响;他们的 iPad 等价物工作正常 - 我将应用程序本地化更改为德语,因此上述文件位于名为 de.lproj 的文件夹中 - 我在旧的 Snow Leopard Mac 上使用 Xcode 4 创建了项目,并在新的 Mac 上使用 Lion/Xcode 4.2 - 这在这里有什么作用吗?
提前致谢,果味的
【问题讨论】:
【参考方案1】:如果您的某些文件有绝对路径,则需要将它们更改为相对路径:
-
在
Project Navigator
中,找到丢失的文件(红色表示未找到)并突出显示其中一个。
显示File Inspector
在Location
下将Absolute Path
更改为Relative to group
或Relative to project
,
然后在路径旁边有一个白色的小图标,点击它并选择文件的位置。
【讨论】:
【参考方案2】:右键单击 Finder 中的文件,选择 Get Info
。检查您是否有权读取文件。
编辑:刚刚注意到错误消息是指旧路径,所以它不可能是权限问题。
组也可以设置路径。选择组并验证其路径是否正确。
【讨论】:
我才意识到这一点。检查我的编辑是否有另一种可能性。 组路径也输入正确(相对,新Mac)。尽管如此,当我尝试构建时,我收到显示另一个错误路径的错误消息(绝对,旧 Mac)。这是某种 Xcode 人格障碍吗?! 打开终端,cd /Users/Menonmynewmac/etc
并运行 grep -ri Meonmyoldmac .
。希望搜索能够找出负责的文件或设置。
"组也可以设置路径。选择组并验证其路径是否正确。"谢谢!这是我的问题。对于组中的文件,您还可以选择“相对于项目”位置而不是“相对于组”。【参考方案3】:
在 XCode 4 中,当您打开所有三个窗格时,选择最左侧窗格中的文件。在最右侧的窗格中,选择顶部的白色文档图标,查找标题“身份和类型”。在“位置”的弹出窗口下是文件的名称。该名称的右侧是一个像窗口一样的小图标。点击它,您可以设置文件的位置。
【讨论】:
感谢您的回答,但这正是我现在多次所做的 - 仍然得到“Interface Builder无法打开文档“MainWindow.xib”,因为它不存在。'跨度> 【参考方案4】:我昨天执行了 Jim 建议的终端搜索,在 project.pbxproj 中找到了一些“源树:绝对”条目并尝试操作它们,但没有成功 - 之后甚至无法在 Xcode 中打开项目 - 所以我收工了。
刚刚我在发布我的问题之前做了我昨天已经尝试过的事情:我从项目中删除了文件并再次将它们复制回来。这奇迹般地消除了我项目中的所有红色警告标志,当我尝试在模拟器上运行它时,它给了我一个漂亮的绿色 SIGABRT。清理项目,重新启动 Xcode - 完美。哦,我检查了目标设备系列设置,发现它设置为 iPhone 并将其切换到 iPhone/iPad - 不知道这是否是问题的一部分。
我不确定这是否真的是问题的答案 - 但问题已经消失了......
感谢您的帮助!
【讨论】:
【参考方案5】:减少操作的解决方案。您可以在项目定义文件中手动更改。
关闭 xCode 在文本编辑器中打开 .xcodeproj 文件:实际上它是一个文件夹,所以在文本编辑器中编辑里面的文件:project.pbxproj。 搜索字符串:absolute(用于 sourceTree 参数) 对于每个条目(设置了绝对路径的文件),将 absolute 更改为 group。并将 path 参数更改为相对路径。例子: 路径 = en.lproj/PilotInfoViewController.xib; - 保存文件并重新打开 xCode。
PS:在进行此操作之前,请备份您的项目文件。
【讨论】:
以上是关于迁移 Xcode 项目后无法更改位置/路径设置的主要内容,如果未能解决你的问题,请参考以下文章
从 xcode 创建一个“命令行工具”项目,然后设置并运行 NSApplication。此应用程序中的光标无法更改