Серверная разработка Swift на MacOS с Xcode, тестирование на Docker Ubuntu: как мне не очищать/пересоздавать каждый раз?

Вот моя установка для разработки:

В MacOS я использую Xcode для редактирования и сборки (но не запуска) своего кода (я строю под Xcode/MacOS только для того, чтобы исключить синтаксические ошибки из проекта). Я использую swift package generate-xcodeproj для создания проекта Xcode с некоторыми настройками сценария для проекта Xcode после того, как мне нужно добавить некоторые настройки.

В контейнере Docker под управлением Ubuntu, в окне терминала в Mac OS, в том же каталоге, что и в Mac OS, я запускаю свои тесты.

Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда я переключаюсь на другую сторону - чтобы начать тестирование в Docker/Ubuntu или начать редактирование в Xcode, кажется, мне нужно удалить папку .build. Что затем включает в себя загрузку и сборку всех пакетов.

Если я перейду от работы с Docker/Ubuntu к Xcode/MacOS без очистки и перестройки проекта Xcode, я получу сборку своего сервера в Xcode: Ошибка сборки Xcode

Если я сгенерирую проект Xcode, а затем попытаюсь собрать и протестировать его на Docker/Ubuntu, swift test сделает обновление для всех пакетов, что требует времени, а затем ему придется собрать проект. После запуска тестов в Docker/Ubuntu, когда я возвращаюсь к MacOS и пытаюсь собрать проект в Xcode, я получаю ошибки: введите здесь описание изображения

Для чего это стоит, в Mac OS, вот моя версия Swift: Apple Swift версии 5.2.2 (swiftlang-1103.0.32.6 clang-1103.0.32.51)

А в Linux: версия Swift 5.2.3 (swift-5.2.3-RELEASE)

Это действительно замедляет меня, потому что мне приходится регенерировать проекты, повторно загружать пакеты и перестраивать каждый раз с каждой стороны при переключении. Мысли?


person Chris Prince    schedule 09.07.2020    source источник


Ответы (1)


Что ж, я нашел ответ: во всех сценариях, которые у меня есть в Docker/Linux, я добавил --build-path .build.linux. Например:

swift build --build-path .build.linux 

а также

swift test --build-path .build.linux

По умолчанию, когда я создаю проект Xcode для MacOS, он помещает пакеты Swift в .build, поэтому у меня есть разделение.

Это должно работать хорошо, пока пакеты, используемые в проекте, не меняются. Если они это сделают, мне придется обновить их с обеих сторон.

person Chris Prince    schedule 09.07.2020