美文网首页程序员iOS学习笔记
使用pod发布闭源framework总结

使用pod发布闭源framework总结

作者: Worthy | 来源:发表于2017-10-24 15:09 被阅读188次

    众所周知,pod已经成为了iOS库管理的事实标准。不论是用到第三方库,还是发布自己的库都不可避免的用到pod。
    pod本身并不提供代码或库的托管,而仅仅是维护一个索引工程。每一条索引其实就是一个被称为podspec的配置文件,这个配置文件一般由库的开发者提交。podspec文件里包含库的基本信息,其中最重要的就是指定了库的存放地址,这些开源库的地址一般都托管在github上。
    当用户使用pod install命令安装一个第三方库时,pod会从索引工程上拉取索引目录,并从目录中搜索对应的工程。找到工程对应的podspec配置文件,最后从指定地址下载第三方库。
    这个流程并不复杂,今天我们就尝试自己开发framework,并以库而非源码的方式上传到pod。

    0x00 创建Test.framework并上传github

    跳过创建git项目,framework工程及编码阶段,现在假设我们已经得到了Test.framework静态库,存放在Test目录下的frameworks文件夹,并上传到github中。
    下面是比较重要的一步,因为pod通过tag识别版本号,所以需要打上tag。

    git tag -a 1.0.0 -m 'release 1.0.0'
    git push origin --tags
    

    0x01 创建podspec

    进入Test文件夹,创建podspec:

    pod spec create Test
    

    本地会创建好一个Test.podspec文件,打开文件可以看到一些设置和详细的提示。略过版本号描述之类,需要注意是一下几点。

    source指定库工程所在git地址:

    s.source       = { :git => "https://github.com/worthyzhang/Test.git", :tag => "#{s.version}" }
    

    source_files指定包含的源文件:

    s.source_files  = "Classes", "Classes/**/*.{h,m}"
    

    如果想以framework而非源码形式提供,需要指定framework所在工程相对目录:

     s.vendored_frameworks = "frameworks/Test.framework"
    

    设置完成后,通过pod spec lint 检查是否有错误:

    pod spec lint Test.podspec
    

    如果要上传到pod的索引工程,有一些可能平时不大注意的点如License,项目描述等都需要我们配置好。

    0x02 pod trunk上传到pod索引工程

    首先,需要用邮箱创建一个账号,需要注意的是pod的用户登录不是通过用户名和密码,而是邮箱和验证邮件,可以理解为现在常用的手机验证码登录:

    pod trunk register worthyzhang@gmail.com 'worthy' --description='worthy's macbook pro' --verbose
    

    之后会收到一封验证邮件,验证后就可以通过pod trunk me 查看用户信息:

    pod spec me
    

    最后,向索引工程推送我们的podspec:

    pod trunk push Test.podspec 
    

    你可能会看到一些错误如License文件没指定,存在警告之类的,这些都是正常的。解决完所有错误后,再来一次,如果收到成功提示,那就说明完成了。

    0x03 验证

    创建test工程,编写pod文件,这些我们都已经驾轻就熟了。在pod install之前,需要先执行:

    pod update
    

    先更新一下本地的索引目录,然后在执行:

    pod install
    

    不出意外,工程里应该已经集成好了我们编写的库。最后,记得把Test工程的修改也push到远程。
    ​​​

    相关文章

      网友评论

        本文标题:使用pod发布闭源framework总结

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