使Swift CocoaPod库可用于macOS和iOS

时间:2018-10-16 18:56:13

标签: swift xcode cocoapods

我使用Swift开发了一个C库的包装器,在那里我编译了一堆C文件并在其之上构造一个Swift类。

我用cocoapods创建了这个项目,并且不知道选择哪个平台,所以选择了“ macOS”作为开始。

问题是我希望iOS开发人员和macOS开发人员使用我的pod。它运行良好,但是当我使用iphonesimulator启动xcodebuild时,它找不到可可...

ld: framework not found Cocoa

use_frameworks!

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

  target 'PorterStemmer2_Tests' do
    inherit! :search_paths

  end
end

使Pod适用于所有平台的最佳方法是什么? 我应该在构建设置中进行哪些更改?

1 个答案:

答案 0 :(得分:0)

您只需要更新podspec以支持两个目标

1)如果您的文件和依赖项不同

如果lib包含不同的依赖项或文件等(例如YourLib/MacYourLib/iOS),则可以为lib创建单独的subspecs

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)如果一切相同

只需更改目标即可包含Reachability中的两者

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

P。 S.在同一个仓库上创建演示项目,以包含两个目标(iOS和Mac)以测试事物,然后再推送到Cocoapods

[奖励]在演示项目中添加另一个目标

enter image description here enter image description here

也不要忘记将此目标也添加到您的Podfile中,然后再次pod install