Как вы собираете iOS определенные c пакеты с помощью SPM? - PullRequest
1 голос
/ 16 июня 2020

Я использую Swift Package Manager, с которым не связан файл xcodeproject, и я получаю сообщение об ошибке при сборке через терминал. Когда я вызываю команду swift build, я получаю сообщение об ошибке сборки MacOS. Пакет, который я создаю, не поддерживает MacOS (он использует UIKit), а только iOS. Я не могу найти способ вызвать команду, чтобы указать только, что сборка предназначена для iOS. Я поискал в Google безуспешно. Кто-нибудь знает правильный синтаксис, если он существует для создания пакета SPM для iOS с терминала?

Я использую версию Swift: «Apple Swift версии 5.2.4 (swiftlang-1103.0. 32.9 clang-1103.0.32.53) "

Я указал платформу в файле Package.swift

let package = Package(
    name: "Package",
    platforms: [.iOS(.v10), ],
    products: [
...

Я создал образец проекта на github https://github.com/mike011/Swift-Package-Manager-Example. Когда я запускаю swift build, он терпит неудачу с

/git/Swift-Package-Manager-Example/Sources/Swift-Package-Manager-Example/iOSSpecificFile.swift:9:8: error: no such module 'UIKit' import UIKit ^ /git/Swift-Package-Manager-Example/Sources/Swift-Package-Manager-Example/iOSSpecificFile.swift:9:8: error: no such module 'UIKit' import UIKit ^

1 Ответ

1 голос
/ 23 июня 2020

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

Например, если вы не хотите разрешать сборку на macOS, вы можете использовать версию платформы: .macOS("99") в разделе platforms вашего манифеста, и вы получите предупреждения компиляции и ошибки, подобные этим, при сборке в Xcode:

The macOS deployment target 'MACOSX_DEPLOYMENT_TARGET' is set to 99.0, but the range of supported deployment target versions is 10.8 to 10.16.99
Invalid Darwin version number: macos99.0
Invalid version number in 'target x86_64-apple-macos99.0'
...