首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >支持iOS和OSX的Podfile

支持iOS和OSX的Podfile
EN

Stack Overflow用户
提问于 2014-04-12 05:42:50
回答 2查看 13.9K关注 0票数 24

我正在尝试用一个既有iOS又有OSX目标的遗留项目来设置CocoaPods。

如果在Podfile的顶部指定:

代码语言:javascript
复制
platform :osx, '10.9'

例如,指定一个类似于CorePlot的pod:

代码语言:javascript
复制
pod 'CorePlot'

然后,在pod update之后,我在我的Pod目录中看到了Mac特定的源代码:

代码语言:javascript
复制
Pods/CorePlot/framework/MacOnly

这是可以的,除了如果我指定:ios作为platform,那么我会看到:

代码语言:javascript
复制
Pods/CorePlot/framework/iPhoneOnly

而且我没有看到MacOnly目录。

CorePlot的podspec根据平台指定了这些目录,这就是为什么它们会根据我选择的平台以不同的方式显示。然而,我希望我的Podfile能够在我的iOS和OSX目标上工作。

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

代码语言:javascript
复制
target "OSX" do
  platform :osx, '10.9'
end

target "iOS" do
  platform :ios, '7.0'
end

然而,当我再次执行pod update时,我得到了一个版本兼容性错误:

!目标Pods (OS X)的平台与最低要求为iOS 3.1.3 - OS X 10.5的CorePlot (1.5.1)不兼容。“

这似乎表明CocoaPods无法识别我的目标块中的版本信息。

而且,如果我将一个平台添加到顶层,除了目标特定的平台之外,我只会得到顶层平台指定的任何平台的代码。

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

非常感谢,

Levi

代码语言:javascript
复制
   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
EN

回答 2

Stack Overflow用户

发布于 2016-02-16 18:15:11

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

代码语言:javascript
复制
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
票数 12
EN

Stack Overflow用户

发布于 2021-04-15 03:43:15

您可以使用abstract_targets按平台分隔pods:

代码语言:javascript
复制
use_frameworks!

# Common pods
pod ...

abstract_target 'Mobile' do
  
  platform :ios, '13.0'
  
  # Common pods for mobile
  pod ...
  
  target 'My iOS App' do
    
    # Target specific pods
    pod ...
    
  end
  
end

abstract_target 'Mac' do
  
  platform :osx, '11.0'

  # Common Mac pods
  pod ...
  
  target 'My Mac App' do

  # Target specific pods
    
  end
  
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23023095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档