组件化

作者: Maji1 | 来源:发表于2019-12-10 17:01 被阅读0次

组件化的优点:
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文件

.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组件版本号

spec
将添加的 0.1.0 文件提交到远程

9、在主工程下添加依赖Test组件,pod installpod update

相关文章

网友评论

      本文标题:组件化

      本文链接:https://www.haomeiwen.com/subject/ndrbgctx.html