iOS组件化和podspec

iOS组件化

安装git和cocoapods

1、创建一个组健库,也就是要编写的组件,用下面的命令:

    pod lib create 组件名称

2、首先在远程建立两个库,一个是存放spec文件,另外一个是存放组件业务的相关工程:

3、本地的两个文件夹下,git命令初始化,主要用来项目关联和远程仓库的,初始化命令如下:

    git init

4、创建好了就是把本地两个库和远程的仓库关联起来,用git命令,首先进入你要提交的文件夹下面,命令如下:

    git remote add orgin 仓库的地址(后面加git的那个)

5、然后进入业务组件的项目文件下面用git命令提交项目,代码如下:

    git add .

    git commit -m “文字描述”

    git tag 0.1.2

    git push origin master --tags -f

注意: tag 值需要和pod的版本号保持一致,这个只是提交你的业务组件内容部分,别提交pod管理spec的那个库。

6、本地的pod库和远程你建立的放spec文件的仓库关联,这里在关联的时候就添加进去了,所以不用考虑添加,代码如下;

pod repo add MySpecMain 仓库地址

注意: MySpecMain 是自己的pod名称,建立完了可以用 pod repo 查看。

7、验证这个spec文件是否是合法的,这个时候我们直接用的是线上的验证,代码如下:

    pod spec lint --sources=‘自己的pod仓库地址,https://github.com/CocoaPods/Specs‘

7.1、这里这与spec文件的修改,可以参考git上的代码库,这里就不细讲解了。

7.2 、关于source_files文件的修改,主要注意项目的依赖关系和项目的目录层级。

8、在生成的业务组件库里面有个podspec结尾的文件,这时候就是添加podspec文件到本地的pod私有管理库里面,就是6生成的那个库,同事你要推送到你的仓库的 pod 私有管理库的远程分支上,一定进入业务项目的podspec文件中,代码如下:

    pod repo push pod本地库 podspec文件 --sources=‘自己私有pod远程仓库地址 ,https://github.com/CocoaPods/Specs‘ --allow-warnings

注意: sources后面有几个要认证的git就写几个,用逗号隔开,这里我被坑了N次,也是不理解原理的原因吧,而且source和git的顺序有关有时候过去不换下顺序吧。

9、如果报错 The repo ‘‘pod私有库的名称‘..........‘ is not clean 的时候,执行下面命令:

    pod repo update pod私有库的名称

10、链接如下:

    https://www.jianshu.com/p/2625f103afee

### 下面是注意点和一些自己项目中的错误总结

10.1、有时候组件添加成功 ,但是 pod search 搜索不到响应的组件库,项目中用 pod install 没问题,这个当时项目中遇见的一个问题。

10.2、每次更新完毕后需要更新spec文件库,并且从新提交,不然会报错。 10.3、关于组件库在pod spec lint时候错误码如下:

    - ERROR | [iOS] [MCOrderList/View] xcodebuild: Returned an unsuccessful exit code.

解决方案:更新版本号,从新打tag然后远程端验证就可以了,如果还是报错 pod repo update 自己的私有库名称就可以。

相关推荐