iOS 项目: 打造本地 pod 库

本篇的姊妹篇 Cocoapods 管理开源项目 已准备完毕,直戳 链接 即可达到。

Cocoapods 管理代码的必要性

项目到了一定规模, 代码组织和结构显得尤为重要.

重构项目结构,可以从分离代码开始,代码分离,可以把常用稳定的组件封装抽离出来.

分离代码, 常用的有几种方式:

  1. 放到不同的文件夹, 管理和组织代码.
  2. 使用 framework 的方式, 提供给项目使用.
  3. 工具管理如 Cocoapods.

这几种方式, 各有所长, 各有优劣, 无所谓好与坏, 根据自己的项目特点来组织即可.

我的做法是使用 cocoapods 来管理.

下面进入今天的主题:

使用 cocoapods 管理自己的本地代码.

博客 Mac OSX 10.11.1+ 安装 Cocoapods
介绍了如何在最新版 MacOS 中安装 Cocoapods 以及注意事项, 并且作者保证持续「更新, 更正」内容.

创建工程

使用 Xcode 创建一个工程, 工程名就起为 TestPods 吧.

工程目录可以防止在桌面或者你喜欢的目录下面都可以.

在 TestPods 下面创建 LocalLib 目录, 用来放置分离的代码.当然, 你也可以将 LocalLib 这个目录放到其他目录.

在 LocalLib 下面, 我的 pod 库代码名称为 download.

可以新建这个目录.

目录如下:
1

创建 podspec 文件

在 download 目录下面, 创建 podspec 文件

1
pod spec create download

创建完成后, 会生成 download.podspec 文件.

具体内容, 创建后, 大家可以自行查看.

修改 podspec 文件

修改 download.podspec, 主要修改几个关键地方:

源码位置
源码版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
――― Source Location ―――――――――――――――――――――――――――――――――――――――――――――#
#
# Specify the location from where the source should be retrieved.
# Supports git, hg, bzr, svn and HTTP.
#
s.source = { :git => "", :tag => "0.0.1" }
# ――― Source Code ――――――――――――――――――――――――――――――――――――――――――――#
#
# CocoaPods is smart about how it includes source code. For source files
# giving a folder will include any swift, h, m, mm, c & cpp files.
# For header files it will include any header in the folder.
# Not including the public_header_files will make all headers public.
#
s.source_files = "Source", "Source/**/*.{h,m}"
s.exclude_files = "Source/Exclude"

另外, 配置好相关描述信息, 不要包含 ‘Example’ 的字样, 不然, 新版的 Cocoapods 执行 pod install 时候, 会报出警告和错误.

这样, 工程可以使用 pods 库了.

工程使用 pod 库

将 TestPods 改为 cocoapods 项目.

在 TestPods 目录, 执行

1
pod init

会生成 Podfile 等文件.

修改 Podfile 文件

1
2
3
4
5
6
7
8
9
10
11
12
# Uncomment this line to define a global platform for your project
# platform :ios, '7.0'
# Uncomment this line if you're using Swift
# use_frameworks!
target 'TestPods' do
pod 'download', :path => './LocalLib/download/'
#pod 'core_lib_spec', :svn => 'http://svn.ids111.com/o2o/client/ios/trunks/master/Frameworks/CoreLibrary'
end
target 'TestPodsTests' do
end
target 'TestPodsUITests' do
end

关键是指明 pod 库的位置.
路径一定要正确.否则无法找到该库.

1
pod 'download', :path => './LocalLib/download/'

在 TestPods 下面, pod install 即可.

如果, pod install 报错, 一般都是你的 pod 库的配置文件(.podspec)里面写的不符合要求.

根据报错信息, 加以修改即可.

xcode 打开工程.
1

示例下载

工程示例代码, 可以 戳这里下载 玩耍!


扫码关注,你我就各多一个朋友~

坚持原创技术分享!