CocoaPods是当前 Swift 和 Objective-C 工程中较为流行的依赖管理工具,通过一份 Podfile 和几条基本命令就能帮助开发者优雅地管理工程依赖。大多数时候只是利用 CocoaPods 安装或更新特定版本的库,但是如何创建pod了?项目中的可执行文件,xib和图片等资源文件该如何通过pod进行管理了?
下面将介绍如何制作CocoaPods依赖库,以及过程中遇到的坑点。
1. 制作 CocoaPods 依赖库
可通过 命令:pod lib create projectName
按提示进行创建,也可通过以下步骤1-5进行创建。
- github/coding上创建一个项目:PrivateProject
- 本地创建一个项目PrivateProject : ~/**/PrivateProject
- 本地项目和远程仓库关联:git remote add origin [地址]
- 添加开源许可文件 echo MIT>FILE_LICENSE
- 创建.podspec 的描述文件。名称必须和依赖库名保持一致 pod spec create [库名]
- 提交到github
git commit -m "..."
git tag 0.0.1 tag一定要和podspec中的version一致
git push origin master --tags --tags为了把刚才添加的tag提交上去
- 把私有库添加到私有的repo中
pod repo push [repo] NAME.podspec
成功后pod search [私有Pod源仓库名字] 就能搜索到
编辑.podspec
s.name = "AICUserCenterModule" #名称,pod search 搜索的关键词
s.version = "0.0.1" #版本
s.summary = "AICUserCenterModule" #简介,pod search 搜索的关键词
s.homepage = "https://github.com/hanlihui/AICUserCenterModule" #主页地址
s.license = { :type => "MIT", :file => "LICENSE" } #许可证
s.author = { "hanlihui" => "806236860@qq.com" } #作者
s.platform = :ios, "7.0" #平台
s.source = { :git => "https://github.com/hanlihui/AICUserCenterModule.git", :tag => "#{s.version}" } #Git仓库地址
s.source_files = "AICUserCenterModule/AICUserCenterModule/**/*.{h,m}" #需要包含的源文件
s.resources = "AICLoginModule/AICLoginModule/**/*.{xib,nib,storyboard,png}" #需要包含的图片,xib等资源文件
s.dependency = "AICProtocolManager" #依赖库
s.requires_arc = true #是否要求ARC
注:
- 在podspec中 利用 source_files 你可以指定要编译的源代码文件
- 使用 s.resources = "AICLoginModule/AICLoginModule/*/.{xib,nib,storyboard,png}" 包含需要的图片,xib等资源文件。这些资源文件会被直接拷贝到client target的mainBundle里,就实现了把xib,图片等资源打包进应用程序的目的。但容易引起命名冲突。
- Cocoapods加入新属性resource_bundles,实例如下
s.resource_bundles = { 'AICLoginModule' => ['AICLoginModule/**/*.{xib,nib,storyboard,png}'] }
显式的对bundle加了分组。
2. 创建私有Pod源仓库
- 到GitHub/Coding上开一个repo,作为私有Pod源仓库
- 本地添加私有源。命令:pod repo add [私有Pod源仓库名字] [私有Pod源的repo地址]
- 查看私有源:cd ~/.cocoapods/repos
参考资料
Private Pods