美文网首页深入学习iOSToolsiOS学习
听说你想发布开源框架到CocoaPods,快看这里

听说你想发布开源框架到CocoaPods,快看这里

作者: 敲代码的树懒 | 来源:发表于2017-03-03 10:33 被阅读566次
    1,在开发过程中,经常会使用到第三框架,我们通过一个pod install命令,很方便的就将第三方框架加到我们自己的项目中,如果我们也想将自己写的组件或库开源出去,让别人也可以通过pod install命令安装自己的框架该怎么做呢?下面,我就教大家一步一步的将自己的pods发布到CocoaPods 中。如果你现在对CocoaPods还不太了解,可以搜索一下cocoapods环境的配置和使用。
    下面我会通过一个名为SKFTestview的项目来讲解一下整个过程。
    在github建立一个新的repository,在Add alicense 选择Apache License 2.0或者MIT协议。创建ok后,clone到本地。
    2,在这个clone的文件夹里面创建一个空的工程
    图片.png
    3,添加一个名为SKFTestview的文件夹,注意不要直接右键点击New Group,这样只是在工程里面创建了一个分组,但是工程所在文件里面是没有这个文件的,可以这样添加分组
    创建分组.gif
    4,我在SKFTestview创建了一个自定义view和一个bundle文件,并添加了一张图片,(自己拍的,不会涉及版权)。
    图片.png
    5,把项目push到github,并打上标签tag
    图片.png
    6,输入 pod spec create+工程名 创建podspec文件
    图片.png
    7,打开podspec文件,按下图修改,也可以下载参考本demo的podspec文件修改。
    介绍几个参数
    s.framework声明了所依赖的核心库,我这里只用到了UIKit,所以是这样的:
       s.framework  = "UIKit"
    
    如果你的项目中依赖多个库,可以使用
       s.frameworks = "SomeFramework", "AnotherFramework"
    
    当然,我们开发的库中也可能还依赖第三方库,例如JSONKit,那么,就可以做如下声明:
      s.dependency "JSONKit", "~> 1.4"
    
    图片.png 图片.png 图片.png
    注意:这里添加SKFtestview是相对于文件夹中podspec的位置来说的,/**/的意思是匹配SKFTestview下所有目录的文件,我以前也发布过代码到cocoapods,但是这个概念是最近才懂。
    7,podspec文件设置好以后,可以在终端输入pod spec lint验证一下podspec设置的是否正确,如果正确,就可以提交了会出现下图,出现error,也不用着急,根据error提示的信息,修改就可以了
    图片.png
    8,接下来,就可以像cocoapods发布自己的pods了,我使用的是trunk的方式,在cocoapods使用了trunk之后,CocoaPods 需要0.33以上版本,用 pod --version查看版本,如果版本低,需要更新。
    首先注册trunk
       pod trunk register xxxxxxxxx@qq.com 'xxxxx'  --verbose
    
    邮箱以及用户名请对号入座。用户名我使用的是Github上的用户名。--verbose参数是为了便于输出注册过程中的调试信息。执行上面的语句后,你的邮箱将会受到一封带有验证链接的邮件,如果没有请去垃圾箱找找,有可能被屏蔽了。点击邮件的链接就完成了trunk注册流程。使用下面的命令可以向trunk服务器查询自己的注册信息。
    pod trunk me
    
    输出如下信息就表示你注册成功
    图片.png
    9,上面的工作都完成了,就可以使用pod trunk push 把你的代码推倒cocoapods上面了,
    图片.png
    此过程取决于网速,需耐心等待。
    10,最后,提交成功。
    图片.png
    11,使用pod search SKFTestview,可能会出现下面的情况,搜索不到自己提交的库
    这是因为本地的cocoapods索引文件里面没有,进入~/Library/Caches/CocoaPods/,删除json文件,重新 可以删除这个索引文件, 重新生成就好了
    图片.png
    12,END
    图片.png
    注:我的cocoapods的版本是1.2.0,如果是因为cocoapods的版本问题,提交不成功的,可以先升级到最新的版本
    Demo地址 https://github.com/wubianxiaoxian/SKFTestview

    相关文章

      网友评论

      • nenhall: -> pods (0.0.1)
        - ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.
        - ERROR | [iOS] file patterns: The `resources` pattern did not match any file.

        s.source_files = 'pods', 'podSpec/pods/*.{h,m}'
        s.resource = "podSpec/pods/images.bundle"

        podSpec是和pods.podspec同等级目录上,为什么还报上面两个错:

      本文标题:听说你想发布开源框架到CocoaPods,快看这里

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