iOS组件化实践之一: Cocoapods创建私有库图文详解(github)
程序员文章站
2022-04-11 13:54:54
...
文章目录
- iOS组件化实践之一: Cocoapods创建私有库图文详解
- 1. 创建远程私有索引库Specs
- 2. 将远程索引库关联到本地cocopods的repos文件夹下
- 3. 创建组件化基础库管理文件夹
- 4. 创建一个基础组件库
- 5. 创建对应组件类文件,并拖入组件库
- 6. Example工程测试创建的组件库
- 7. github创建对应的远程组件库ZYKit
- 8. 配置本地ZYKit组件库的podspec文件
- 9. 将本地组件库ZYKit提交到远程github的ZYKit中
- 10. 提交增大的tag提及到到远端ZYKit,以便11进行验证
- 11. 对文件进行本地验证和远程验证
- 12. 将spec文件提交到本地的私有索引仓库,然后再push到远程索引仓库
- 13. 查看是否操作成功
- 14. 创建demo引入组件化库
iOS组件化实践之一: Cocoapods创建私有库图文详解
1. 创建远程私有索引库Specs
登录github, 创建私有索引库
克隆地址
2. 将远程索引库关联到本地cocopods的repos文件夹下
cd /Users/zhouyu/.cocoapods/repos;
pod repo add zhouyuSpecs https://github.com/ios-zhouyu/zhouyuSpecs.git
/Users/zhouyu/.cocoapods/repos
目录下面多了个zhouyuSpecs
目录
3. 创建组件化基础库管理文件夹
cd到指定的目录,这个ComponentPrivatePods
是自己创建的一个文件目录, 里面放置各个组件化基础库,
本人选择cd /Users/zhouyu/
目录下创建
4. 创建一个基础组件库
cd 到ComponentPrivatePods
基础库文件夹, 比如常见的XXKit组件库
cd /Users/zhouyu/ComponentPrivatePods
pod lib create ZYKit
回答几个问题
创建完毕后会自动使用Xcode打开刚创建的组件库工程文件
组件的目录结构说明
5. 创建对应组件类文件,并拖入组件库
存放到组件库ZYKit>Classes文件夹下, 并删除原有文件
# NSString+ZYString.h
@interface NSString (ZYString)
+ (void)test;
@end
# NSString+ZYString.m
#import "NSString+ZYString.h"
@implementation NSString (ZYString)
+ (void)test {
NSLog(@"这是个组件库测试");
}
@end
清除已被删除文件的引用
6. Example工程测试创建的组件库
cd 到Example文件Podfile文件, 可以看到本地引用路径pod 'ZYKit', :path => '../'
use_frameworks!
platform :ios, '8.0'
target 'ZYKit_Example' do
pod 'ZYKit', :path => '../'
target 'ZYKit_Tests' do
inherit! :search_paths
end
en
执行pod install
安装本地组件依赖
不执行pod install
会报错, 找不到本地依赖文件
验证通过
7. github创建对应的远程组件库ZYKit
https://github.com/ios-zhouyu/ZYKit.git
8. 配置本地ZYKit组件库的podspec文件
具体参数的意义, 请查看网上的说明, 讲解的有很多.
主要注意下面的事项
9. 将本地组件库ZYKit提交到远程github的ZYKit中
cd /Users/zhouyu/ComponentPrivatePods/ZYKit
git init # git初始化
git remote add origin https://github.com/ios-zhouyu/ZYKit.git # 远程关联
git pull origin master:master # 从远程分支拉取master分支并与本地master分支合并
git push -u origin master -f # 提交本地分支到远程分支
git add .
git commit -m '增加组件库ZYKit'
git push --set-upstream origin master
10. 提交增大的tag提及到到远端ZYKit,以便11进行验证
将tag增大,保存podspec文档
每次修改提交到github对应的组件库都需要增加tag
git tag '0.1.1'
git push --tag
11. 对文件进行本地验证和远程验证
11.1 从本地验证你的pod能否通过验证
pod lib lint --use-libraries --allow-warnings
--verbose
:有些非语法错误是不会给出错误原因的,这个时候可以使用--verbose
来查看详细的验证过程来帮助定位错误。--use-libraries
:表示使用静态库或者是framework,这里主要是解决当我们依赖一些framework库后校验提示找不到库的时候用到。--allow-warnings
:表示允许警告。
11.2 从本地和远程验证的pod能否通过验证
pod spec lint --use-libraries --allow-warnings
验证通过
12. 将spec文件提交到本地的私有索引仓库,然后再push到远程索引仓库
pod repo push zhouyuSpecs ZYKit.podspec --use-libraries --allow-warnings
13. 查看是否操作成功
本地zhouyuSpecs索引库增加成功
远端github索引库增加成功
14. 创建demo引入组件化库
pod init
pod intall
组件化调用成功