【iOS】Cocoapods的安装以及使用

文章目录

  • 前言
  • 一、Cocoapods的作用
  • 二、安装Cocoapods
  • 三、使用Cocoapods
  • 总结


前言

最近笔者在仿写天气预报App时用到了api调用数据,一般的基本数据类型我们用Xcode中自带的框架就可以转换得到。但是在和风天气api中的图标的格式为svg格式。
在这里插入图片描述

似乎iOS13之后Xcode中可以直接使用svg格式的图片,但笔者没有查到对应的资料。笔者就调用了第三方库来使用svg格式的图片,这花了读者一天的时间才安装完成集成第三方库的Cocoapods并对其进行使用,特此写博客记录,如有不足请不吝指出

一、Cocoapods的作用

依赖管理:CocoaPods允许开发者在项目中定义所需的第三方库和框架,然后自动下载、安装和配置这些依赖项。这样,开发者无需手动管理这些库,从而简化了项目设置和更新流程。

库的集成:通过CocoaPods,开发者可以轻松地集成各种功能强大的第三方库,这些库可以实现各种功能,例如网络请求、图像加载、数据库操作、UI控件等。这些库是经过广泛测试和优化的,有助于加速开发过程,提高应用质量。

版本管理:CocoaPods允许开发者指定所需库的特定版本或范围,确保在项目中使用的库版本是可控的。这样可以避免潜在的兼容性问题,并且在需要更新库时可以更加灵活地控制版本升级。

快速集成:通过CocoaPods,开发者可以快速集成新的第三方库,只需简单地在项目配置文件中添加库的名称和版本要求,然后运行一条命令进行安装即可。

支持私有库:除了公共库,CocoaPods还支持私有库的集成。这对于团队内部开发的共享代码或从第三方获取的非公开库非常有用。

更新管理:CocoaPods可以定期检查并更新项目中使用的第三方库,使开发者能够及时获取最新的功能和修复bug,保持项目的稳定性和安全性。

简单来说,Cocoapods是一种可以定期更新项目中的第三方库,能让用户更加方便使用第三方库的工具。


二、安装Cocoapods

在安装前笔者需要多嘴一句,因为我们的Cocoapods是拿Ruby语言编写的,所以我们下载Cocoapods前需要下载相关的关于Ruby语言的软件

网络上有许多安装Cocoapods的教程,大多是几年前的方法了,有些方法可能并不适配现在Mac,这里给出笔者参考的博客,跟着这篇博客走大概率能成功Cocoapods安装教程


这里需要注意安装Cocoapods时用到的rvm,ruby,RubyGems都最好升级到最新版,随着Mac的更新,CocoaPods要求的ruby等的版本越来越高,举个栗子 :

ERROR:  Error installing cocoapods:The last version of activesupport (>= 5.0, < 8) to support your Ruby & RubyGems was 6.1.7.4. Try installing it with `gem install activesupport -v 6.1.7.4` and then running the current command againactivesupport requires Ruby version >= 2.7.0. The current ruby version is 2.6.10.210.

这是读者安装时碰到的一个错误,这个错误提示表明当前安装的 Ruby 版本不满足 CocoaPods 的要求。CocoaPods 需要的最低 Ruby 版本为 2.7.0,而我当时的 Ruby 版本是 2.6.10.210。

实际上我们通过终端能下载的Ruby版本并不多:
在这里插入图片描述
因此笔者建议将Cocoapods所有需要附带安装的软件都从一开始就装到最新版

三、使用Cocoapods

安装完成Cocoapods,我们该如何调用其中的第三方库呢?在刚开始使用时笔者也碰到了很多问题,在这里总结一下笔者的使用方法


  1. 找到需要使用第三方库的工程文件夹
    在这里插入图片描述
    这里有一点需要注意,文件夹的名字就是我们工程的名字,在后面会用到

  1. 在终端定位我们的工程位置

这里的方法就是在终端中输入cd + 空格,然后将我们的工程文件夹拖入终端中,这样就成功让终端索引到了我们的工程

cd 工程名

在这里插入图片描述


  1. 在工程文件夹中创建podfile文件

在终端中输入下面的命令

touch podfile

在这里插入图片描述
可以看到我们的工程中生成了一个podfile文件

podfile作用:指定项目所需的第三方库和它们的版本要求


  1. 打开podfile文件并对其进行编辑

这里以安装AFNetworking第三方库为例作展示

platform:ios,'9.0'target '工程名' dopod 'AFNetworking' #这里也可以是其他的第三方库end

在这里插入图片描述


  1. 在终端中安装我们的第三方库

在终端中输入命令pod install
在这里插入图片描述
安装完成后可以看到我们的工程中出现了AFNetworking的库


  1. 打开原工程文件进行编译操作

打开原工程进行编译操作
在这里插入图片描述
这一点一定需要记住,在安装成功我们的第三方库后一定需要打开文件进行编译运行操作(command + r 或 command + b都可以),然后会看到报错:
在这里插入图片描述
这是一定的,然后我们关闭文件


  1. 打开新创建的.xcworkspace进行后续的工作
    在这里插入图片描述
    我们对.xcworkspace进行编译操作发现其是可以编译成功的,然后我们再去点击我们的原工程文件,会出现这样的提示:在这里插入图片描述
    也就是说这两个文件我们只能打开一个,但是原工程文件是无法与我们安装的第三方库进行链接的,所以我们的工作台就变为了新创建的.xcworkspace文件,同样的,我们的代码以后都需要写在.xcworkspace文件中才能编译运行

第六与第七步是操作的重中之重,之前笔者就在这几步上困扰了很久,第六第七步的操作原理笔者也不甚理解,但大概应该是让我们的工程与第三方库进行链接的操作

总结

至此Cocoapods的安装以及使用大概也讲的七七八八了,本博客仅供交流学习,如有不足或错误请不吝指出

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

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

相关文章

mybatis_分页

目的&#xff1a; 减少数据处理量&#xff0c;提高效率 普通sql&#xff1a; 语法&#xff1a;select * from user limit startIndex,pageSize; SELECT * from user limit 3; #[0,n] mybatis_sql: 接口&#xff1a; //分页查询List<User> getUserByLimit(Map<…

如何提高代码效率——时间复杂度与空间复杂度——【C语言】

当我们面对一个问题时&#xff0c;会有许多种解题思路。我们现在的计算机技术已经达到非常先进的地步&#xff0c;所以当我们用不同的方法对待问题时&#xff0c;时间差异不会很明显&#xff0c;内存差异我们一般在平常小问题时感受不到&#xff0c;所以我们不会去纠结程序的优…

JavaEE——Bean的生命周期

目录 1、实例化Bean 2、设置Bean的属性 3、初始化Bean &#xff08;1&#xff09;、执行通知 &#xff08;2&#xff09;、初始化的前置方法 &#xff08;3&#xff09;、初始化方法 &#xff08;4&#xff09;、执行自定义方法 &#xff08;5&#xff09;、初始化的后置…

3个月精通Python(基础篇)——第1天:Python和Vscode环境安装

安装 Python&#xff1a; 访问 Python 官网 https://www.python.org/downloads/ &#xff0c;下载最新的 Python 安装程序。 双击安装程序&#xff0c;按照提示进行安装设置即可。 在安装过程中&#xff0c;请勾选“Add Python X.X to PATH”选项&#xff0c;这样安装后 Python…

Redis学习路线(3)——Redis的Java客户端

一、如何使用Redis的Java客户端 官方文档&#xff1a; https://redis.io/docs/clients/java/ Java-Redis客户端使用场景Jeids 以Redis命令作为方法名称&#xff0c;学习成本低&#xff0c;简单实现&#xff0c;但是Jedis实例是线程不安全的&#xff0c;多线程环境下需要基于连…

华为数字化转型之道-读书笔记1

第一章 数字化转型&#xff0c;华为的战略选择 1. 数字化转型是企业的必答题 1.1 解决时代难题&#xff1a;“鲍莫尔成本病” “体验变流量&#xff0c;流量变收入”是其常见的商业模式。数字化平台通过“作业即记录、记录及数据”的方式&#xff0c;能给企业带来很多好处&a…

短视频账号矩阵系统源码开发部署路径

一、短视频批量剪辑的开发逻辑算法 1.视频剪辑之开发算法 自己研发视频剪辑是指通过对视频素材进行剪切、调整、合并等操作&#xff0c;利用后台计算机算法&#xff0c;进行抽帧抽组抽序进行排列以达到对视频内容进行修改和优化的目的。自己研发的视频剪辑工具可以通过后台码…

iOS中的一些锁

多线程在日常开发中能起到性能优化的作用&#xff0c;但是一旦没用好就会造成线程不安全&#xff0c;本文就来讲讲如何保证线程安全 锁 线程安全 当一个线程访问数据的时候&#xff0c;其他的线程不能对其进行访问&#xff0c;直到该线程访问完毕。简单来讲就是在同一时刻&a…

单片机中的通用LED驱动

前言 项目中需要用到很多的LED灯&#xff0c;存在不同的闪烁方式&#xff0c;比如单闪&#xff0c;双闪&#xff0c;快闪&#xff0c;慢闪等等&#xff0c;我需要一个有如下特性的LED驱动 方便的增加不同闪烁模式可以切换闪烁模式增加LED数目不会有太多的改动方便移植&#x…

k8s详解

目录 一、k8s 核心概念二、k8s 架构及服务三、k8s卷四、k8s 存储类五、k8s 网络 Kubernetes&#xff08;简称 k8s&#xff09;是一个开源的容器编排系统&#xff0c;用于自动化部署、扩展和管理容器化应用程序。本篇详解将介绍 k8s 的核心概念、架构和使用方法&#xff0c;帮助…

热门免费的API接口汇总,程序员必备

通用文字识别OCR&#xff1a;多场景、多语种、高精度的整图文字检测和识别服务&#xff0c;多项指标行业领先&#xff0c;可识别中、英、日、韩、法、德多种语言。 企业基本信息API&#xff1a;通过公司名称/公司ID/注册号或社会统一信用代码获取企业基本信息&#xff0c;企业…

【C++杂货铺】模板(文末有彩蛋哟)

文章目录 一、泛型编程二、函数模板2.1 函数模板的原理2.2 函数模板的实例化2.3 模板参数的匹配原则 三、类模板四、非类型模板参数五、模板的特化5.1 函数模板特化5.2 类模板特化 六、模板分离编译七、模板总结好书推荐&#x1f381;彩蛋 一、泛型编程 &#x1f4d6;实现一个…

Spring Boot单元测试入门指南

Spring Boot单元测试入门指南 JUnit是一个成熟和广泛应用的Java单元测试框架&#xff0c;它提供了丰富的功能和灵活的扩展机制&#xff0c;可以帮助开发人员编写高质量的单元测试。通过JUnit&#xff0c;开发人员可以更加自信地进行重构、维护和改进代码&#xff0c;同时提高代…

volley 学习笔记1--发送请求

一、概览 Volley 具有以下优势&#xff1a; 自动网络请求调度。 多个并发网络连接。 透明磁盘和具有标准 HTTP 缓存一致性的内存响应缓存。 支持请求优先级。 取消请求 API。您可以取消单个请求&#xff0c;也可以设置要取消的请求的时间段或范围。 可轻松自定义&#xff…

linux下i2c调试神器i2c-tools安装及使用

i2c-tools介绍 在嵌入式linux开发中&#xff0c;有时候需要确认i2c硬件是否正常连接&#xff0c;设备是否正常工作&#xff0c;设备的地址是多少等等&#xff0c;这里我们就需要使用一个用于测试I2C总线的工具——i2c-tools。 i2c-tools是一个专门调试i2c的开源工具&#xff…

Kafka 入门到起飞系列 - 消费者组管理、位移管理

消费者组 - Consumer Group 上文我们已经讲过消费者组了&#xff0c;我们知道消费组的存在可以保证一个主题下一个分区的消息只会被组内一个消费者消费&#xff0c;从而避免了消息的重复消费 什么是消费组 - Consumer Group&#xff1f; 消费者组是Kafka 提供的可扩展且具有容…

事后多重比较方法

一、案例介绍 由单因素方差分析案例中&#xff0c;为研究郁金对低张性缺氧小鼠存活时间的影响&#xff0c;将36只小鼠随机生成A、B以及 C 三组&#xff0c;每组12个&#xff0c;雌雄各半&#xff0c;分别以10g/kg、20g/kg、40g/kg三种不同剂量的郁金灌胃&#xff0c;各组小鼠均…

动态规划:跳跃游戏

一)跳跃游戏: 55. 跳跃游戏 - 力扣&#xff08;LeetCode&#xff09; 一)定义一个状态表示: dp[i]表示以i未知元素为起点&#xff0c;是否能够到达最后一个位置 二)根据状态表示推到状态转移方程:根据最近的一步来进行划分问题 我们可以从当前i位置向后走j步&#xff0c;看看从…

【vim 学习系列文章 3 - vim 选中、删除、复制、修改引号或括号内的内容】

文章目录 vim 快捷命令vim 操作符vim 文本对象vim 动作 上篇文章: vim 学习系列文章 2 - vim 常用插件配置 vim 快捷命令 Vim 有一个模块化的结构&#xff0c;允许你使用各种命令的组合操作。大多数命令有两个、三个或四个部分。三部分结构的一个版本是这样的&#xff1a;操作…

记录一下Kotlin: Module was compiled with an incompatible version of Kotlin.的问题

我遇到的整个报错是这样的&#xff1a; Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.1, expected version is 1.1.16. 大概意思就是不匹配&#xff0c;但是我这是个不太能随便改代码的项目&#x…