Устройство платформы управляется секциями Base SDK
и Supported Platforms
в Architectures
в Build Settings
вашей цели. Если вы не создали две разделенные цели для устройств MacOS и iOS, вам нужно будет оставить только один выбор для поддержки этих записей платформы, то есть дублировать две новые существующие конфигурации сборки для платформы MacOS, тогда вы можете настроить настройки отдельно.
Например, у вас есть существующий проект на базе iOS, и есть две конфигурации сборки по умолчанию с именами Debug
и Release
. Теперь попробуйте два новых для macOS, выберите основной проект Xcode -> выберите имя проекта (здесь не имя цели) -> выберите Info раздел вверху -> нажмите +
кнопку в разделе Configurations
-> выберите Duplicate "Debug"/"Release" Configuration
-> переименуйте ее как Debug-macOS
/ Release-macOS
или другие, переименуйте оригинал Debug
/ Release
в Debug-iOS
/ Release-iOS
тоже.
Теперь у вас есть две пары конфигураций для отладки и архивации целевых платформ с настройками сборки только одной цели. Вы также можете создать новую схему для разработки под MacOS, просто убедитесь, что вы выбрали правильные конфигурации в различных действиях.
Говоря с основной Podfile
на cocoapods
, если вы сами поддерживаете библиотеку cocoapods и хотите добавить ее в качестве зависимости, она будет лучше поддерживать платформу MacOS и iOS в вашем файле podspec
, конечно, вам нужно сделать совместимость для этих платформ, AFNetworking сделал это так. Вот основная задача преобразования, не используйте API под UIKit
для платформы macOS. Чтобы отличить платформу во времени компиляции, вы можете использовать эти макросы для этого,
#if TARGET_OS_IOS
// iOS supported
#elif TARGET_OS_OSX
// macOS supported
#endif
Если вы хотите использовать стороннюю библиотеку в своей отдельной цели проекта, сначала проверьте совместимую проблему, если она работает только для платформы iOS, вы можете указать зависимую библиотеку только для одной платформы, подобной этой,
pod 'PonyDebugger', :configurations => ['Debug-iOS', 'Release-iOS']
То же с MacOS поддерживается.
Надеюсь, это поможет!