欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

程序员文章站 2022-04-11 13:54:54
...

iOS组件化实践之一: Cocoapods创建私有库图文详解

1. 创建远程私有索引库Specs

登录github, 创建私有索引库
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)
克隆地址
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

2. 将远程索引库关联到本地cocopods的repos文件夹下

cd /Users/zhouyu/.cocoapods/repos;
pod repo add zhouyuSpecs https://github.com/ios-zhouyu/zhouyuSpecs.git

iOS组件化实践之一: Cocoapods创建私有库图文详解(github)
/Users/zhouyu/.cocoapods/repos目录下面多了个zhouyuSpecs目录iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

3. 创建组件化基础库管理文件夹

cd到指定的目录,这个ComponentPrivatePods是自己创建的一个文件目录, 里面放置各个组件化基础库,
本人选择cd /Users/zhouyu/目录下创建
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

4. 创建一个基础组件库

cd 到ComponentPrivatePods基础库文件夹, 比如常见的XXKit组件库

cd /Users/zhouyu/ComponentPrivatePods
pod lib create ZYKit

回答几个问题
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

创建完毕后会自动使用Xcode打开刚创建的组件库工程文件
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)
组件的目录结构说明
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

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

iOS组件化实践之一: Cocoapods创建私有库图文详解(github)
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)
清除已被删除文件的引用
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

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 安装本地组件依赖
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)
不执行pod install 会报错, 找不到本地依赖文件

iOS组件化实践之一: Cocoapods创建私有库图文详解(github)
验证通过
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

7. github创建对应的远程组件库ZYKit

https://github.com/ios-zhouyu/ZYKit.git

iOS组件化实践之一: Cocoapods创建私有库图文详解(github)
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

8. 配置本地ZYKit组件库的podspec文件

具体参数的意义, 请查看网上的说明, 讲解的有很多.
主要注意下面的事项
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

9. 将本地组件库ZYKit提交到远程github的ZYKit中

iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

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

iOS组件化实践之一: Cocoapods创建私有库图文详解(github)
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

10. 提交增大的tag提及到到远端ZYKit,以便11进行验证

iOS组件化实践之一: Cocoapods创建私有库图文详解(github)
将tag增大,保存podspec文档
每次修改提交到github对应的组件库都需要增加tag
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

git tag '0.1.1'
git push --tag

iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

11. 对文件进行本地验证和远程验证

iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

11.1 从本地验证你的pod能否通过验证

pod lib lint --use-libraries --allow-warnings

--verbose:有些非语法错误是不会给出错误原因的,这个时候可以使用--verbose来查看详细的验证过程来帮助定位错误。
--use-libraries:表示使用静态库或者是framework,这里主要是解决当我们依赖一些framework库后校验提示找不到库的时候用到。
--allow-warnings:表示允许警告。iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

11.2 从本地和远程验证的pod能否通过验证

pod spec lint --use-libraries --allow-warnings

验证通过
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

12. 将spec文件提交到本地的私有索引仓库,然后再push到远程索引仓库

iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

pod repo push zhouyuSpecs ZYKit.podspec --use-libraries --allow-warnings

iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

13. 查看是否操作成功

本地zhouyuSpecs索引库增加成功
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)
远端github索引库增加成功
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)

14. 创建demo引入组件化库

pod init

iOS组件化实践之一: Cocoapods创建私有库图文详解(github)pod intall

iOS组件化实践之一: Cocoapods创建私有库图文详解(github)
组件化调用成功
iOS组件化实践之一: Cocoapods创建私有库图文详解(github)