Как создать гибридный пакет для iOS и macOS? - PullRequest
0 голосов
/ 14 октября 2019

Как мне поступить с кодом, предназначенным для выполнения на разных целях, таких как iOS, macOS, tvOS и т. Д., Внутри пакета в Xcode 11?

Что я имею в виду: у меня есть код, которыйЯ пытаюсь преобразовать в пакет. Этот код содержит раскадровки для macOS и iOS и классы swift для запуска с этими раскадровками, или, другими словами, классы swift для запуска на macOS и другие для iOS.

Я хочу иметь возможность создать пакет, который можно импортировать в любой проект, независимо, если этот проект предназначен только для iOS, только для Mac или имеет цели для обеих архитектур.

Большая проблема заключается в том,что у пакета нет целей, где я могу назначить ему файл.

Apple имеет этот пример , где они показывают, что вы можете указать платформы.

let package = Package(
    name: "MyPackage",
    platforms: [
        .macOS(.v10_13), .iOS(.v11), .tvOS(.v11),
    ],

, нокак и ожидалось, их документы не показывают, как.

Как мне это сделать?

1 Ответ

1 голос
/ 14 октября 2019

Раскадровки и другие ресурсы в настоящее время не поддерживаются SwiftPM, поэтому вы не можете сделать это с ними.

Если у вас есть только исходный код, то вы можете использовать блок #if os(iOS) / #if os(macOS) вокруг всехсодержимое ваших файлов, предназначенных для конкретной ОС.

Вы захотите поместить все файлы в один и тот же продукт, чтобы потребляющие модули просто использовали import TheNameOfYourModule везде вместо того, чтобы иметь специфичные для iOS / macOS операторы импорта.

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