iOS开发: 配置CocoaPods远程私有仓库

作者: 伯wen | 来源:发表于2017-04-10 11:09 被阅读1685次

    本篇中使用的远程仓库是<a href="https://coding.net">码市</a>
    注意: 默认读者会使用Git管理代码, 以及上传至远程Git仓库

    如果有错误的地方请留言, 我会修改

    第一步, 添加远程私有索引仓库

    • 注册登录后的界面


      码市
    • 点击添加项目


      远程私有索引库
    • 点击创建项目后跳转界面


      创建仓库后直接跳转的界面
    • 点击左侧 代码 选项卡, 进入私有的远程cocoaPods仓库界面


      远程cocoaPods私有索引仓库界面
    • 打开终端, 输入指定 pod repo


      当前的远程索引仓库
      • 可以看到cocoaPods目前链接了一个远程索引仓库, URL是在github上的远程索引仓库, Path是通过pod setup下载到本地的索引仓库
    • 可以输入指令 pod repo --help 查看当前pod repo 拥有的命令


      命令
    • 输入 pod repo add 仓库名 仓库SSH(HTTPS)地址 来添加一个远程索引仓库


      添加一个远程索引仓库
    • 仓库SSH(HTTPS)地址位置在码市上的下图位置


      仓库SSH(HTTPS)地址位置
    • 再次输入 pod repo 命令


      成功添加LTPodspecs远程私有索引库
      • LTPodspecs就是我刚才添加的远程私有索引库

    第二步, 配置一个私有的代码仓库

    • 打开码市, 新添加项目, 这个项目是被CocoaPods管理的私有代码仓库, 用来存储需要被管理的代码, 和上面创建的索引库用处不同


    • 我在桌面上创建了一个新的文件夹, 用来配置私有代码库


      新建文件夹
    • 使用终端cd到当前文件夹


      cd
    • 输入指令创建一个git本地仓库 pod lib create 仓库名


      git仓库
      • 本仓库用来测试和上传 私有代码
    • 创建的git本地仓库


      git本地仓库
    • 打开测试工程, 找到<a>ReplaceMe.m</a>文件并删除


      打开测试工程
      删除文件
    • 找到需要CocoaPods私有仓库管理的源码(我这里的是Category文件夹), 并拖拽代码文件到Classes文件夹中, 选择<a>Copy Items if needed</a>


      选择Copy Items if needed
      拖拽代码到Classes文件夹中
    • 可以通过<a>Show In Finder</a>查看拖入文件夹的所在真实位置


      Show In Finder
      24.png
    • 因为测试工程创建完之后引用的LTCategorys文件中并没有刚拖入的Category文件夹中文件, 所以需要重新pod install一下

      • cd到测试工程文件夹, 并执行命令 pod install



        cd到Example文件夹, 并执行pod install
    • 此时拖入工程的Category中文件就可以正常使用了, 此时使用的是本地私有库

    • 打开测试工程, 在下面的位置可以进行podspec文件的配置


      podspec文件位置
    • 简单解释


      简单解释
      配置完成
      • s.homepage需要设置刚创建的私有代码仓库的地址, 不是私有索引库的地址
      • s.source 需要设置的是私有代码仓库的源地址(选择使用HTTPS地址)
    • 将刚创建的本地仓库上传到这个项目中, 并打上tag, 这个tag必须和上面podspec文件中的版本一致(我上面的版本是0.1.0, 所以我打的tag就是0.1.0)


      上传代码到远程私有仓库
      打上的tag
    • 打开终端, cd到LTCategorys文件夹(使用pod lib screate 命令创建的本地代码仓库), 分别使用 pod lib lint 和 pod spec lint 命令进行podspec的本地校验和远程校验


      cd
      校验
    • 以上步骤完成后, 需要将LTCategorys.podspec文件上传到本地的私有索引库, 接着会自动上传至远程私有库

      • 终端使用pod repo文件查看现有索引库
      • cd 至 LTCategorys 文件夹下, 接着执行 pod repo push 索引库名 podspec文件名


        查看现有索引库
        上传到本地索引库, 自动上传至远程索引库
    • 远程索引库中的索引文件


      远程索引库中的索引文件
    • 在桌面上创建一个测试工程


      新建测试工程
    • cd到Test文件夹, 并使用终端调用pod init命令创建一个Podfile文件


      Podfile文件
    • 调用pod repo命令, 查看当前索引库的URL地址


      查看URL地址
    • 打开Test中的Podfile文件, 如下填写


      介绍
      填写完毕
    • cd 到Test文件夹下, 使用终端执行pod install 命令, 此时两个第三方代码就成功安装到项目中


      使用CocoaPods安装第三方代码
    • 打开Test工程, 可以看到安装的第三方库, 一个是AFNetworking(公共库) 和 LTCategorys(远程私有库)


      Test工程

    最后

    • 创建的LTPodspecs私有库是用来存放CocoaPods索引文件(podspec类型)的
    • 创建的LTCategorys私有库是用来存放远程私有代码的(同github分享开源代码)
    • 使用LTPodspecs来存放LTCategorys的podspec文件, 就是远程私有库的核心
    • 最后使用CocoaPods就可以安装私有库中的代码了, 私有库中代码只有自己和自己指定的人使用 (其他人使用, 必须添加你的CocoPods私有库, 并且要在你的码市账号中设置SSH的公钥才行)
    • 以后的私有远程代码也可以使用这个LTPodspecs索引库来管理

    下一篇: <a href="http://www.jianshu.com/p/c0b7cc68509b">iOS开发: CocoaPods远程私有仓库的维护升级</a>

    相关文章

      网友评论

      • acd810ba87df:category复数是去y加ies哈哈哈哈哈哈
      • 翀鹰精灵:你好 我在使用pod lib create 仓库名 这个命令的时候出错了报了一下错误 粘贴主要的错误码 大神帮忙看下什么原因:
        from /Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.8/lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb:8:in `<class:XCBuildConfiguration>'
        from /Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.8/lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb:4:in `<module:Object>'
        from /Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.8/lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb:3:in `<class:Project>'
        from /Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.8/lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb:2:in `<module:Xcodeproj>'
        from /Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.8/lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb:1:in `<top (required)>'
        from /Library/Ruby/Site/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /Library/Ruby/Site/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.8/lib/xcodeproj/project/object/build_configuration.rb:194:in `<top (required)>'
        from /Library/Ruby/Site/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /Library/Ruby/Site/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.8/lib/xcodeproj/project/object.rb:521:in `<top (required)>'
        from /Library/Ruby/Site/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /Library/Ruby/Site/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.8/lib/xcodeproj/project.rb:5:in `<top (required)>'
        from /Library/Ruby/Site/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
      • 我是C:代码私有仓库 可以 SSH 吗
      • 我是C:source 必须是https 的吗
      • handsome丶亮:第二步, 配置一个私有的代码仓库
        这个仓库可以用本地SVN么?
      • ningsf:太感谢了,解决了我的问题:smile:
        伯wen:有用就好 :smile:

      本文标题:iOS开发: 配置CocoaPods远程私有仓库

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