【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 again
	activesupport 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 '工程名' do
 
pod 'AFNetworking' #这里也可以是其他的第三方库

end

在这里插入图片描述


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

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


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

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


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

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

总结

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

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

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

相关文章

kafka面试题

kafka基本概念 Producer 生产者&#xff1a;负责将消息发送到 BrokerConsumer 消费者&#xff1a;从 Broker 接收消息Consumer Group 消费者组&#xff1a;由多个 Consumer 组成。消费者组内每个消费者负责消费不同分区的数据&#xff0c;一个分区只能由一个组内消费者消费&am…

Linux常用命令——dris命令

在线Linux命令查询工具 dris 显示和清空目录堆栈中的内容 补充说明 dris命令用于显示和清空目录堆栈中的内容。 语法 dris(选项)选项 n&#xff1a;显示从左边算起第n笔的目录&#xff1b; -n&#xff1a;显示从右边算起第n笔的目录&#xff1b; -l&#xff1a;显示目录…

2023年深圳杯数学建模 D题 基于机理的致伤工具推断

致伤工具的推断一直是法医工作中的热点和难点。由于作用位置、作用方式的不同&#xff0c;相同的致伤工具在人体组织上会形成不同的损伤形态&#xff0c;不同的致伤工具也可能形成相同的损伤形态。致伤工具品种繁多、形态各异&#xff0c;但大致可分为两类&#xff1a;锐器&…

项目——负载均衡在线OJ

目录 项目介绍开发环境所用技术项目宏观结构编写思路1. 编写compile_server1.1 编译模块编写1.2 运行功能1.3compile_runner 编译与运行1.4 编写compile_server.cpp调用compile_run模块&#xff0c;形成网络服务 2. 编写基于MVC的oj_server2.1 oj_server.cpp的编写2.2 oj_model…

如何安装多个版本的python,python可以装两个版本吗

这篇文章主要介绍了可不可以在同一台计算机上安装多个python版本&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 1、不同版本的python不能安装到同一台计算机上 可以的&#…

Hibernate Validator-校验注解使用归纳

文章目录 前言java-校验注解使用归纳1. 概述2. 引入依赖3. 手动抓取校验错误信息示例4. 自定义校验注解编写示例5. 统一配置校验错误信息示例 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。  …

【iOS】App仿写--管理系统

文章目录 前言一、账号界面二、功能界面三、添加功能四、删除功能五、更改功能六、查找功能七、排序功能八、退出功能总结 前言 在日常生活中&#xff0c;如果用文字来记述与管理我们数据会十分麻烦&#xff0c;并且人工成本较高&#xff0c;这里笔者给出一种管理系统的模版&a…

[回馈]ASP.NET Core MVC开发实战之商城系统(二)

经过一段时间的准备&#xff0c;新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始&#xff0c;在之前的文章中&#xff0c;讲解了商城系统的整体功能设计&#xff0c;页面布局设计&#xff0c;环境搭建&#xff0c;系统配置&#xff0c;及首页商品类型&#xff0c;bann…

【iOS】—— RunLoop和多线程相关问题总结

RunLoop 1. 讲讲RunLoop&#xff0c;项目中有用到过吗&#xff1f; RunLoop 的基本作用&#xff1a;保持程序的持续运行&#xff0c;节省 CPU 的资源&#xff0c;提高程序的性能 &#xff08; 没有事情&#xff0c;就请休眠&#xff0c;不要功耗。有事情&#xff0c;就处理&a…

二、SQL-6.DCL-1).用户管理

一、DCL介绍 Data Control Language 数据控制语言 用来管理数据库 用户、控制数据库的 访问权限。 二、语法 1、管理用户 管理用户在系统数据库mysql中的user表中创建、删除一个用户&#xff0c;需要Host&#xff08;主机名&#xff09;和User&#xff08;用户名&#xff0…

json-server创建静态服务器2

上次写的 nodejs创建静态服务器 这次再来个v2.0 利用json-server很方便就可以实现。 vscode打开文件夹&#xff0c;文件夹所在终端&#xff1a; json-server.cmd --watch db.json 这里视频教程是没有上述命令标红的&#xff0c;但是会报错&#xff0c;具体不详&#xff0c…

Docker私有仓库部署与管理

目录 Docker--harbor Harbor 简介 Harbor 部署 1. 部署 Docker-Compose 服务 2. 部署 Harbor 服务 维护管理Harbor 1. 通过 Harbor Web 创建项目 2. 创建 Harbor 用户 3. 查看日志 4. 修改 Harbor.cfg 配置文件 5. 移除 Harbor 服务容器同时保留镜像数据/数据库&…

Unity Profiler或UPR连接WebGL应用出错

问题 在使用Unity Build出WebGL应用进行性能测试的时候&#xff0c;勾选上了 Development Build和Autoconnect Profiler&#xff0c;分别使用Profiler和UPR进行测试 现象 使用Profiler测试时&#xff0c;就收到几帧&#xff0c;然后就没了 使用UPR进行测试时&#xff0c;在…

python简单入门

python简单入门 文章目录 python简单入门0. 地址链接1. 官网2.2. 下载地址3. 官方文档 1. 第一章1.1 python解释器1.2 基础语法1.2.1 常见数据类型1.2.2 强制类型转换1.2.3 注释1.2.4 运算符1.2.5 字符串1.2.5.1 字符串的定义1.2.5.2 字符串拼接1.2.5.3 格式化字符串1.2.5.3 精…

jenkins部署Springboot项目

文章目录 jenkins部署Springboot项目步骤创建一个jenkins任务开始配置准备步骤添加shell脚本(两个)你放一个执行也行构建成功后执行脚本 如何在linux上安装jenkins可以看上一篇 linux安装jenkins(详细步骤) jenkins部署Springboot项目步骤 创建一个jenkins任务 开始配置 ![在这…

error: /tmp/ccxy1wo0.o: multiple definition of ‘tgt_flow_thread_init‘

linux 项目使用Makefile 编译代码时&#xff0c;一直报错 从报错意思上看很明确&#xff0c;就是重复定义 tgt_flow_thread_init函数 但是我从全局搜索代码看根本不存在重复定义问题。 从网上看是说可能存在头文件有重复的定义或者头文件被重复的引用&#xff0c;但是我看了…

el-table树形表格实现复选框多选效果

2023.7.26今天我学习了如何使用树形表格的时候进行复选框的多选效果。 当我们使用树形结构表格需要进行多选功能操作的时候会发现点击全选的时候&#xff0c;只有一级表格数据会被选中&#xff0c;问题如图&#xff1a; 我们需要实现的是点击全选的不管是几级表格数据都可以被…

策略模式的实现与应用:掌握灵活算法切换的技巧

文章目录 常用的设计模式有以下几种&#xff1a;一.创建型模式&#xff08;Creational Patterns&#xff09;&#xff1a;二.结构型模式&#xff08;Structural Patterns&#xff09;&#xff1a;三.行为型模式&#xff08;Behavioral Patterns&#xff09;&#xff1a;四.并发…

k8s使用helm部署Harbor镜像仓库并启用SSL

1、部署nfs存储工具 参照&#xff1a;https://zhaoll.blog.csdn.net/article/details/128155767 2、部署helm 有多种安装方式&#xff0c;根据自己的k8s版本选择合适的helm版本 参考&#xff1a;https://blog.csdn.net/qq_30614345/article/details/131669319 3、部署Harbo…

matplotlib从起点出发(4)_Tutorial_4_Lifecycle

1 一幅图像的生命周期 本教程旨在揭示使用matplotlib绘制的一幅图像的生命周期&#xff0c;包括它的开始、中间和结束。我们将从一些原始数据开始&#xff0c;最后保存自定义可视化的图形。在此过程中&#xff0c;我们尝试使用matplotlib突出一些简洁的功能和最佳实践。 2 关…
最新文章