CocoaPods 使用:创建本地 pod 库
使用 CocoaPods 管理代码的必要性
项目到了一定规模, 代码组织和结构显得尤为重要。
重构项目结构,可以从分离代码开始。代码分离,可以按功能划分,把常用、稳定且和业务无关的代码封装成组件,抽离出来。
分离代码, 常用的有几种方式:
- 放到不同的文件夹, 管理和组织代码。(源码可见)
- 打包成静态库
.a
或者.framework
提供给项目使用。(只能调 API,看不到源码实现) - 使用工具管理,如
CocoaPods
(统一管理,源码可见)
以下介绍下使用 CocoaPods
来管理自己的本地代码。
创建工程
- 用 Xcode 创建一个测试工程
TestPods
- 在工程
TestPods
目录下面创建LocalLib
目录,用来放置分离的代码,也可以将其放到其他目录。 - 在
LocalLib
下面,pod 代码库名称为LibOne
,代码放在Codes
目录下
创建库的 .podspec 描述文件
在终端进入 LocalLib
目录下,用命令行创建 podspec 文件,创建完成后, 会生成 LibOne.podspec
文件,如上图所示。
1
pod spec create LibOne
修改 podspec 文件
修改 LibOne.podspec
文件,主要修改几个关键地方:
- spec.description
- spec.license
- spec.source
- spec.source_files
- spec.exclude_files
配置好相关描述信息,不要包含 ‘Example’ 的字样,不然新版的 CocoaPods 执行 pod install 时候会报错误和警告。
这样,工程就可以使用本地 pod 库了。
工程使用本地 pod 库
将 TestPods 改为 CocoaPods 项目,在 TestPods 目录,执行命令
1
pod init
然后会生成 Podfile 文件,再修改 Podfile 文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
platform :ios, '14.4'
# 测试用 CocoaPods 制作本地库,此处定义的名称必须以小写字母开头?
def localRepos
# 如果存放本地库的 LocalLib 文件夹是放在和 Podfile 文件同一层级的地方,以下写法都可以
# pod 'LibOne', :path => 'LocalLib'
# pod 'LibOne', :path => 'LocalLib/'
# pod 'LibOne', :path => './LocalLib'
pod 'LibOne', :path => './LocalLib/'
end
target 'TestPods' do
use_frameworks!
localRepos
end
关键是指明 pod 库的位置,路径一定要正确,否则无法找到该库。
在 TestPods 目录下,执行命令,即可安装 pod 本地库。
1
pod install
如果报错,一般都是 pod 库的配置文件(.podspec)里面写的不符合要求。根据报错信息,加以修改即可。
本文由作者按照 CC BY 4.0 进行授权