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'endendend
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的最低要求。​​​​​​​

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装node

下载地址 Node.js — Run JavaScript Everywhere 按照下面的图操作即可 然后就下载完了。

【NetTopologySuite类库】生成凸包

介绍 计算几何体的凸包。凸包是最小的凸几何体,包含输入几何体中的所有点。使用Graham Scan算法。 API地址: https://nettopologysuite.github.io/NetTopologySuite/api/NetTopologySuite.Algorithm.ConvexHull.html 示意图 示例代码 需在NuGet中安装…

牛客NC32 求平方根【简单 二分 Java/Go/C++】

题目 题目链接: https://www.nowcoder.com/practice/09fbfb16140b40499951f55113f2166c 思路 Java代码 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** para…

OpenCV学习(4.8) 图像金字塔

1.目的 在这一章当中, 我们将了解图像金字塔。我们将使用图像金字塔创建一个新的水果,“Orapple”我们将看到这些功能: cv.pyrUp() , cv.pyrDown() 在通常情况下我们使用大小恒定…

Direct local .aar file dependencies are not supported when building an AAR.

最近升级了最新的AndroidStdio版本,然后导入之前的安卓工程 然后经过一番折腾后项目可以跑了,但是意外发现出release包的时候报错了, Direct local .aar file dependencies are not supported when building an AAR. 网上有很多解决方法&am…

IPv6 归属地城市级 Api 接口 - 精准定位每一个连接

随着互联网的快速发展,人们对于网络安全和隐私保护的要求也越来越高。在网络世界中,每一个连接都有其特定的地理位置,了解连接的归属地信息对于识别恶意行为以及网络运营具有重要意义。IPv6 归属地城市级 Api 接口就能够实现对连接的精准定位…

今年618,京东和爱奇艺为大屏品质“把关”

今年618电视大战,还是打响了。 根据京东618数据显示,618开门红阶段热卖TOP10电视均为75英寸以上的大屏,拥有超高画质的MiniLED电视成交量同比增长5倍。可以看到,大屏电视逐步成为消费主流,尤其是拥有出色视听体验的高…

数据库安全加固与API防护策略

在数字化时代,数据库作为企业核心资产的安全性至关重要。然而,随着网络攻击手段的不断演进,数据库和API接口成为了黑客的主要攻击目标。本文将探讨数据库被攻击、API接口被滥用的情况,并提供一系列实用的防护措施,旨在…

易飞销货单出货时审核库存检查

公司接到一客户因品种多而数量少,单一出货计划行比较多,而只上了生产ERP易飞,审核时经常会出现倒催货,提前做销售单,行数有时超30行以上,审核跳窗报错时也不方便查找,特写一外挂程序&#xff0c…

C语言中常用辅助调试信息的宏定义

宏: _ _ F I L E _ _ \color{red} \_\_FILE\_\_ __FILE__ 在编译时会替换成当前的源文件名称,字符串类型。 printf("file name:%s\r\n", __FILE__);则输出 file name:.\app\bsp.c宏: _ _ F U N C T I O N _ _ \color{red} \_\_F…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于日间-日内不确定集的中长期电源扩展规划》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

人工智能--教育领域的运用

文章目录 🐋引言 🐋个性化学习 🦈体现: 🦈技术解析: 🐋智能辅导与虚拟助手 🦈体现: 🦈技术解析: 🐋自动评分与评估 &#x1f…

2024 vite 静态 scp2 自动化部署

1、导入库 npm install scp2 // 自动化部署 npm install chalk // 控制台输出的语句 npm install ora2、核心代码 创建文件夹放在主目录下的 deploy/index.js 复制粘贴以下代码: import client from scp2; import chalk from chalk; import ora from ora;const s…

【Autopilot】没有自动添加本地管理员的问题处理

【问题】某公司选用了D记的笔记本电脑,约定出厂就预配置好Autopilot,当时向D记提供了三个信息: 1. M365的租户ID 2. 公司域名信息 3. Group Tag (某公司为跨国公司,通过Group Tag来区分国家,比如CHN-中国,L…

C 语言实现在终端里输出二维码

Mac 环境安装二维码库 brew install qrencode安装过程报权限问题执行以下命令 sudo chown -R 用户名 /usr/local/include /usr/local/lib chmod uw /usr/local/include /usr/local/lib#include <stdio.h> #include <qrencode.h>void print_qr_code(QRcode *qrcode…

使用python绘制季节图

使用python绘制季节图 季节图效果代码 季节图 季节图&#xff08;Seasonal Plot&#xff09;是一种数据可视化图表&#xff0c;用于展示时间序列数据的季节性变化。它通过将每个时间段&#xff08;如每个月、每个季度&#xff09;的数据绘制在同一张图表上&#xff0c;使得不同…

【C++】用红黑树封装map、set

用红黑树封装map、set 1. 红黑树1.1 模板参数的控制1.1.1 Value1.1.2 KeyOfValue 1.2 正向迭代器1.2.1 构造函数1.2.2 begin()end()1.2.3 operator()1.2.4 operator--()1.2.5 operator*()1.2.6 operator->()1.2.7 operator()1.2.8 operator!()1.2.9 总代码 1.3 反向迭代器1.…

01Linux的安装,时区,固定IP的配置

Linux系统的简介与安装 Linux简介 计算机是由硬件和软件所组成 硬件&#xff1a;计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称软件&#xff1a;是用户和计算机硬件之间的接口和桥梁&#xff0c;用户通过软件与计算机进行交流(操作系统) 操作系统作为用户和…

C#WPF数字大屏项目实战03--数据内容区域

1、内容区域划分 第一行标题&#xff0c;放了几个文本框 第二行数据&#xff0c;划分成3列布局 2、第1列布局使用UniformGrid控件 最外面放UniformGrid&#xff0c;然后里面放3个GroupBox控件&#xff0c;这3个groupbox都是垂直排列 3、GroupBox控件模板 页面上的3个Group…

如何使用共享GPU平台搭建LLAMA3环境(LLaMA-Factory)

0. 简介 最近受到优刻得的使用邀请&#xff0c;正好解决了我在大模型和自动驾驶行业对GPU的使用需求。UCloud云计算旗下的[Compshare](https://www.compshare.cn/? ytagGPU_lovelyyoshino_Lcsdn_csdn_display)的GPU算力云平台。他们提供高性价比的4090 GPU&#xff0c;按时收…