美文网首页IOS知识积累iOSGXiOS
CocoaPods创建一个公开库

CocoaPods创建一个公开库

作者: KnowWhy | 来源:发表于2017-05-11 00:31 被阅读60次

    1. 把待公开的项目上传gitHub远程仓库。

    • 此处项目代码提交git服务器过程略,详情参考文章Git Shell命令

    注:代码提交git成功后,打好我们的发布版本tag值,如:0.0.1

    2. 安装CocoaPods。

    3. 创建和编写.podspec文件。

    1. 创建.podspec文件命令如下:
      $ pod spec create Name
      

    注:Name为创建的.podspec文件名字,一般取与工程文件相同的名字。

    1. .podspec编写

      创建的Name.podspec文件打开可看到一个默认的模版,我们可在默认模版基础上修改,也可参考gitHub上一些优秀的第三方库的.podspec文件,如:AFNetworking库的AFNetworking.podspec文件,直接复制内容然后按照自己的项目修改。

      如本人公开的一个基于FMDB封装的数据库升级库DatabaseManagerDatabaseManager.podspec文件内容如下:

      Pod::Spec.new do |s|
        s.name         = 'DatabaseManager'  # 项目工程名称,即公开的可检索的pod 名称
        s.version      = '0.0.2'            # 版本号,对应相应的tag值
        s.license      = 'MIT'              # 指定开源协议
        s.summary      = 'upgrate database table columns'   # 简短的描述语
        s.homepage     = 'https://github.com/yangyongzheng/DatabaseManager' # 主页地址
        s.social_media_url   = 'http://twitter.com/yangyongzheng'
        # 作者名和邮箱
        s.author             = { 'yangyongzheng' => 'youngyongzheng@qq.com' }
        # 公开源码git仓库地址,指定发布的tag版本,设置有子目录
        s.source       = { :git => 'https://github.com/yangyongzheng/DatabaseManager.git', :tag => s.version, :submodules => true }
        s.requires_arc = true     # 设置为ARC
        s.platform     = :ios, '7.0'  # 指定支持的最低iOS版本
      
        # 指定公开的头文件以及文件路径(路径以.podsepc文件所在文件夹开始算)
        s.public_header_files = 'DatabaseManager/DatabaseManager/DatabaseHeader.h'
        s.source_files = 'DatabaseManager/DatabaseManager/DatabaseHeader.h'
      
        # 设置子目录名称以及想公开的头文件(.h)和文件(如.h/.m)路径(路径以.podsepc文件所在文件夹开始算)
        s.subspec 'Standard' do |ss|
          ss.source_files = 'DatabaseManager/DatabaseManager'
          ss.public_header_files = 'DatabaseManager/DatabaseManager/Database*{Macro,Manager,Protocol}.h'
        end
      
        s.dependency 'FMDB' #指定依赖的其他第三方库,可指定具体版本号
      
      end
      

      项目DatabaseManager目录结构树如下:

    DatabaseManager项目目录结构树.png

    指定的源码路径以.podsepc文件所在文件夹开始推算,具体路径以具体项目库源码路径为准,此仅供参考。

    4. podspec文件校验

    校验分为本地校验和远程仓库校验,校验之前要先设置好版本相对应的tag值

    1. 本地校验命令如下:
    # 本地校验命令
    $ pod lib lint
    # 拼接了其他参数的本地校验命令
    $ pod lib lint --allow-warnings --use-libraries --verbose
    

    注:根据校验错误提示,自己按需求在$ pod lib lint后面拼接--allow-warnings--use-libraries—verbose等选项。

    • 具体使用可运行$ pod lib lint --help查看。
    校验.png
    • 校验成功如下图所示:
    本地校验成功.png

    DatabaseManager passed validation.表示通过校验。其中有一个警告- WARN | url: There was a problem validating the URL http://twitter.com/yangyongzheng.,因为校验时我允许有警告所以可校验通过(pod lib lint命令默认是不允许有警告的)。

    1. 远程仓库源码校验
    # 远程仓库校验
    $ pod spec lint
    # 允许有警告、使用静态库,打印校验日志命令
    $ pod spec lint --allow-warnings --use-libraries --verbose
    
    • 校验拼接选项根本地校验一样,按自己需求拼接在$ pod spec lint后面。
    • 校验成功时如下图所示:
    远程校验成功.png

    5. 提交到官方检索库

    上面第4步.podspec文件校验成功后,就可提交到官方检索库了。

    • 提交之前先注册提交账号,命令如下:
    $ pod trunk register email@example.com 'Your Name' --description='Personal Laptop'
    

    注册成功后,注册的邮箱会收到一份邮件,进入邮箱点击下邮件中的验证地址验证下就注册成功了,接下来就可以提交了...

    • 注册成功后提交的命令如下:
    # If `PATH` is not provided, defaults to the current directory.
    $ pod trunk push [PATH]
    # 拼接选项和第4步校验拼接的选项要一致
    $ pod trunk push --allow-warnings --use-libraries --verbose
    

    注意:$ pod trunk push后面拼接的选项要和第4步$ pod spec lint校验拼接的选项一致。

    6. 开始使用

    上叙第5步提交成功后,就可以开始在项目中使用我们公开的库了。

    • 首先我们需要更新本地索引库:pod setup
    • setup完成后,执行pod search DatabaseManager

    • 如果搜索不到结果,删除search_index.json文件

      1. pod setup成功后会生成~/Library/Caches/CocoaPods/search_index.json文件。
      2. 终端输入rm ~/Library/Caches/CocoaPods/search_index.json删除检索文件。
      3. 删除成功后再执行pod search DatabaseManager就可以找到了。
    • 在项目的Podfile文件中加上:pod 'DatabaseManager',运行pod install --verbose --no-repo-update,至此大功告成。

    相关文章

      网友评论

        本文标题:CocoaPods创建一个公开库

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