3篇文章带你学会组件化😁😁😁
1.iOS 创建远程cocoapods 私有库
2.iOS Pod 私有库创建(自定义的组件)
3.iOS CTMediator组件化实践
其实就是创建一个组件, 放到GitHub 上, 别人直接pod 过去就能用, 而不是像原来一样把上传的文件下载然后拉取到项目中...
1. 先在Git上创建远程私有库
和自己平时创建仓库一模一样
2. 创建本地项目
- 进入终端,cd到目标目录下, 便于管理, 最好将你一个项目的使用到的所有组件放到同一文件夹下, 例如demo文件夹
- 在demo 目录下创建组件CustomUIKit
格式: pod lib create xxx
pod lib create CustomUIKit
将会经过如下一系列询问
以上步骤完成后,将会自动打开XCode项目.
可以通过 tree 指令或者打开文件夹看下创建的本地仓库的目录结构
3. 修改xxx.podspec 文件
下面是一些注释, 根据实际情况增加或者减少即可.
Pod::Spec.new do |s|
s.name = "A_section"
#发版版本号,每更新一次代码就改变一次版本号
s.version = "0.0.1"
#一个简单的总结,随便写
s.summary = "A short description of A_section."
#一定要写上,不写的话,执行 pod lib lint 验证项目的时候会报找不到 UIKIT 等框架错误
s.platform = :ios, "8.0"
#描述,随便写 但是要比 s.summary 长度长
s.description = <<-DESC
short description of A_section short description of A_section
DESC
#你的 git 仓库首页的网页 url,注意并不是 https/ssh这种代码仓库地址
s.homepage = "https://coding.net/u/xxxx/p/A_section"
#直接写 MIT
s.license = "MIT"
#你是谁
s.author = { "" => "" }
#这里就是你 git 仓库的 https/ssh 地址了
s.source = { :git => "https://git.coding.net/xxxx/A_section.git", :tag => "#{s.version}" }
#这里的文件夹下的内容就是这个 pods 被pod install 的时候会被下载下来的文件,不在这个文件夹,将不会被引用
# Classes 目录和.podspec 目录是平级的。
#你可以随便指定文件夹名称,只要这个文件夹是真实存在的
#Classes/**/*.{h,m},表示 Classes 文件夹及其文件夹下的所有.h,.m 文件。
s.source_files = "A_section/Classes/**/*.{h,m}"
#资源文件地址,下面的所有.png资源都被打包成 s.name.bundle
s.resource = ['Images/*.png','Sounds/*']
#资源文件地址,和 resource 的区别是,这个属性可以指定 bundle 的名字,下面的所有.png文件都会被打包成 ABC_section.bundle
s.resource_bundle = {
'ABC_section' => ['Classes/ABCImage/*png']
}
#指定公有头文件,如果没有写,那么所有 pod 中的头文件都默认公有,可以被 import。如果指定了某些头文件,那么只有这些被指定的头文件才可以被 import。
s.public_header_files = 'Classes/Public/*.h'
#这个 pods 还依赖于其他哪些 pods
s.dependency "B_Category"
s.dependency "HandyFrame"
4. cd Example/
更新组件内容
pod update --no-repo-update
5. cd demo/CustomUIKit/
pod lib lint
可能会出现验证失败的情况, 就根据提示解决就好
[!] CustomUIKit did not pass validation, due to 2 warnings (but you can use
--allow-warnings
to ignore them).
You can use the--no-clean
option to inspect any issue.
6. 关联远程地址
git remote add origin git@github.com:LiHe0308/CustomUIKit.git
git add .
git commit -a -m "创建项目"
git push -u origin HEAD
至此就将创建的私有库上传到GitHub上了.
7. 项目发布
git tag 0.1.0
git push origin 0.1.0
要想被使用,还需向私有 CocoaPods 远程索引库提交 podspec 描述文件.
8. 向私有 CocoaPods 远程索引库提交 podspec 描述文件
pod repo push PrivateSpecs CustomUIKit.podspec --allow-warnings
- PrivateSpecs 就是私有索引仓库的名称.
- CustomUIKit.podspec 就是创建组件的文件夹下面的.podspec的全名(注意:
xxx.podspec路径需注意,必须是.podspec的路径, 也就是说,当前操作要在demo下的CustomUIKit目录下进行
).
完成之后这个组件库就添加到我们的私有Spec Repo中了,可以进入到~./cocoapods/repos/xxx目录下查看
.End