美文网首页
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