Сделать библиотеку Swift CocoaPod доступной для macOS и iOS - PullRequest
0 голосов
/ 16 октября 2018

Я разработал оболочку для библиотеки C, используя Swift, где я компилирую кучу файлов C и создаю класс Swift поверх него.

Я создал этот проект с помощью cocoapods, не зная, на какой платформечтобы выбрать, я выбрал «macOS» для начала.

Проблема в том, что я хотел бы, чтобы разработчики iOS и разработчики macOS использовали мой модуль.Он прекрасно работает, но когда я запустил xcodebuild с iphonesimulator, конечно, он не может найти Какао ...

ld: framework not found Cocoa

use_frameworks!

target 'PorterStemmer2_Example' do
  pod 'PorterStemmer2', :path => '../'

  target 'PorterStemmer2_Tests' do
    inherit! :search_paths

  end
end

Каков наилучший способ сделать модуль доступным для всех платформ?Что я должен изменить в настройках сборки?

1 Ответ

0 голосов
/ 16 октября 2018

Вам просто нужно обновить ваш podspec для поддержки обеих целей

1) Если ваши файлы и зависимости различаются

Вы можете создать отдельные подспецы для lib, если они содержат разные зависимости или файлы и т. Д. (Будет похоже на YourLib/Mac и YourLib/iOS).

Pod::Spec.new do |s|
  s.name = 'YourLib'

  s.subspec 'iOS' do |i|
     i.ios.deployment_target = "8.0"
  end

  s.subspec 'Mac' do |m|
     m.osx.deployment_target = "10.10"
  end
end 

2) Если все одинаково

Просто измените цель, чтобы она содержала оба, как в Достижимость

Pod::Spec.new do |s|
    s.name = 'YourLib'
    s.ios.deployment_target = "8.0"
    s.osx.deployment_target = "10.10"
end

PS Создайте демонстрационный проект в одном репозитории, чтобы он содержал обе цели (iOS и Mac) для тестирования, прежде чем отправлять их на Cocoapods.

[БОНУС] Добавление еще одной цели в демонстрационный проект

enter image description here enter image description here

Не забудьте также добавить эту цель в ваш Podfile и pod install снова

...