当前位置: 首页 > 知识库问答 >
问题:

为CocoaPods的pod设置部署目标

太叔烨霖
2023-03-14

我使用CocoaPods来管理项目中的依赖关系。我写过Podfile:

target 'MyApp' do
  platform :ios, '8.0'
  # Uncomment this line if you're using Swift or would like to use dynamic frameworks
  #use_frameworks!

  # Pods for MyApp
  pod 'KeepLayout', :git => 'https://github.com/iMartinKiss/KeepLayout', :tag => 'v1.6.0'
  pod 'EasyMapping'

  target 'MyAppTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'MyAppUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

这个文件在CocoaPods 0.x上运行良好,但是在我升级到CocoaPods 1.0后,我无法编译project。在我跑完之后

pod update 

我无法用错误编译我的项目:

/用户/

我发现每个库都有不同的部署目标。例如,KeepLayout是用4.3部署目标构建的。

如何确定每个 Pod 依赖项的构建目标?

共有2个答案

庞鸿骞
2023-03-14

由于 Podfile 使用像平台 :ios,'9.0' 这样的指令来为 Pod/Pods.xcodeproj项目指定“iOS 部署目标”(也称为 IPHONEOS_DEPLOYMENT_TARGET),因此您只需从每个构建目标中删除部署目标信息即可。
通过将其添加到您的 Pod 文件中来执行此操作

platform :ios, '9.0' # set IPHONEOS_DEPLOYMENT_TARGET for the pods project
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
    end
  end
end

灵感来自github帖子和Alex Nauda的回答。

厍兴腾
2023-03-14

虽然CocoaPods的一些开发版本(以及1.0之前的版本)可能已经将项目的部署目标传播到pod,但在1.0中不再是这种情况。为了解决这个问题,当前的开发人员建议使用安装后挂钩。

这里有一种强力方法,为生成的pod项目中的每个pod强制一个硬编码的部署目标。将此粘贴到您的< code>Podfile的末尾:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.2'
    end
  end
end
 类似资料:
  • 错误: 警告FailedCreatePodSandBox 34M kubelet,从节点未能创建pod沙箱:rpc错误:code=未知desc=未能为pod设置沙箱容器“26cdaf3170806455A4731218D20C482BB2A41DED6EF85C90B560058E332DF684”网络“label-demo”:networkPlugin cni未能设置pod“label-demo

  • null 我的问题是: 是否需要创建文件,然后在文件中引用它们,或者部署文件也可以嵌入pod定义? K8S文档似乎暗示的部分相当于定义一个pod。那是正确的吗?如果我想声明性地描述多pod部署呢?是否需要多个deployment.yml文件?

  • 本文向大家介绍cocoapods Pod更新Checklist,包括了cocoapods Pod更新Checklist的使用技巧和注意事项,需要的朋友参考一下 示例 使用更新您的项目 git pull origin master s.version内部更新MyRepo.podspec 检查本地错误 pod lib lint MyRepo.podspec git add . 和 git commit

  • 问题内容: 我大部分时间都是孤独的开发人员,从事许多大型的,主要基于PHP的项目。我想专业化和自动化如何处理对代码库的更改,并创建一个持续集成过程,该过程使过渡到团队工作成为可能,而无需进行基本更改。 我现在正在做的是,每个项目都有一个本地测试环境。我在每个项目中都使用SVN;更改将在本地进行测试,然后通常通过FTP转移到在线版本。API文档是从源代码手动生成的;单元测试是我正在慢慢进行的工作,它

  • JDK内存设置 修改x5.2.1\apache-tomcat\bin目录下的catalina.bat文件,将“JAVA_OPTS=-Xms512m -Xmx1024m”中的内容修改为实际使用的大小。 32位操作JDK内存系统:最大可设置1G,如果设置过大,会导致服务无法启动。 64位操作JDK内存系统:所有服务的最大内存累加的和不大于物理内存的60%到80%。 线程数 修改x5.2.1\apach

  • 我一直在尝试为我最近在Macbook air m1上的react原生项目建立firebase。根据react native firebase的官方文件https://rnfirebase.io/,我面临的问题很少。 > 当我尝试更新pod时(我尝试了几种方法),它在终端上显示我的以下错误 0x0009):在/Library/Ruby/Gems/2.6.0/Gems/ffi-1.14.2/lib/f