支持iOS和OSX的Podfile

lev*_*ker 19 macos ios cocoapods

我正在尝试使用具有iOS和OSX目标的遗留项目来设置CocoaPods.

如果,在我的Podfile的顶部,我指定:

platform :osx, '10.9'
Run Code Online (Sandbox Code Playgroud)

并且,作为示例,指定像CorePlot这样的pod:

pod 'CorePlot'
Run Code Online (Sandbox Code Playgroud)

然后,在a之后pod update,我在Pods目录中看到Mac特定的来源:

Pods/CorePlot/framework/MacOnly
Run Code Online (Sandbox Code Playgroud)

这没关系,除非我要指定:iosplatform那时我看到:

Pods/CorePlot/framework/iPhoneOnly
Run Code Online (Sandbox Code Playgroud)

没有看到MacOnly目录.

CorePlot的podspec根据平台指定这些目录,这就是为什么它们根据我选择的平台以不同方式显示的原因.但是,我希望能够让我的Podfile适用于我的iOS和OSX目标.

我继续想,或许我可以根据项目中的目标指定平台,并省略顶级平台声明:

target "OSX" do
  platform :osx, '10.9'
end

target "iOS" do
  platform :ios, '7.0'
end
Run Code Online (Sandbox Code Playgroud)

但是,一旦我再次执行了一次,我pod update就会遇到版本兼容性错误:

[!]目标平台Pods(OS X)与CorePlot (1.5.1)iOS 3.1.3 - OS X 10.5的最低要求不兼容."

这似乎表明CocoaPods没有识别我的目标块中的版本信息.

而且,如果我将平台添加到顶层,除了目标特定平台之外,我只获得顶级平台所指示的任何平台的代码.

我被迫有两个独立的项目吗?一个用于iOS,一个用于Mac OS X,或者有办法做到这一点?

非常感谢,

列维

   CocoaPods : 0.31.1
        Ruby : ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
    RubyGems : 2.0.3
        Host : Mac OS X 10.9.2 (13C64)
       Xcode : 5.1.1 (5B1008)
Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib Repositories : master - https://github.com/CocoaPods/Specs.git @ bf6ff4b23c2e8b9e5fe5840eddfc3bad122eb932
Run Code Online (Sandbox Code Playgroud)

Eri*_*ric 8

基于https://github.com/CocoaPods/CocoaPods/issues/2043#issuecomment-59295308

def import_pods
    pod 'CorePlot'
end

target :ios do
    platform :ios, '7.0'
    import_pods
end

target :osx do
    platform :osx, '10.9'
    import_pods
end
Run Code Online (Sandbox Code Playgroud)