美文网首页iOS
制作 CocoaPods 依赖库

制作 CocoaPods 依赖库

作者: 浮浅丶Superficial | 来源:发表于2018-11-26 15:43 被阅读13次

    1、创建自己的 github 仓库

    CocoaPods 是托管在 github 上的,所有的 Pods 也都是托管在 github 上,因此我们首先需要创建一个属于自己的 github 仓库,并 clone 仓库到本地


    创建远程仓库
    clone 仓库到本地

    2、创建 .podspec 文件

    cd 到本地仓库下(README.md 目录),执行

    pod spec create MHKeyValueStore
    

    目录下会生成 MHKeyValueStore. podspec 的文件

    3、添加上传到 Pods 所需要的文件,并创建 Demo 工程最终目录文件如下:

    示例

    4、一顿骚操作后上传修改到GitHub,并添加 tag

    tag.png

    5、准备工作

    5.1 注册上传 CocoaPods 的账号

    pod trunk register yan_yan.vip@foxmail.com 'MrAiden' 
    

    邮箱为 github 邮箱,用户名最好为 github 用户名,执行完,点击邮箱连接,完成注册。
    查看信息, 执行

    pod trunk me
    
    me

    5.2 配置 .podspec 文件

    打开 MHKeyValueStore. podspec 文件,大致如下:

    Pod::Spec.new do |s|
      s.name         = "MHKeyValueStore"  // 名称
      s.version      = "0.0.1"    // 版本号,与 tag 一致
      s.summary      = "A short description of MHKeyValueStore."  // 摘要
      s.description  = "A description of MHKeyValueStore."   // 描述
      s.homepage     = "https://github.com/MrAiden/MHKeyValueStore"  // 首页
      s.license      = { :type => "MIT", :file => "LICENSE" }  // 许可证
      s.author       = { "Mortar" => "yan_yan.vip@foxmail.com" }    // 作者
      s.platform     = :ios, "8.0"  // 平台信息
      s.source       = { :git => "https://github.com/MrAiden/MHKeyValueStoreDemo.git", :tag => "#{s.version}" }  // git源文件
      s.source_files = "MHKeyValueStore/**/*.{h,m}"  // 需要上传的文件
      /**
      "*" 表示匹配所有文件
      "*.{h,m}" 表示匹配所有以.h和.m结尾的文件
      "**" 表示匹配所有子目录
      */
      s.requires_arc = true // ARC
      s.dependency 'FMDB', '~> 2.7.5'  // 关联的第三方
    end
    

    5.3 验证 .podspec 文件

    pod spec lint MHKeyValueStore.podspec
    

    有错改错。如有警告:

    [!] The spec did not pass validation, due to 2 warnings (but you can use `--allow-warnings` to ignore them).
    

    可忽略警告验证:

    pod lib lint --allow-warnings
    

    输出如下结果,则通过验证:

    MHKeyValueStore passed validation.
    

    5.4 上传

    pod trunk push
    

    pod trunk push MHKeyValueStore.podspec
    

    或忽略警告上传

    pod trunk push --allow-warnings
    

    输出如下结果,则上传成功

    --------------------------------------------------------------------------------
     🎉  Congrats
    
     🚀  MHKeyValueStore (1.0.0) successfully published
     📅  November 25th, 20:41
     🌎  https://cocoapods.org/pods/MHKeyValueStore
     👍  Tell your friends!
    --------------------------------------------------------------------------------
    

    6、可能错误信息

    6.1 [!] The master repo is not a git repo.

    // 终端输入以下命令
    rm-rf~/.cocoapods
    pod setup
    

    6.2 [!] podRoutes1 did not pass validation, due to 1 warning (but you can use --allow-warnings to ignore it)

    // 忽略警告
    pod lib lint --allow-warnings
    

    6.3 [!] The podspec does not validate.

    原因很多,通过追加--verbose参数查看具体原因
    // 在命令行后面添加 --verbose
    pod trunk push MHKeyValueStore.podspec --verbose
    // 如果处在错误,则会详细注明,例如
    warning: Could not find remote branch 0.0.1 to clone.
    fatal: Remote branch 0.0.1 not found in upstream origin
    
    eg:
    // ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.
    确认source_files的匹配是否成功,可以用*.*模糊匹配
    

    6.4 remote: Permission to HH-Medic/HHJumpRoutes.git denied to 515783034.fatal: unable to access 'https://github.com/MrAiden/MHKeyValueStoreDemo.git/': The requested URL returned error: 403

    //没有访问权限,修改下git/config
    url = https://github.com/MrAiden/MHKeyValueStoreDemo.git
    url = https://MrAiden@github.com/MrAiden/MHKeyValueStoreDemo.gitt // 添加账户即可,第一次会让你输入账号的密码
    

    6.5 Unable to find a pod with name matching (or pod search时提示查找不到)

    // 更新一下本地缓存的框架
    pod repo remove master
    

    6.6 Unable to find a specification for 'MHKeyValueStore'

    // 可能原因:podspec文件配置错误, 注意查看以下问题等
    1. 单引号的问题;
    2. 源文件路径;
    

    6.7 Could not find remote branch 1.0.1 to clone.

    // 找不到对应的tag, tag不一致
    1. 是否push 了tag; 
    2. podspec中是否修改了对应的tag;  
    git push --tags
    s.version = "1.1.5"
    

    相关文章

      网友评论

        本文标题:制作 CocoaPods 依赖库

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