美文网首页
远端私有库管理项目学习笔记

远端私有库管理项目学习笔记

作者: zcc_ios | 来源:发表于2020-07-29 10:01 被阅读0次
    大概步骤
    1. 如果没有远程管理私有库就创建一个url私有库,并且拉到本地。
    2. 如果需要上传的framework的文件没有远程仓库,就创建一个远程仓库
    3. 打包代码成framework后缀静态库
    4. 创建podspec,并且pod lib lint xxx.podspec --sources=url //url就是存放静态库的远程仓地址判断是否xxx.podspec是否有效
    5. 把xxx.podspec推到管理私有库版本的远端仓库

    pod repo push remoteLib xxx.podspec --sources='url' --use-libraries --allow-warnings --verbose // 其中remoteLib为本地私有库版本管理的文件夹名 url为管理私有库版本的远端仓库地址

    下面是详细步骤
    第一步

    建立远端私有库版本管理库,这里我们通过码云来创建

    然后将远端私有库版本管理库添加到本地

    pod repo add zcc_iOS_Specs https://gitee.com/zcc1220/zcc_iOS_Specs
    

    第二步

    创建远端代码仓库,同样适用码云建私有库并clone到本地。

    参照这个url流程

    cd到本地将要clone的文件路径我这里是
    cd /Users/zcc/Desktop/staticFrameWorkDemo2

    git clone https://gitee.com/zcc1220/staticFrameWorkDemo2.git

    把需要传到远端的项目放到这个仓库路径下

    第三步

    build Settings -> Match-O Type 修改为static Library

    build phases -> headers -> 把需要暴露在外面的.h文件从project移到public

    在staticFrameWorkDemo2.h文件中把其他.h文件按模版(#import <staticFrameWorkDemo2/PublicHeader.h>)规则import
    然后修改包的输出地址 在build Settings -> user-defined 添加
    CONFIGURATION_BUILD_DIR 设置路径为staticFrameWorkDemo2/Framework
    并且在当前目录创建一个framework文件夹
    command+b后就会在framework文件夹里出现当前代码编译后的静态库(在show in Finder中)
    依次cd /Users/zcc/Desktop/staticFrameWorkDemo2/staticFrameWorkDemo2
    git status
    git add .
    git commit -m "添加项目文件"
    git push

    第四步

    pod spec create staticFrameWorkDemo2 https://gitee.com/zcc1220/staticFrameWorkDemo2.git
    创建podspec文件
    打开podspec文件
    删除所有注释
    最后看到这样

    Pod::Spec.new do |spec|
    
      spec.name         = "staticFrameWorkDemo2"
      spec.version      = "0.0.1"
      spec.summary      = "A short description of staticFrameWorkDemo2."
    
      spec.description  = <<-DESC
                       DESC
    
      spec.homepage     = "http://EXAMPLE/staticFrameWorkDemo2"
    
      spec.license      = "MIT (example)"
      # spec.license      = { :type => "MIT", :file => "FILE_LICENSE" }
    
      spec.author             = { "zcc941220" => "zcc131014@gmail.com" }
    
      spec.source       = { :git => "http://EXAMPLE/staticFrameWorkDemo2.git", :tag => "#{spec.version}" }
      spec.source_files  = "Classes", "Classes/**/*.{h,m}"
      spec.exclude_files = "Classes/Exclude"
    
    
    end
    

    修改spec.description添加长一点的注释,短了会报错,我改成了这样

    spec.description  = <<-DESC
      私有库管理学习私有库管理学习私有库管理学习私有库管理学习私有库管理学习私有库管理学习
                       DESC
    

    修改

    spec.license      = { :type => 'MIT', :file => 'LICENSE' }
    

    注释

    # spec.exclude_files = "Classes/Exclude"
    # spec.source_files  = "Classes", "Classes/**/*.{h,m}"
    

    修改source地址为

      spec.source = { :git => "https://gitee.com/zcc1220/staticFrameWorkDemo2.git", :tag => "#{spec.version}" }
    

    增加
    最后内容

    
    Pod::Spec.new do |spec|
    
      spec.name         = "staticFrameWorkDemo2"
      spec.version      = "0.0.1"
      spec.summary      = "A short description of staticFrameWorkDemo2."
    
      spec.description  = <<-DESC
      私有库管理学习私有库管理学习私有库管理学习私有库管理学习私有库管理学习私有库管理学习
                       DESC
    
      spec.homepage     = "http://EXAMPLE/staticFrameWorkDemo2"
      spec.license      = { :type => 'MIT', :file => 'LICENSE' }
      # spec.license      = { :type => "MIT", :file => "FILE_LICENSE" }
      spec.author             = { "zcc941220" => "zcc131014@gmail.com" }
      spec.source       = { :git => "https://gitee.com/zcc1220/staticFrameWorkDemo2.git", :tag => "#{spec.version}" }
    
      # spec.source_files  = "Classes", "Classes/**/*.{h,m}"
      # spec.exclude_files = "Classes/Exclude"
      spec.ios.deployment_target = '8.0'
      spec.vendored_frameworks = "staticFrameWorkDemo2/Framework/staticFrameWorkDemo2.framework"
    
    end
    

    验证podspec是否有效

     pod lib lint staticFrameWorkDemo2.podspec --sources=https://gitee.com/zcc1220/staticFrameWorkDemo2.git --allow-warnings
    

    依次调用这些命令
    上传xxxx.podspec文件并且打tag0.0.1

    git status
    git add .
    git commit -m "修改podspec文件"
    git push
    git tag '0.0.1'// 这个版本和xxxx.podspec中的spec.version      = "0.0.1"版本一致
    git push --tag
    

    第五步

    把配置推到配置仓库代码
    pod repo push zcc_iOS_Specs staticFrameWorkDemo2.podspec --sources='https://gitee.com/zcc1220/zcc_iOS_Specs.git' --use-libraries --allow-warnings --verbose

    如果出现以下报错

    [!] The repo `zcc_iOS_Specs` at `../../../.cocoapods/repos/zcc_iOS_Specs` is not clean
    

    说明本地私有库管理仓库可能有改动没提交 通过这行命令更新一下
    pod repo update zcc_iOS_Specs

    最后建一个项目去集成一下自己的私有库
    podfile内容

    source 'https://gitee.com/zcc1220/zcc_iOS_Specs.git'
    platform :ios, '9.0'
    target 'staticFrameWorkTest' do
      # Comment the next line if you don't want to use dynamic frameworks
      use_frameworks!
    
      # Pods for staticFrameWorkTest
    pod 'staticFrameWorkDemo2'
    
    end
    

    pod install
    之后就能用了

    相关文章

      网友评论

          本文标题:远端私有库管理项目学习笔记

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