Xcode设置cocoapods库的最低兼容版本

目录

前言

1.使用cocoapods遇到的问题

2.解决办法

1.用法解释

1. config.build_settings:

2.IPHONEOS_DEPLOYMENT_TARGET

2.使用实例

3.注意事项

1.一致性

2.pod版本


前言

        这篇文章主要是介绍如何设置cocoapods三方库如何设置最低兼容的版本。

1.使用cocoapods遇到的问题

        iOS开发过程中,我们通常会使用cocoapods管理三方库,通常情况下,我们的podfile文件如下面的样子。

platform :ios, '12.0'

target 'YourAppTarget' do
  # 其他pod配置
  pod 'SomePod'
end

        这个时候我们有时候会遇到cocoapods三方库版本号和当前版本号不兼容的问题。例如我们的工程需要兼容的最低的iOS的版本号为iOS12,我们通过cocoapods的方式使用了MJRefresh和Masonry两个三方库,MJRefresh最低兼容的版本为iOS12,Masonry兼容的最低版本号为iOS8,如下图所示:

        这种情况下我们需要手动修改iOS兼容的最低版本才能运行我们的项目,例如在上面的例子中,我们需要把Masonry的最低兼容的iOS版本号改成iOS12。这样的话就出现了一个问题,我们每次运行pod install命令的时候,都要手动修改三方库的iOS版本号,当我们使用的库比较多的时候,修改就变得十分繁琐,能不能通过配置自动修改兼容的最低版本呢?

        答案是可以的。就是通过修改cofing.build_setting来实现。

2.解决办法

        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' 是用来设置Xcode项目的部署目标的。这段代码通常用于在`Podfile`中配置CocoaPods的设置,以确保你的Pods可以与指定的iOS版本兼容。

1.用法解释

        confing的一些用法解释如下:

1. config.build_settings:

        这是一个哈希,包含了许多构建设置。你可以通过这个哈希来设置各种编译选项。

2.IPHONEOS_DEPLOYMENT_TARGET

        这是一个构建设置,指定了iOS的最低部署目标版本。它告诉Xcode和CocoaPods这个项目的目标是哪个最低版本的iOS。
            设置为`12.0`意味着这个项目将支持运行在iOS 12.0及以上的设备上。

2.使用实例

         还以上面的代码为例,我们看看如何设置构建选项:

platform :ios, '12.0'

target 'YourAppTarget' do
  # 其他pod配置
  pod 'SomePod'

  post_install do |installer|
    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
      end
    end
  end
end

每一项设置和含义解释如下:

1. platform :ios, '12.0':
   - 这行代码设置了整个项目的最低iOS版本为12.0。

2. post_install钩子:

        post_install是一个CocoaPods的钩子,在所有Pod安装完成后执行。它用于对生成的Xcode项目进行一些额外的配置。

3.遍历每个target

        installer.pods_project.targets.each do |target|遍历所有的Pod target。

4.遍历每个构建配置
        target.build_configurations.each do |config|遍历每个构建配置(例如Debug和Release)。

5.设置构建设置
           config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'` 为每个target的每个构建配置设置`IPHONEOS_DEPLOYMENT_TARGET`为12.0。

3.注意事项

1.一致性

        确保你在`Podfile`中设置的`platform设置的版本号应该与config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] 一致,以避免混淆和潜在的问题。

2.pod版本

        一些Pods可能不支持非常旧的iOS版本,所以在选择iOS部署目标时要考虑到所有Pods的最低要求。​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/669596.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

小红书图片视频下载利器,无水印!

在刷小红书时,总能看到一些博主发的好看的壁纸或者视频,想下载下来做头像或者设置为手机电脑的桌面。不过众所周知,直接保存的图片和视频都是有水印的,那如何去掉水印呢? 有些朋友肯定说,我知道有去水印的…

如何区分解析亚马逊网站产品搜索结果页HTM代码中广告位( Sponsored)和自然位的产品ASIN及排名

在开发亚马逊产品广告排名插件的时候需要通过页面HTML代码分别找出属于广告位和自然搜索结果的产品ASIN及排名,所以需要找到区分广告位和自然搜索结果的HTML代码属性: 所有搜索结果页的产品不管是广告位还是自然位,都包括在 标签里&#xff…

服务器数据恢复—服务器raid常见故障表现原因解决方案

RAID(磁盘阵列)是一种将多块物理硬盘整合成一个虚拟存储的技术,raid模块相当于一个存储管理的中间层,上层接收并执行操作系统及文件系统的数据读写指令,下层管理数据在各个物理硬盘上的存储及读写。相对于单独的物理硬…

kali中切换python版本

kali中切换python版本 在日常使用的过程中,可以通过一些工具来做打靶环境,或者工具的启动,都和python关联,而有时存在工具安装,或者运行的时候出现报错,这时候极大可能是因为我们本地的kali中python的版本不…

安装pytorch深度学习模型时要知道自己的电脑显卡是否支持CUDA

安装pytorch深度学习模型时要知道自己的电脑显卡是否支持CUDA,如何知道自己的显卡是否支持呢?可以去下面的网站,打开后就可以见到如下图所示: CUDA | 支持的GPU | GeForce (nvidia.cn)

【Mac】XMind for mac(XMind思维导图)v24.04.10311软件介绍和安装教程

软件介绍 XMind for Mac是一款功能强大的思维导图软件。它具有以下主要特点: 1.多样化的思维导图功能:XMind for Mac提供了丰富的思维导图编辑功能,用户可以创建各种类型的思维导图,包括组织结构图、逻辑图、时间轴图等&#xf…

基于优化Morlet小波的一维信号瞬态特征提取方法(MATLAB R2018A)

小波分析方法近些年逐步得到发展的一门数学分析技术,它对许多学科都有十分重要的影响。与傅立叶变换等其他传统方法相比,小波分解的方法中所用的小波基有着多种多样的结构,总结来说又包括正交小波系与非正交小波系。正交小波在信号处理领域目…

超越传统插值:利用深度学习提升视频帧率与清晰度

视频帧率的提升是视频处理领域中一个重要问题,它直接影响到视频的流畅度和观感。随着技术的发展,人们对于视频质量的要求越来越高,尤其是在捕捉快速运动场景时,高帧率视频能够提供更加清晰和连贯的视觉效果。然而,传统…

(2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X

Lumina-T2X: Transforming Text into Any Modality, Resolution, and Duration via Flow-based Large Diffusion Transformers 公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 …

Dynamics CRM 修改新建记录的CreatedOn字段值

CRM在创建新记录时,一些系统属性例如创建者、创建时间是取当前创建记录的人以及当前的时间,而有时这些属性需要更改,例如创建时间,这个场景更多的用在数据迁移的时候,老数据有他的原始创建时间,不能因为迁移…

python在cmd中运行.exe文件时报错:不是内部或外部命令,也不是可运行的程序或批处理文件。的解决办法

添加系统环境变量: 设置环境变量,在用户变量里面添加 【PATH:%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Windows\SysWOW64】 在系统变量里面添加,【变量名:ComSpec】 【变量值:%SystemRoo…

springboot+vue的养老院管理系统

免费获取方式↓↓↓ 项目介绍036: http://localhost:8080/ admin 123456 测试用户 123456 测试护工 123456 二、技术栈 所有场景都支持 适合零基础小白练手和实战;适合二次开发; 项目图片概览: 以上是对本项目的界面预览。 界…

比较3维空间中4个点的不同结构

在4*4*4的3维空间中,取4个点共有635376种可能,有209个结构,继续按旋转对称分类则只有55个不同的结构。如其中的4t12 4个点在同一个平面,有1个点与其中的3个点不在同一行也不在同一列,这样的位置不止一个 这两个结构都是…

JCR一区级 | Matlab实现TCN-BiGRU-MATT时间卷积双向门控循环单元多特征分类预测

JCR一区级 | Matlab实现TCN-BiGRU-MATT时间卷积双向门控循环单元多特征分类预测 目录 JCR一区级 | Matlab实现TCN-BiGRU-MATT时间卷积双向门控循环单元多特征分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现TCN-BiGRU-MATT时间卷积双向门控循环单元多…

【产品经理】总篇章

引言: 在最近频繁的产品职位面试中,我深刻体会到了作为产品需要的不仅仅是对市场和技术的敏锐洞察,更多的是在复杂多变的环境中,如何运用沟通、领导力和决策能力来引导产品从概念走向市场。这一系列博客将分享我多年经历和所学到的所以知识&a…

golang线程池ants-四种使用方法

目录 1、ants介绍 2、使用方式汇总 3、各种使用方式详解 3.1 默认池 3.2 普通模式 3.3 带参函数 3.4 多池多协程 4、总结 1、ants介绍 众所周知,goroutine相比于线程来说,更加轻量、资源占用更少、无线程上下文切换等优势,但是也不能…

知识计算概述

文章目录 知识计算研究现状技术发展趋势 知识计算 随着知识图谱技术及应用的不断发展,图谱质量和知识完备性成为影响知识图谱应用的两大重要难题,以图谱质量提升、潜在关系挖掘与补全、知识统计与知识推理作为主要研究内容的知识计算成为知识图谱应用的重…

Hive-因精度丢失导致的 join 数据异常

一、问题复现 不知你是否遇到过 join 结果明显不匹配的情况,例如on t1.join_key t2.join_key中两个join_key明显不相等,但 join 的结果却将其匹配在一起。今日博主在通过用户 id 关联获取用户信息时发现一个用户 id 可以在用户维表中匹配出若干条&…

Simulink中使用ROS1自定义消息

Simulink中使用ROS1自定义消息 简介前提条件操作流程问题一问题二问题三 吐槽 简介 最近在做的项目里需要使用Simulink与ROS联合仿真,这里就遇到了一个问题,Simulink无法直接使用ROS中的自定义消息,需要在MATLAB中生成一下,再引入…

D3D 顶点格式学习

之前D3D画三角形的代码中有这一句, device.VertexFormat CustomVertex.TransformedColored.Format; 这是设置顶点格式; 画出的三角形如下, 顶点格式是描述一个三维模型的顶点信息的格式;可以包含以下内容, 位置…