Многоплатформенная конфигурация библиотеки cocoapods - PullRequest
0 голосов
/ 26 марта 2019

У меня есть набор фрагментов для iOS, MacOS, WatchOS и TvOS, которые я хотел бы встроить в библиотеку Cocoapod (возможно, также поддерживающую также Carthage).

Самое сложное для меня в том, что у меня есть цели для всех платформ (iOS, MacOS TvOS и т. Д.), Но некоторые файлов предназначены только для их подмножества.

В моем проекте XCode я разделил код по папкам:

  • Library_Common (цель все)
  • Library_iOS (целевой iOS)
  • Library_WatchOS (цель WatchOS)
  • Library_MacOS (целевой MacOS)

Это связано с тем, что, например, для части библиотеки для iOS может потребоваться UIKit, а для MacOS могут потребоваться другие платформы, недоступные для iOS.

Как я могу настроить podspec таким образом, чтобы эта библиотека могла быть встроена во все платформы?

Есть ли способ сделать это или лучше разбить его на разные библиотеки? Проблема этого подхода заключается в том, что часть Library_Common будет повторяться для каждого.

1 Ответ

0 голосов
/ 27 марта 2019

Я наконец-то нашел то, что искал и, кажется, указано в самой документации podspec.К сожалению, я не видел его раньше:

https://guides.cocoapods.org/syntax/podspec.html#group_multi_platform_support

Это означает, что в моем случае у меня есть следующие настройки:

s.source_files  = "MyLibrary_common/**/*.{h,m}"
s.ios.source_files = "MyLibrary_iOS/**/*.{h,m}"
s.osx.source_files = "MyLibrary_macOS/**/*.{h,m}"
s.tvos.source_files = "MyLibrary_tvOS/**/*.{h,m}"
s.watchos.source_files = "MyLibrary_watchOS/**/*.{h,m}"
...