Добавление подпроекта Xcode: Разве не должны копироваться все исходные файлы?
Я вручную добавляю подпроект SQLite.swift в свой проект. Как указано в инструкции, я скопировал файл.xcodeproj в свой проект. Это позволяет мне видеть все исходные файлы (в отличие от этого вопроса).
Казалось, все работает нормально. Однако я обнаружил, что исходные файлы этого подпроекта не были скопированы в мой проект. Они все еще находятся в оригинальном месте, где я их скачал. Это по замыслу? Что если я хочу поделиться исходным кодом моего проекта с другими людьми в будущем? У них не будет источника подпроекта, необходимого для работы моего проекта.
Если мне нужно скопировать источник подпроекта в мой проект, то как мне это сделать?
2 ответа
Сначала добавьте его в структуру вашей файловой системы. Например, нажав "Показать в Finder" в проекте "Chimee", который приведет вас к папке, в которой он находится. Затем скопируйте туда структуру проекта SQLite.
После этого вы можете перетащить xcodeproj в ваш проект, который все равно будет ссылаться на его первоначальный путь, но, поскольку он теперь находится внутри вашей структуры проекта, больше не проблема.
Я предполагаю, что это сделано специально, потому что, когда вы попробуете это через " Добавить файлы в"YourProject"", вы можете выбрать " Копировать элементы", если это необходимо, - опция, но она все равно не будет скопирована (только с.xcodeproj-файлами, она работает со всеми остальными). типы файлов)
Проведя дополнительные исследования, я теперь чувствую, что использование менеджера зависимостей (например, CocoaPods или Carthage) является лучшим вариантом, чем ручное добавление фреймворка в проект.
- Это позволит легче обновлять в будущем.
- Проблемы с совместным использованием исходного кода Github и отправкой в App Store уже рассматривались.
Использование Карфагена не так уж сложно, если вы будете следовать этому прекрасному руководству: Карфаген Учебник: Начало работы
Заметки
- Удалите файлы инфраструктуры, которые вы скопировали вручную, перед установкой платформы с помощью Carthage.
- Я оставлю ответ @TMob как принятый на данный момент, но я больше не иду по этому пути.