美文网首页
让自己的框架支持CocoaPods

让自己的框架支持CocoaPods

作者: IT卡农 | 来源:发表于2019-05-22 18:31 被阅读0次

    1. 在 github 上创建新的项目

    注意 :
    LICENSE 是必须的
    readme.md 可选

    新创建仓库 如图所示 : new_repository.png

    2. clone 到本地, 放入自己的库和 demo

    clone.png

    3. podspec 文件

    • 3.1 创建
    pod spec create DGItemView.podspec
    

    3.2 编辑
    命令vim DGItemView.podspec

    Pod::Spec.new do |s|
      s.name         = 'DGItemView'
      s.version      = '1.0.0'
      s.license      = { :type => "MIT", :file => "LICENSE" }
      s.homepage     = 'https://github.com/David5-G/DGItemView'
      s.authors      = { 'david' => '2632771473@qq.com' }
      s.summary      = 'a view for segment control'
      s.source       = { :git => "https://github.com/David5-G/DGItemView.git", :tag => s.version }
      s.source_files  = "DGItemView/*.{h,m}"
      s.requires_arc = true
      s.frameworks   = 'UIKit' 
     s.ios.deployment_target  = '8.0'
    end
    
    s.name:名称,pod search 搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错
    s.version:版本号
    s.ios.deployment_target:支持的pod最低版本
    s.summary: 简介
    s.homepage:项目主页地址
    s.license:许可证
    s.author:作者
    s.social_media_url:社交网址,这里我写的微博默认是Twitter,如果你写Twitter的话,你的podspec发布成功后会@你
    s.source:项目的地址
    s.source_files:需要包含的源文件(基于source)
    s.resources: 资源文件
    s.requires_arc: 是否支持ARC
    s.dependency:依赖库,不能依赖未发布的库
    s.dependency:依赖库,如有多个可以这样写
    
    • 这里的 description 书写 需要一点格式, 具体是下面这样:
    s.description  = <<-DESC
                  easy to use WeChat SDK tools.
                       DESC
    
    • 这里的 source_file 书写, 需要依据你的目录结构 :
    默认是 s.source_files = "Classes/**/*.{h,m}"
    首先
    ** 是匹配所有目录,
    * 匹配文件,
    .{h,m} 匹配后缀是 .h 或 .m 的文件
    

    Classes 须和 podspec 同级的存放, 这里我存放库文件的目录是DGItemView, 且里面已经是.h & .m的文件, 即我的 s.source_files = "DGItemView/*.{h,m}", 若你的目录下还有很多子目录比如 util, tool, 可以写成

    s.source_files  = "Classes/util/*.{h,m}"
    s.source_files  = "Classes/tool/*.{h,m}"
    //或者是
    s.source_files  = "Classes/**/*.{h,m}"
    
    • s.source 常见写法
    //commit => "68defea" 表示将这个Pod版本与Git仓库中某个commit绑定
    s.source = { :git => "https://github.com/xxx.git", :commit => "68defea" }
    //tag => 1.0.0 表示将这个Pod版本与Git仓库中某个版本的comit绑定
    s.source = { :git => "https://github.com/xxx.git", :tag => 1.0.0 }
    //tag => s.version 表示将这个Pod版本与Git仓库中相同版本的comit绑定
    s.source = { :git => "https://github.com/xxx.git", :tag => s.version }
    
    • 3.3 验证
    pod spec lint DGItemView.podspec
    

    注 : 可加参数
    --verbose 打印错误信息
    --allow-warnings 允许警告
    --use-libraries 允许使用静态库

    通过验证: podspec_pass_validation.png

    4.上传到Git

    将包含配置好的 .podspec, LICENSE,和第2步中的文件项目提交 Git

    5.打tag

    注意 :
    cocoapods是依赖tag版本的,所以必须打tag,
    更新库时
    1.只需要再一个tag
    2.然后修改.podspec文件中的版本接着提交到cocoapods

    //为git打tag, 第一次需要在前面加一个v
    git tag 1.0.0
    //将tag推送到远程仓库
    git push --tags
    

    6.发布到 cocoapods

    pod trunk push DGItemView.podspec
    

    发布成功


    podspec_push_success.png

    7.注册cocoapods

    trunk需要CocoaPods 0.33版本以上,用pod --version命令查看版本,

    //如果版本低,需要升级
    sudo gen install cocoapods
    pod setup
    
    //检查注册
    pod trunk me
    
    //注册
    // 加上--verbose可以输出详细debug信息,方便出错时查看。
    pod trunk register xxx@qq.com "name" --verbose
    

    注册完成之后会给你的邮箱发个邮件,进入邮箱邮件里面有个链接,需要点击确认一下

    8.搜索一下

    pod search DGItemView
    

    注意 : cocoapods 需要一些处理时间, 可以去 cocoapods 官网去查看自己的库

    • 若提示Unable to find a pod with name, author, summary, or descriptionmatching 'DGItemView'
    • 删除~/Library/Caches/CocoaPods目录下的search_index.json文件
    • 终端输入rm ~/Library/Caches/CocoaPods/search_index.json
    • 删除成功后再执行pod search DGItemView就可以了

    用CocoaPods做iOS程序的依赖管理
    CocoaPods官网

    相关文章

      网友评论

          本文标题:让自己的框架支持CocoaPods

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