美文网首页
cocoapod 组件化以及私有库 实践

cocoapod 组件化以及私有库 实践

作者: dongfang | 来源:发表于2020-09-16 21:08 被阅读0次

今天正好项目需要,实战一下,在此记录,根据官方文档https://guides.cocoapods.org/making/private-cocoapods.html操作

1. Create a Private Spec RepoSpec Repo

创建自己的私有的RepoSpec Repo
这个仓库是用来存储所有的组件,方便管理

这里用github 来做示例,打开https://github.com 然后创建一个名字为RepoSpec的仓库,获取该仓库的地址,这个是我的https://github.com/Chailang/RepoSpec.git

2. Add your Private Spec Repo to your CocoaPods installation

添加私有仓库到CocoaPods,命令行执行

pod repo add REPO_NAME SOURCE_URL
换成自己的仓库名以及地址,我的如下
pod repo add RepoSpec https://github.com/Chailang/RepoSpec.git

检查是否装成功:

open ~/.cocoapods/repos

截屏2020-09-16 下午7.26.19.png

可以看到自己建的仓库名称就ok了
至此 似有库的仓库就建成了

3.制作独立的单个组建,官网https://guides.cocoapods.org/making/using-pod-lib-create.html

  • 在桌面建个myrepo文件夹 切到该文件夹下

cd /Users/super/Desktop/myrepo
pod lib create Mylib

截屏2020-09-16 下午7.45.04.png

图中选项可以根据自己项目需求来选择

cocoaspod 直接打开项目工程了

截屏2020-09-16 下午7.57.11.png

真实目录如下,可以添加自己的测试代码


截屏2020-09-16 下午8.02.17.png
  • 创建远程仓库 名为Mylib
    https://github.com/Chailang/Mylib.git
    !创建时选择Public
    !创建时不要选择添加一个README文件(添加README文件相当于执行了一次Initial commit,导致不能自动合并,需要强制push

  • 关联本地仓库 Mylib ,切到Mylib 根目录,执行如下命令

      git add .
      git commit -m "frist commit"
      //  关联远程仓库
      git remote add origin [Git URL]
      git push -u origin master
      //强推
      git push -u origin master -f
    
  • 创建Tag并push
    !tag与version相同

     git tag -m "first release V0.0.1" 0.0.1
     git push --tags
    
  • 修改podspec,包括version、summary、homepage、source等信息

    [图片上传![截屏2020-09-16 下午8.21.29.png]

  • 本地和联网校验
    区别pod spec lint 会联网校验仓库以及tag

     pod lib lint  
     pod lib lint --allow-warnings 
     pod spec lint
     pod spec lint --allow-warnings
     推荐 使用  pod spec lint --allow-warnings
    
  • Mylib.podspec passed validation.
    恭喜制作成功

  • 在工程中更改podfile ,切到Example 目录,pod install

pod 'Mylib', :git => 'https://github.com/Chailang/Mylib.git'

 platform :ios, '8.0'
 target 'Mylib_Example' do
#  pod 'Mylib', :path => '../'#本地链接
 pod 'Mylib', :git =>   'https://github.com/Chailang/Mylib.git'

end

4. 将建的Mylib.组件推到 第一步创建的RepoSpec 仓库

pod repo push [RepoSpec 名字或地址] [Mylib.podspec 的绝对路径] --allow-warnings

或者切到 Mylib.podspec 目录下 使用如下命令

pod repo push RepoSpec *podspec --allow-warnings
或者

pod repo push https://github.com/Chailang/RepoSpec.git *.podspec --verbose --allow-warnings

  • pod 文件的使用更改如下
    source 'https://github.com/Chailang/RepoSpec.git'
    use_frameworks!
    platform :ios, '8.0'
    target 'Mylib_Example' do
    pod 'Mylib'
      target 'Mylib_Tests' do
        inherit! :search_paths
      end
    end

source 指定了从RepoSpec 下去找Mylib 库

5 所有的组件私有化,统一放到一个私有仓库来统一管理

相关文章

网友评论

      本文标题:cocoapod 组件化以及私有库 实践

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