【在 iOS 开发路上的大小事-Day11】透过 CocoaPods 来管理第三方套件

前情提要

一般在开发的时候,有些功能可能自己写不出来,但是网路上已经有别人写好的,那我们只需要将其引入到专案内,就可以使用了

常见的套件管理工具有:(1)CocoaPods (2)Carthage (3)Swift Package Manager (SPM)

今天要来介绍的是 CocoaPods 第三方套件管理工具

CocoaPods 是基於 Ruby 语言所开发的套件管理工具
在 macOS 中有内建 Ruby 系统,所以就可以直接在 Terminal (终端机) 中输入指令


CocoaPods 官网

开始安装 CocoaPods 罗

打开电脑中的 Terminal,输入下面的指令

sudo gem install cocoapods

输入电脑密码,输入过程是不会显示的!
输入完之後,就按下 Enter 让他去跑,安装过程可能会需要一点时间

这里由於我电脑中已经有安装过 CocoaPods,所以就很快跑完了
接着透过 Terminal 指令切换到专案资料夹内,这边专案我是在桌面创建的

范例(1):cd /Users/电脑使用者名称/Desktop/你的专案名称
范例(2):cd ~/Desktop/你的专案名称

cd /Users/leoho/Desktop/CocoaPodsDemo

然後输入下面指令,在专案内初始化 CocoaPods

pod init


然後打开专案资料夹内的 Podfile 档案

在「use_frameworks!」里输入要安装的套件,这里示范安装「IQKeyboardManagerSwift」套件

target 'CocoaPodsDemo' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!
	pod 'IQKeyboardManagerSwift'
  # Pods for CocoaPodsDemo

end


接着在 Terminal 中输入指令

pod install


这样就完成 IQKeyboardManagerSwift 这个套件的安装了
接着打开专案资料夹中的 专案名称.xcworkspace 档案 (红框处),这个是安装完套件後 CocoaPods 自动产生的档案,以後要开发都只能开这个档案!

Podfile 里的套件版本控制

# 逻辑运算符写法
pod 'IQKeyboardManagerSwift' # 这是一般的写法,不指定版本,会自动安装最新版
pod 'IQKeyboardManagerSwift','6.5.6' # 这是指定安装套件的第 6.5.6 版
pod 'IQKeyboardManagerSwift','> 6.5.6' # 这是指定安装套件第 6.5.6 版以後的最新版本
pod 'IQKeyboardManagerSwift','>= 6.5.6' # 这是指定安装套件第 6.5.6 版或以後的最新版本
pod 'IQKeyboardManagerSwift','< 6.5.6' # 这是指定安装套件第 6.5.6 版以前的最新版本
pod 'IQKeyboardManagerSwift','<= 6.5.6' # 这是指定安装套件第 6.5.6 版或以前的最新版本

# 乐观操作符写法
pod 'IQKeyboardManagerSwift','~> 6.5.6' # 这是指定安装套件的第 6.5.6 版及第 6.6.0 版以下的版本 (不包含第 6.6.0 版或更新版本)
pod 'IQKeyboardManagerSwift','~> 6.5' # 这是指定安装套件的第 6.5 版及第 7.0 版以下的版本 (不包含第 7.0 版或更新版本)
pod 'IQKeyboardManagerSwift','~> 6' # 这是指定安装套件的第 6 版及第 7.0 版以前的版本 (不包含第 7.0 版或更新版本)

最後,每种套件的安装方法都不太一样,安装前记得看一下作者的安装说明喔!

参考资料

  1. What is a Podfile? (CocoaPods.org)

<<:  Day07:文件

>>:  EP 08 - [TDD] 计算安全签章 Sign

Day 30 - 开发流程(下) Web 开发流程 & 铁人赛心得

上一篇Day 29 - 开发流程(上) 瀑布式(Waterfall Model) & 敏捷式...

Day_22 OpenVPN

前几天所述让我们能够连线回所架设的openwrt方法,虽然方便快速但比较粗糙,可以看到我连https...

Day17 NodeJS-Express II

今天要针对Routes和Middleware的部份进一步了解Express框架。 Express中的...

模型的内容02 __main__

请用 VS CODE (或其他习惯的IDE)开启 nni\examples\trials\mnist...

[Day 16] 以 Programmatic 取代 Annotation 的方式撰写 OpenAPI 文件

Spring Boot 使用 Annotation 撰写 OpenAPI Definition 我们...