Добавление подпроекта Xcode: Разве не должны копироваться все исходные файлы?

Я вручную добавляю подпроект SQLite.swift в свой проект. Как указано в инструкции, я скопировал файл.xcodeproj в свой проект. Это позволяет мне видеть все исходные файлы (в отличие от этого вопроса).

Казалось, все работает нормально. Однако я обнаружил, что исходные файлы этого подпроекта не были скопированы в мой проект. Они все еще находятся в оригинальном месте, где я их скачал. Это по замыслу? Что если я хочу поделиться исходным кодом моего проекта с другими людьми в будущем? У них не будет источника подпроекта, необходимого для работы моего проекта.

Если мне нужно скопировать источник подпроекта в мой проект, то как мне это сделать?

2 ответа

Решение

Сначала добавьте его в структуру вашей файловой системы. Например, нажав "Показать в Finder" в проекте "Chimee", который приведет вас к папке, в которой он находится. Затем скопируйте туда структуру проекта SQLite.

После этого вы можете перетащить xcodeproj в ваш проект, который все равно будет ссылаться на его первоначальный путь, но, поскольку он теперь находится внутри вашей структуры проекта, больше не проблема.

Я предполагаю, что это сделано специально, потому что, когда вы попробуете это через " Добавить файлы в"YourProject"", вы можете выбрать " Копировать элементы", если это необходимо, - опция, но она все равно не будет скопирована (только с.xcodeproj-файлами, она работает со всеми остальными). типы файлов)

Проведя дополнительные исследования, я теперь чувствую, что использование менеджера зависимостей (например, CocoaPods или Carthage) является лучшим вариантом, чем ручное добавление фреймворка в проект.

  • Это позволит легче обновлять в будущем.
  • Проблемы с совместным использованием исходного кода Github и отправкой в ​​App Store уже рассматривались.

Использование Карфагена не так уж сложно, если вы будете следовать этому прекрасному руководству: Карфаген Учебник: Начало работы

Заметки

  • Удалите файлы инфраструктуры, которые вы скопировали вручную, перед установкой платформы с помощью Carthage.
  • Я оставлю ответ @TMob как принятый на данный момент, но я больше не иду по этому пути.
Другие вопросы по тегам