Создать группы против Создать ссылку на папку в XCode
Мне любопытно, когда использую xcode.
Мне всегда нужно выбирать опцию при копировании файлов классов с открытым исходным кодом, которые мне нужны для моего проекта.
Возможные варианты: "создать группу" и "создать справочную папку".
Я уже прочитал разницу между ними.
Но это совсем не понято.
Когда я выбрал один из двух вариантов, я удалил файл из своего проекта, и файл класса с открытым исходным кодом был удален одновременно.
Я этого не хочу.
Я хочу всегда существовать как самостоятельный файл. Что мне выбрать?
5 ответов
Существует два типа организации структуры проекта [XCode]:
- структура проектафайловой системы (с помощью Finder.app)
- Структура проектаIDE (видя с Навигатором проекта в Xcode's область навигатора.)
Xcode опирается на организацию файловой системы, сохраняя ссылку на "физический" файл или папку. Вот почему у вас могут быть все классы, изображения, списки и другие части ваших проектов, хранящиеся в одной папке, а ссылки на эти части хранятся в соответствующих группах в рамках проекта XCode.
Когда вы создаете группу, это влияет на организацию вашего проекта в XCode, когда вы создаете группу со справочной папкой, она создает и группу в проекте XCode, и папку в вашей файловой системе.
Однако, поскольку Xcode 9 выглядит так, как Apple, заставляет структуру проекта файловой системы соответствовать структуре проекта Xcode. Это означает, что вы явно должны выбрать "Новая группа без папки"
Мне потребовалось некоторое время, чтобы понять разницу между этими двумя вариантами, поэтому я решил поделиться:
Я пишу это, когда Xcode 10 является текущей версией
Самая большая разница в том, как импортированная папка / файл будет доступна из поиска. Допустим, вы хотите импортировать новую папку в ваш проект XCode. Когда вы выбираете Create groups
Xcode импортирует вашу новую папку и создаст группу (желтый значок). Когда вы переходите в каталог вашего проекта (используя Finder), вы должны увидеть папку с именем, подобным той, которую вы только что импортировали, но любые дополнительные файлы, которые вы помещаете в эту папку через Finder, не будут видны в вашем проекте Xcode.
Когда вы выбираете Create folder references
импортированная папка будет иметь классический синий значок папки. Эта новая папка также будет видна, когда вы перейдете в каталог ваших проектов, но теперь каждый новый файл, который вы помещаете туда, также будет появляться в вашем проекте XCode.
Если вы хотите узнать больше, просто прочитайте это объяснение http://www.thomashanning.com/xcode-groups-folder-references/
Это довольно просто и легко понять.
Добавлены файлы и папки из Finder
в Xcode
группа. Xcode 10.2.1. Взгляните на примеры безCopy items if needed
Файлы
Общее поведение для create groups
а также create folder references
- Переименовать файл из
Finder
не переименовывает файл вXcode
, в результате Xcode не обрабатывает их и помечает их красным цветом. - Переименовать файл из
Xcode
переименуйте файл вFinder
- Измените файл с
Finder
изменить файл вXcode
и наоборот - Удалить, чтобы удалить файл из
Xcode
изменить файл вFinder
и наоборот - Добавить файл из папки в
Finder
не добавляет файл в группу вXcode
Папки
Общее поведение для create groups
а также create folder references
:
- Переименовать папку / группу из
Xcode
переименовать папку вFinder
create groups
Если вы выберете create groups
, затем в навигаторе проекта появится соответствующая папка с желтым значком.
Это просто виртуальная папка. Это полезно во время разработки, когда вы копируете файл, который не компилируется, и у вас нет времени вносить в него изменения, а вы хотите только проверить, работает ли проект. Таким образом, вы можете просто удалить ссылку из файла. Он не будет удален из папки, поэтому вы снова сможете добавить этот файл.
- Переименовать папку в
Finder
не переименовывает имя группы вXcode
. Вы можете работать с группой, но предыдущий контент внутри хоть и виден, но недоступен - Добавить файл в папку в
Finder
не добавляет файл в группу вXcode
- Добавить файл в группу в
Xcode
не добавляет файл в папку вFinder
- Удалить папку в
Finder
не удаляет группу вXcode
. Вы можете работать с группой, но предыдущий контент внутри хоть и виден, но недоступен
create folder references
Если вы выбираете create folder references
, тогда папка появится с синим значком в навигаторе проекта.
Это настоящая папка, и любые изменения будут отражены
- Переименовать папку в
Finder
не переименовывает имя папки в Xcode. Предыдущее содержимое исчезло, и вы не можете работать с этой папкой - Добавить файл в папку в
Finder
добавляет файл в папку вXcode
- Добавить файл в папку в
Xcode
добавляет файл в папку вFinder
- Удалить папку в
Finder
удаляет папку вXcode
.
Создайте ссылки на папки:
- Бесполезно, потому что даже если вы укажете, что эта папка будет включена в цель, Xcode не включит какое-либо ее содержимое в эту цель, и нет возможности щелкнуть что-то в папке и посмотреть, в какие цели она включена.
Создать группы:
- Это единственный путь, если вы хотите включить любое содержимое папок в цель сборки.
Добавлены файлы и папки из Finder
в Xcode
группа. Xcode 10.2.1. Просто возьмите Лоо К на примерах без Copy items if needed
файлы
Общее поведение для create groups
а также create folder references
- Переименовать файл из
Finder
не переименовывает файл вXcode
в результате Xcode не обрабатывает это и помечает их красным цветом. - Переименовать файл из
Xcode
переименовать файл вFinder
- Изменить файл из
Finder
изменить файл вXcode
и наоборот - Удалить, чтобы удалить файл из
Xcode
изменить файл вFinder
и наоборот - Добавить файл из папки в
Finder
не добавляет файл в группуXcode
Папки
Общее поведение для create groups
а также create folder references
:
- Переименовать папку / группу из
Xcode
переименовать папку вFinder
create groups
Если вы выбираете create groups
, затем соответствующая папка появляется с желтым значком в навигаторе проекта.
Это означает, что эта папка не представляет файловую систему. Таким образом, вы можете переместить файл из группы в другую, не перемещая соответствующий файл в файловой системе. И вы можете добавить файл в real
папка в файловых системах и файл не будет автоматически отображаться в навигаторе проекта. Так что это просто виртуальная папка.
- Переименовать папку в
Finder
не переименовывает имя группы вXcode
, Вы можете украсть, можете работать с группой, но предыдущий контент внутри, хотя видимый, но недоступный - Добавить файл в папку в
Finder
не добавляет файл в группуXcode
- Добавить файл в группу в
Xcode
не добавляет файл в папку вFinder
- Удалить папку в
Finder
не удаляет группу вXcode
, Вы можете украсть, можете работать с группой, но предыдущий контент внутри, хотя видимый, но недоступный
create folder references
Если вы выбираете create folder references
, затем папка отображается с синим значком в навигаторе проекта.
Теперь эта папка отображается один в один в папку в файловой системе. Если вы удалите файл из папки в файловой системе, он также будет удален из навигатора проекта. То же самое верно, если вы добавляете файл или переименовываете его.
- Переименовать папку в
Finder
не переименовывает имя папки в Xcode. Предыдущий контент ушел и вы не можете работать с этой папкой - Добавить файл в папку в
Finder
добавляет файл в папку вXcode
- Добавить файл в папку в
Xcode
добавляет файл в папку вFinder
- Удалить папку в
Finder
удаляет папку вXcode
,
Какой выбрать?
Почти во всех случаях вы должны использовать groups
, Но в некоторых случаях имеет смысл использовать folder references
:
Иногда вы хотите поместить файлы во время процесса сборки в проект. Это могут быть, например, самые последние активы. Поэтому, если это не всегда одни и те же файлы, вам нужно выбрать ссылку на эту папку, чтобы проект мог получить доступ к этим файлам. Если кто-то вне группы разработчиков должен иметь возможность добавлять файлы ресурсов в проект, также может иметь смысл использовать ссылки на папки. Таким образом, вы должны использовать только ссылки на папки, если какие-то активы должны быть динамически вставлены в проект. Для обычных файлов проекта, таких как классы, рекомендуется использовать группы.
Источник здесь