每当我将新文件添加到项目时,都会使用默认位置“相对于组”和问题路径(例如)添加该文件:
../../../../../MyUsername/Folder/Foo/Foo/Foo/Bar.swift
这好像不是将文件放在另一个用户的目录中一样。在这种情况下,../myUsername
解析为.
。每个其他双点相同。您可以将其简化如下:
../../../../../MyUsername/Folder/Foo/Foo/Foo/Bar.swift
../../../../Folder/Foo/Foo/Foo/Bar.swift
../../../Foo/Foo/Foo/Bar.swift
../../Foo/Foo/Bar.swift
../Foo/Bar.swift
Bar.swift
因为从字面上看,它沿着路径前进,然后以相同的方式返回。它等效于cd ../; cd ~-
在shell中运行。
我希望这条路很简单Bar.swift
。使用共享代码时,这会导致许多问题,因为其他人在不同位置使用不同的用户名创建了该项目。
到目前为止,我发现的唯一解决方案是手动编辑project.pbxproj
文件。是什么导致此问题,我应如何解决?
注意:我怀疑这可能与用户名有关,因为用户名早于路径。
编辑:这是屏幕截图(红色是我的用户名,绿色是应用程序的名称):
另外,cd
进入目录并运行realpath ../../../../../MyUsername/Folder/Foo/Foo/Foo/Bar.swift
return Bar.swift
。
编辑2:我怀疑用户名区分大小写是正确的!看看当我将Location设置为时会发生什么Absolute Path
:
此前,用户名是唯一的首字母(../MyUsername
,/Users/MyUsername
,等)。但是,现在Xcode似乎可以了:
我认为这是Xcode中的错误。如果我不得不猜测,内部发生的事情是:
/foo/bar/baz.swift
,组为/foo
,则预期结果为bar/baz.swift
。/Users/myusername/Folder/Foo/Foo/Foo
与/Users/MyUsername/Folder/Foo/Foo/Foo/Bar.swift
。../
)将问题移到文件树中最远的位置。/Users/myusername/Folder/Foo/Foo/Foo/../../../../..
或简单地说/Users
。/Users
该路径,因为两个路径都相同)。/Users/myusername/Folder/Foo/Foo/Foo/../../../../../MyUsername/Folder/Foo/Foo/Foo/Bar.swift
。当location设置Relative to Group
为时,隐含该组的路径,因此先前的路径仅变为:
../../../../../MyUsername/Folder/Foo/Foo/Foo/Bar.swift
。
熟悉的?
无论如何,我该如何解决????
事实证明,问题在于我将主目录路径设置为与实际文件夹不同的大小写。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句