Могу ли я ограничить Swift Package Manager только конкретной платформой? - PullRequest
0 голосов
/ 23 сентября 2019

Благодаря Xcode 11 я могу создать компонент на основе UIKit в виде отдельного пакета.Я использовал Swift Package Manager и все вроде бы нормально, но могу ли я ограничить Package.swift только iOS?

Нет смысла в том, чтобы мой пакет был доступен для macOS, tvOS или Linux, потому что нет UIKit и он не скомпилируется.

Есть предложения, как это сделать?Это вообще возможно?

Ответы [ 2 ]

0 голосов
/ 23 сентября 2019

Вы можете использовать этот ключ для компиляции блока кода для определенной платформы

    switch UIDevice().userInterfaceIdiom {
    case .unspecified, .tv, .carPlay:
        fallthrough
    case .phone:
        // for iPhone
    case .pad:
       // for iPad
    } 
0 голосов
/ 23 сентября 2019

По моему опыту, вы не можете ограничить пакет.Но вы можете указать платформы:

Apple : пакеты Swift по своей природе независимы от платформы и включают Linux в качестве целевой платформы

Использовать условную компиляциюблоки для обработки специфичного для платформы кода и / или достижения кросс-платформенной совместимости.

#if os(Linux)

// Code specific to Linux

#elseif os(macOS)

// Code specific to macOS

#endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...