美文网首页
iOS 创建属于自己的公开库

iOS 创建属于自己的公开库

作者: 爱吃榴莲的程序员 | 来源:发表于2019-08-06 11:39 被阅读0次

    前言

    iOS开发过程中我们经常会使用到CocoaPods,进行第三方类库的管理;经常会使用到的cocoaPods命令行

    cd ...// 打开并进入你需要创建podfile文件的工程目录
    touch podfile // 创建一个可用文本编辑打开的podfile 文件
    open -e podfile //打开刚才创建的podfile文件
    pod search ...// 搜索我们需要使用的公开库(AFNetworking)
    pod install... // 等待安装成功
    

    为什么开发中我们使用CocoaPods管理第三方库?

    1、传统使用第三方库的劣势

    a.使用一个第三方SDK,需要在工程里面添加一堆配置,少添加一步配置就会报一大堆错误。这个时候为了排查少了哪一个步骤,只能从头开始重做一遍,太浪费时间和精力。有些配置还不好配置,就更使人烦躁郁闷了。
    b.如果使用的第三方SDK有比较重要的更新,想使用最新的SDK只能到官方下载最新的SDK,重新导入到自己的项目工程中。
    c.如果公司有多个项目,每一个工程都这样配置一遍,这是多么痛苦的领悟呀。

    2、使用CocoaPods管理第三方库的优势

    1、我们可以避免上诉的问题,使用方便。
    2、方便我们自己管理,只需要更新版本就行了,以前的库还可以保留让他人使用。

    从这一刻我教会你如何创建属于我们自己的公开库

    Everybody,follow my footsteps,let's start together! I will show you something amazing!

    如何创建属于我们自己的公开库呢?

    • 1、注册Trunk :trunk需要CocoaPods 1.0.0版本以上,使用pod --version 查看当前Mac 版本号
    image.png
    • 如果当前版本过低,需要升级:
    sudo gen install cocoapods
    pod setup
    
    • 查看是否已经注册Trunk (我已经注册过)
    pod trunk me
    
    image.png
    • 注册Trunk
    // --verbose 可以输出详细的Debug信息
    pod trunk register zhangsan@163.com "zhangsan" --verbose
    // zhangsan      -----> 用户名
    // zhangsan@163.com    -----> 邮箱地址
    

    注册完成后,会收到一封邮件信息,进入邮件信息链接,确认注册

    • 注册成功后可以再一次使用pod trunk me 查看个人信息
    • 2、GitHub上创建一个仓库,并将自己的代码进行上传
      大家可以查看Mac上传代码至GitHub文章中我做了详细的介绍;
    • 3创建XXX.podspec文件
      1.cd进入克隆的项目目录下
    pod spec create XXX
    // XXX ---> 表示你即将创建的框架名称
    
    • 4、编辑.podspec文件 (可使用默认文本编辑打开)
      下文附上我的一个公开库 WYQProgressHUD
    Pod::Spec.new do |s|
      s.name         = "WYQProgressHUD"
      s.version      = "1.1.0"
      s.summary      = "提供网络加载等待层,用户操作成功、失败提示框"
      s.description  = <<-DESC
                WYQProgressHUD 提供网络加载等待层,用户操作成功、失败提示框
                       DESC
    
      s.homepage     = "https://github.com/YongQiangWei/WYQProgressHUD" 
      s.license      = "MIT"
      s.author             = { "yongQiang Wei" => "15249085279@163.com" }
      s.ios.deployment_target = "8.0"
      s.source       = { :git => "https://github.com/YongQiangWei/WYQProgressHUD.git", :tag => "#{s.version}" }
      s.source_files  = "WYQProgressHUD/*.{h}"
      s.exclude_files = "Classes/Exclude"
      s.resources = "MBProgressHUDExtend/MBProgressHUD.bundle/*.png"
      s.dependency "MBProgressHUD","~> 1.1.0"
    
    end
    

    简单说明:
    s.name:名称,pod search 搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错
    s.version:版本号
    s.ios.deployment_target:支持的pod最低版本
    s.summary: 简介
    s.homepage:项目主页地址
    s.social_media_url:社交网址,这里我写的微博默认是百度,如果你写的是你自己的博客的话,你的podspec发布成功后会@你
    s.license:许可证
    s.author:作者
    s.source:项目的地址
    s.requires_arc: 是否支持ARC
    s.source_files:需要包含的源文件
    s.public_header_files:公开的头文件
    //其他
    s.resources: 资源文件
    s.dependency:依赖库,不能依赖未发布的库,可以写多个依赖库
    常见的写法:
    1、dependency:写法
    s.dependency = 'AFNetworking' , 'SDWebImage'
    2、source_files: 写法
    'runtime/'
    'runtime/runtime/
    .{h,m}'
    'runtime//.h'
    '
    '表示匹配所有文件
    '.{h,m}' 表示匹配所有以.h和.m结尾的文件
    '
    *' 表示匹配所有子目录
    3、source: 常见写法
    s.source = { :git => "https://github.com/zhangyqyx/ZYRunTimeCoT.git", :commit => "68defea" }
    s.source = { :git => "https://github.com/zhangyqyx/ZYRunTimeCoT.git", :commit => "68defea", :tag => 1.0.0 }
    s.source = { :git => "https://github.com/zhangyqyx/ZYRunTimeCoT.git", :tag => s.version }

    commit => "68defea" 表示将这个Pod版本与Git仓库中某个commit绑定

    tag => 1.0.0 表示将这个Pod版本与Git仓库中某个版本的comit绑定

    tag => s.version 表示将这个Pod版本与Git仓库中相同版本的comit绑定

    • 4、打上tag
      // 为Git打上tag,相当于我们的版本号
      git tag "0.0.1"
      // 将tag推送到远程仓库
      git push --tags

    如果我们的tag打错了,没有用的时候,需要删除
    首先我们查看tags
    git tags //罗列我们所有的tags
    删除本地tags
    git tag -d + 分支 // git tag -d 0.0.1
    删除远程分支
    git push origin :refs/tags/分支

    • 5、验证.podspec文件
      验证时我会使用 --verbose 显示错误信息
      pod spec lint WYQProgressHUD.podspec --verbose
      在验证时,如果出现警告性问题,我们直接忽略
      pod spec lint --allow-warning


      image.png

      passed validation 表示验证通过

    • 6、发布
      发布时会验证 Pod 的有效性,如果你在手动验证 Pod 时使用了 --use-libraries 或 --allow-warnings 等修饰符,那么发布的时候也应该使用相同的字段修饰,否则出现相同的报错。
      pod trunk push WYQProgressHUD.podspec

    • 7、审核通过后,我们就可以验证使用自己的公开库
      pod search WYQProgressHUD
      如果出现未找到的情况,
      rm ~/Library/Caches/CocoaPods/search_index.json
      pod setup

    相关文章

      网友评论

          本文标题:iOS 创建属于自己的公开库

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