美文网首页iOS开发好文iOS备忘录iOS干货
CocoaPods建立自己的框架-笔记

CocoaPods建立自己的框架-笔记

作者: wangjun | 来源:发表于2016-03-15 14:50 被阅读380次

    前段时间看到了 @猫爪 的一片文章,讲了个人如何上传自己的私有库,供别人使用。按照他的教程,期间碰到了许多问题,这里做个笔记,供像我一样的纯新手使用。

    @猫爪 【最新】上传代码到cocoapod ,自己的框架提供给开发者使用
    @zhiyi 特别感谢这位热心的大神耐心的解答我的小白问题

    1. git上创建一个新的repository

    创建新的repository 创建

    这时你的git上就新建了一个空的工程,下面需要将工程clone到本地。

    done

    2.添加代码

    将库文件与使用Demo,添加到第一步clone下来的空的工程中去。

    目录

    然后用git客户端将代码上传到git

    上传代码

    3.打Tag,首先要cd进入clone下来的工程主目录

    1. 本地tag。
    // 打tag,注意,这里的tag打在本地,还没有push到git的origin
    git tag 0.0.1 -m 'update'
    
    clone目录
    cd进入clone目录
    打Tag
    1. pushorigin这一步狠重要,否则后面会报错
    // 将Tag,Push到origin
    git push origin --tags
    
    将本地tag push 到 origin

    4.podspec文件

    1. 创建。路径还是与第3步一样。在clone下来的主目录下。
    // 创建podspec文件
    pod spec create JWTrace
    
    创建`.podspec`文件
    1. 编辑文件内容
    Pod::Spec.new do |s|
      // 名称
      s.name         = "JWTrace"
      // 版本
      s.version      = "0.0.3"
      // 描述
      s.summary      = "日志打印控制器"
      // 主页
      s.homepage     = "https://github.com/junwangInChina/JWTrace"
      // 证书申明
      #s.license      = "MIT"
      s.license      = { :type => 'MIT', :file => 'LICENSE' }
      // 作者
      s.author       = { "xxx" => "xxx@xxx.com" }
      // 支持版本
      s.platform     = :ios, "8.0"
      // 版本地址
      s.source       = { :git => "https://github.com/junwangInChina/JWTrace.git", :tag => "0.0.3" }
      // 库文件路径(相对于.podspec文件的路径)
      s.source_files  = "JWTraceDemo/JWTrace/**/*.{h,m}"
      // 是否支持arc
      s.requires_arc = true
    end
    

    需要注意的是s.source_files 路径不要搞错。

    1. 校验文件
    // 校验文件
    pod spec lint ./JWTrace.podspec
    

    注意这一步,我在这里卡了很久,因为校验老是不通过,但是又没有错误信息。[!] The spec did not pass validation, due to 2 errors and 1 warning.只有类似这种错。
    这里建议使用帮助命令

    // 查看帮助命令
    pod --help
    
    帮助命令
    // 把校验命令修改为
    pod spec lint ./JWTrace.podspec --verbose
    
    错误详细信息
    上面的错误说找不到分支,这就是第3步里的tag没有pushorigin导致的
    将打好的tag,push到git上去之后,再校验。
    // 再校验
    pod spec lint ./JWTrace.podspec --verbose
    
    校验通过

    注意看最后面


    警告
    1. 提交.podspec文件到git
      可能遇到的错误1
    // 提交到git服务器,无警告时
    pod trunk push ./JWTrace.podspec
    

    如果你是第一次提交,可能会出现You need to register a session first错误

    session错误
    就是要注册session的意思
    参考1
    参考2
    // 第一次push到git时,需要注册session
    pod trunk register xxx@xxx.com 'name' --description='macbook air'
    
    注册session,成功后到邮箱点一下激活链接

    可能遇到的错误2

    // 提交到git服务器
    pod trunk push ./JWTrace.podspec
    
    警告未处理
    提交成功示例
    // 提交到git服务器,忽略警告
    pod trunk push ./JWTrace.podspec --allow-warnings
    
    提交成功

    可能遇到的问题3

    可能遇到的问题3
    网上说是因为pod缓存的问题,要删掉本地的master重新pod setup
    rm -fr ~/.cocoapods/repos/master
    pod setup
    

    我的处理方式是升级cocapods版本

    // 默认升级到最新版本
    gem install cocoapods
    // 再更新本地repo
    pod repo update --verbose
    
    升级cocoapods到最新版本
    update本地repo
    此时cocoapods已经准备好了,再提交
    pod trunk push ./JWCounter.podspec --allow-warnings
    
    升级完成之后,再提交,成功

    可能遇到的问题4

    可能遇到的问题4
    这个问题一般在上一步,校验podspec文件时,就会出现
    因为你的破的文件没有指明是用于什么系统
    // 加上这个就行了
    s.platform     = :ios, '7.0'
    

    可能遇到的问题5

    可能遇到的问题5
    这个问题的出现场景与解决方案与上一个问题基本一样,都是在podspec文件里缺少指明
    // 加上这个
    s.frameworks   =  'UIKit'
    

    可能遇到的问题6

    问题6
    因为你没有更新本地库啊
    方法一:
    终端输入命令pod repo update 更新仓库,在执行search命令。
    
    方法二:
    删除~/Library/Caches/CocoaPods目录下的search_index.json文件
    pod setup成功后会生成~/Library/Caches/CocoaPods/search_index.json文件。
    终端输入rm ~/Library/Caches/CocoaPods/search_index.json
    删除成功后再执行pod setup(会重新生成search_index.json文件的)
    
    1. pod search
      最后就是校验自己的成果了。
    // 利用pod,查询自己提交的库
    pod search JWTrace
    
    查询

    相关文章

      网友评论

        本文标题:CocoaPods建立自己的框架-笔记

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