Местоположения XCode не работают должным образом
Каждый раз, когда я добавляю новый файл в проект, он добавляется с местоположением по умолчанию "Относительно группы" и проблемным путем (например):
../../../../../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 ~-
в оболочке.
Я ожидал, что путь будет просто Bar.swift
, Это вызывает много проблем при использовании общего кода, потому что другие люди имеют проект в разных местах с разными именами пользователей.
Единственное решение, которое я нашел, - это ручное редактирование project.pbxproj
файл. Что вызывает эту проблему и что я должен сделать, чтобы исправить это?
Примечание: я подозреваю, что это может иметь какое-то отношение к случаю имени пользователя из-за того, что имя пользователя задано так же далеко, как и путь.
РЕДАКТИРОВАТЬ: Вот снимок экрана (красный - мое имя пользователя, а зеленый - имя приложения):
Раньше имя пользователя было только заглавным регистром (../MyUsername
, /Users/MyUsername
, так далее.). Тем не менее, теперь XCode, кажется, идет:
- Вниз по дереву каталогов от имени пользователя в нижнем регистре (до папки группы)...
- Прошлый каталог, содержащий проект...
- В каталог, содержащий файл...
- Резервное копирование в каталог пользователей...
- Вниз по тому же пути с именем пользователя регистра.
Я думаю, что это ошибка в Xcode. Если бы мне пришлось угадывать, что происходит внутри:
- Xcode получает абсолютный путь к файлу
- Из средства выбора файлов при добавлении
- Из средства выбора файлов при перемещении, нажав значок папки в разделе "Расположение"
- Как-то от создания нового файла (?)
- Этот путь использует имя пользователя для регистра.
- Xcode получает абсолютный групповой путь
- Из его записей (project.pbxproj?)
- По какой-то причине этот путь использует имя пользователя в нижнем регистре
- Xcode пытается выяснить путь от #1 относительно пути от #2.
- Например, если путь к файлу был
/foo/bar/baz.swift
и группа была/foo
, ожидаемый результатbar/baz.swift
, - Xcode начинается с абсолютного пути к группе (потому что конечный путь должен быть относительно группы).
- Xcode смотрит на оба пути и сравнивает их.
/Users/myusername/Folder/Foo/Foo/Foo
против/Users/MyUsername/Folder/Foo/Foo/Foo/Bar.swift
, - XCode видит, что единственные различия:
- В конце пути (один имеет имя файла, а другой нет)
- В имени пользователя (myusername vs MyUsername)
- XCode перемещается к самой дальнейшей проблеме вверх по дереву файлов, используя двойную точку (
../
)./Users/myusername/Folder/Foo/Foo/Foo/../../../../..
или просто/Users
, - XCode запускается снова, но на этот раз использует оставшуюся часть абсолютного пути к файлу (XCode никогда не возвращается к
/Users
потому что это одинаково для обоих путей). - Xcode продолжает весь путь до имени файла, используя имя пользователя Case title.
/Users/myusername/Folder/Foo/Foo/Foo/../../../../../MyUsername/Folder/Foo/Foo/Foo/Bar.swift
,
- Например, если путь к файлу был
Когда местоположение установлено на Relative to Group
, путь к группе подразумевается, поэтому предыдущий путь просто становится:
../../../../../MyUsername/Folder/Foo/Foo/Foo/Bar.swift
,
Знакомый?
В любом случае, как мне это исправить?????
0 ответов
Оказывается, проблема была в том, что у меня был путь к домашней директории с заглавными буквами, отличными от фактической папки.