Как собрать пакет Swift для iOS через командную строку? - PullRequest
1 голос
/ 16 февраля 2020

В Xcode я могу выбрать пункт назначения в качестве «устройства generi c iOS» или любого симулятора iOS, и мой пакет создаст код c, определяемый платформой, для ios.

С помощью командной строки "swift build" * только 1003 * создает мою цель для macOS.

Я хочу построить цель для iOS для целей CI. Проблема со сборкой для macOS заключается в том, что код UIKit-специфицированный c не будет построен.

Например:

#if canImport(UIKit)
    // some invalid code
#endif

Недопустимый код не будет замечен и пропустит фаза сборки.

В идеале я мог бы сказать что-то вроде swift build -platform iOS. Есть ли способ сделать что-то подобное?

1 Ответ

2 голосов
/ 16 февраля 2020

На момент написания (16 февраля 2019 г.) рабочим решением было:

swift build -v -Xswiftc "-sdk" -Xswiftc "`xcrun --sdk iphonesimulator --show-sdk-path`" -Xswiftc "-target" -Xswiftc "x86_64-apple-ios13.0-simulator"

Эта команда использует -Xswift c для обхода проблемы путем переопределения sdk из macOS в iphonesimulator.

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

Источник

Так что я предполагаю, что в будущем будет более элегантное решение.

...