组件化的优点:
1、降低业务之间的耦合度
一、创建远程私有仓库
- a.创建私有库
- b.将私有库关联到本地
cd ~/.cocoapods/repos
pod repo add 'Spec' 'https://gitee.com/majili/Spec.git'
二、创建私有代码仓库
1、创建文件夹Lib
2、进入到Lib文件夹下,执行命令:
// Test组件名称
pod lib create Test
出现如下提示:
What platform do you want to use?? [ iOS / macOS ]
>iOS
What language do you want to use?? [ Swift / ObjC ]
> Swift
Would you like to include a demo application with your library? [ Yes / No ]
>Yes
Which testing frameworks will you use? [ Quick / None ]
>None
Would you like to do view based testing? [ Yes / No ]
>No
3、创建完成后会自动打开工程
Test
ReplaceMe.swift
文件所在的位置就是我们要写的组件放置的位置。
将我们的demo放在ReplaceMe.swift
所在的位置,ReplaceMe.swift
可以删除。
进入Test文件路径下,执行:
pod install
4、前往码云创建Test
仓库
5、创建成功后配置Test.podspec
文件
// 添加文件夹的配置
s.subspec 'Controller' do |controller|
controller.source_files = 'PHUISuggest/Classes/Controller/**/*'
end
s.subspec 'Extension' do |extension|
extension.source_files = 'PHUISuggest/Classes/Extension/**/*'
end
s.subspec 'Model' do |model|
model.source_files = 'PHUISuggest/Classes/Model/**/*'
end
s.subspec 'View' do |view|
view.source_files = 'PHUISuggest/Classes/View/**/*'
end
//配置图片资源
s.resource = "PHUISuggest/Assets/source.bundle"
# s.resource_bundles = {
# 'PHUISuggest' => ['PHUISuggest/Assets/*']
# }
6、提交开发的组件Test
到远程仓库
git remote add origin https://gitee.com/majili/Test.git #添加远程仓库
git push -u origin master #第一次可能会报错可尝试用 git push -u origin master -f 可能会覆盖远程的修改
git add . #记得后面一定要有 .
git commit -m "创建我的组件"
git push -u origin master
git tag '0.1.0' #注意:这里的tag号必须和.podSpec文件的版本号一致
git push --tags
上面git remote add origin
https://gitee.com/majili/Test.git可能出现问题:
fatal: not a git repository (or any of the parent directories): >.git
表示在当前指向的文件夹里找不到库(.git文件夹)
解决办法是对目录进行初始化
git init
git push -u origin master
可能会出现
error: src refspec master does not match any.
error: failed to push some refs to
>' https://gitee.com/majili/Test.git'
出现错误的主要原因是码云中的README.md文件不在本地代码目录中,可以通过如下命令进行代码合并[注:pull=fetch+merge
git pull --rebase origin master
建议使用GitHub Desktop或者SourceTree提交开发的组件的代码
7、本地验证和远程验证(在工程目录下)
- 本地验证pod能否通过验证
pod lib lint --use-libraries --allow-warnings
--verbose
:有些非语法错误是不会给出错误原因的,这个时候可以使用--verbose
来查看详细的验证过程来帮助定位错误。
--use-libraries
:表示使用静态库或者是framework,这里主要是解决当我们依赖一些framework库后校验提示找不到库的时候用到。
--allow-warnings
:表示允许警告。
- 从本地和远程验证pod能否通过验证
pod spec lint --use-libraries --allow-warnings
8、将远程的spec
库关联到本地:
spec
文件里添加Test
组件版本号
将添加的 0.1.0 文件提交到远程
9、在主工程下添加依赖Test
组件,pod install
或 pod update
网友评论