之前我们讨论了架构,并定义了一系列模块,这里我们讨论如何为这些模块进行组件化。这里我们采用的是使用Pod来进行组件化,即为每一个独立的模块创建一个自己的Pod。
前置条件
- 一个github的账号,并在此账号下创建一个空的Repo
注意,这里强烈建议创建空的Repo,不需要ReadMe,License,ignore文件,否则后面关联时还需要先pull再push)
- 注册pod的账号
使用
pod trunk register 邮箱地址 '任意名字' --description='任意描述'
注册pod账号,此后对应的邮箱会收到一封确认信,点击确认即注册成功
创建INSParseModel Pod
pod lib create INSParseModel
这里我们采用pod lib create
创建一个全新的Pod,接下来会出现下面的提示,按提示选择即可
What platform do you want to use?? [ iOS / macOS ]
> ios
What language do you want to use?? [ Swift / ObjC ]
> objc
Would you like to include a demo application with your library? [ Yes / No ]
> yes
Which testing frameworks will you use? [ Specta / Kiwi / None ]
> none
Would you like to do view based testing? [ Yes / No ]
> no
What is your class prefix?
> INS
接下来会自动创建INSParseModel的Xcode的项目并打开。
INSParseModel Project.png此后,我们就可以在Pods-Development Pods-INSParseModel下面进行开发,把ReplaceMe替换为我们自己定义的代码文件即可。
注意INSParseMode.podspec文件,注意s.source的地方,我们需要将它修改为我们之前创建的空的repo地址。
接下来进行远程仓库的关联
cd INSParseModel
git add .
git commit -am 'init'
git remote add origin https://github.com/xxx/xxx.git //和我们之前创建的空Repo进行关联
git push origin master
设置tag - 需要和podspec里面写的一致
git tag '0.1.0'
git push origin --tags
最后发布
pod trunk push INSParseModel.podspec --allow-warnings
重新发布
之后,每次修改需要重新发布时,我们需要做的就是
// 进入Example目录,重新安装我们开发中的Pod
cd Example
pod install
// 回到Xcode,执行项目,确保Example Demo运行成功
// 修改 INSParseModel.podspec的s.version,版本号加1
// 回到INSParseModel目录
cd ..
// 提交代码到github
git add .
git commit -am '提交内容的注释'
git push origin master
// 打tag
git tag 'x.x.x'. //必须和INSParseModel.podspec的s.version的一致
git push origin --tags
// 发布
pod trunk push INSParseModel.podspec --allow-warnings
注意,所有和github的操作,由于网络问题,可能会出现无法访问的情况,此时再尝试一次即可。当然,如果是其他问题,请参考具体的出错信息进行修改。
网友评论