美文网首页
使用Cocoapods创建私有库Pods(基本篇)

使用Cocoapods创建私有库Pods(基本篇)

作者: tridonlee | 来源:发表于2018-01-12 14:09 被阅读47次

前言

今天这篇文章记录自己使用CocoaPods工具模拟创建自己的私有库(这里使用的是github),其实网上有很多教程,这里只是记录自己的使用过程,下面将尽量详细记录步骤,希望对大家有用,觉得有用的小伙伴请高抬贵手点个赞哦!

模拟创建自己的私有库

步骤一 创建一个组件git仓库

我在GitHub服务器创建了一个名叫TLComponent的仓库。创建好了之后,复制git仓库地址,第一步就算完成了。

步骤二 添加私有库到CocoaPods的repo

这一步就是将我们刚刚创建的组件库地址和CocoaPods关联起来,我们在pod install的时候,就会从我们私有仓库下载。下面是添加的命令:

pod repo add REPO_NAME SOURCE_URL

REPO_NAME:就是自定义的私有库的名字

SOURCE_URL:就是我们在git上创建的私有库的git地址

我这里就是:

pod repo add TLComponent https://github.com/leechuanjun/TLComponent.git

添加完成后,可以查看CocoaPods的repo多出来一个TLComponent,查看repo的方法如下:

ls ~/.cocoapods/repos

查看的结果就是:

TLComponent master

TLComponent这个就是我们新添加的我们自己有的,master就是原有的公共repo。

步骤三 为将要组件化的项目制作*.podspec文件

这里作为测试,我简单的创建了一个testA的项目,项目的目录如下:

项目名:TLTestCom

项目下面有一个文件夹:TLComA,里面随便创建了一个类,这个类

就是我们即将作为组件加入私有库的两个文件。

接下来在git服务器上为该项目创建一个git仓库,我的是仓库地址是:

https://github.com/leechuanjun/TLTestCom.git

ps:testA和组件名字一致

接着就是要制作组件的podspec文件了,在项目的更目录下创建一个testA.podspec文件,接着编辑podspec文件,文件内容如下

Pod::Spec.new do |spec|

    #项目名称

    spec.name        = 'TLTestCom'

    #版本号

    spec.version      = '0.1.0'

    #开源协议,记得创建一个LICENSE文件,内容可以百度

    spec.license      = {:type =>"MIT",:file => "LICENSE"}

    #对开源项目的描述

    spec.summary      = 'testA is a good component'

    #开源项目的首页

    spec.homepage    = 'https://github.com/leechuanjun/TLTestCom'

    #作者信息

    spec.author      = {'TridonLee' => 'leechuanjun@163.com'}

    #项目的源和版本号

    spec.source      = { :git => 'https://github.com/leechuanjun/TLTestCom.git', :tag => '0.1.0' }

    #源文件,这个就是供第三方使用的源文件

    spec.source_files = "TLComA/*.{h,m}"

    #适用于ios7及以上版本

    spec.platform    = :ios, '8.0'

    #使用的是ARC

    spec.requires_arc = true

    #依赖AFNetworking,如果有什么第三方依赖这样添加

    #spec.dependency 'AFNetworking'

end

编辑好了就可以保存。关于podspec文件可以百度,还有一些配置信息我这里不需要就没有列出来。这里需要注意的是,也要在该目录下创建一个LICENSE文件,文件的内容请自行百度,这里不添加这个文件,后面push的时候会报警告,而导致push失败。

步骤四 发版,验证podspec文件,push podspec文件

创建好了podspec文件,假设我们的组件也开发好了,编译ok,接着就是把项目提交push到git服务器上去,然后发个版,也就是打个tag。我的步骤如下:

//添加所有新加的文件

$ git add .

//提交新添加的文件到本地git

$ git commit -m'add file'

//将本地更新push到远程git服务器

$ git push origin master

//给本地仓库打个tag

$ git tag -m'add tag''0.1.0'

//将tag推送到远程服务器

$ git push --tags

接着就是验证我们刚才的podspec文件,验证指令是:

$ pod lib lint

如果没有错误和警告我们就可以推送到服务器了,推送使用的命令如下:

$ pod repo push REPO_NAME  SPEC_NAME.podspec

它也会先验证,然后再推送。我这里推送testA命令是:

$ pod repo push TLComponent TLTestCom.podspec

如果没有错误,但是有警告,我们就将警告解决,也可以加--allow-warnings来提交

$ pod repo push TLComponent TLTestCom.podspec --allow-warnings

相关操作如下所示:

4.最后就可以在pod search 搜索testA了,到这里我们私有库也就成功。

$ pod search TLTestCom

-> TLTestCom (0.1.0)

   testA is a good component

   pod 'TLTestCom', '~> 0.1.0'

   - Homepage: https://github.com/leechuanjun/TLTestCom

   - Source:  https://github.com/leechuanjun/TLTestCom.git

   - Versions: 0.1.0 [TLComponent repo]

操作如下:

使用私有库

使用方式就是在Podfile中,添加我们自己私有源地址,然后pod我们的组件名字就可以了,例如:

# Uncomment the next line to define a global platform for your project

#官方Cocoapods的源

source 'https://github.com/CocoaPods/Specs.git'

#本地私有源

source 'https://github.com/leechuanjun/TLComponent.git'

# platform :ios, '8.0'

target 'TLFirstProject' do

  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks

  # use_frameworks!

  # Pods for TLFirstProject

  pod 'AFNetworking'

  pod 'TLTestCom'

  target 'TLFirstProjectTests' do

    inherit! :search_paths

    # Pods for testing

  end

  target 'TLFirstProjectUITests' do

    inherit! :search_paths

    # Pods for testing

  end

end

最后pod install就可以啦。

写在最后

最后提醒大家,记得添加.gitignore文件,过滤提交的git的内容,不然把一些不必要的文件都提交到服务器上。认真想起来其实建立私有库很简单,就是那么几步。创建一些文件,配置一下就可以了。后面一篇,我会介绍一下使用一些脚本,来简化过程,减少一些编辑,设置过程,有些必要过程还是必须的。如果觉得此文中有哪些不明白的地方,可以留言,或者发私信,共同探讨。如果觉得文中有不对的地方也请大家慷慨指出,以便我改正。最后谢谢大家的阅读,喜欢的话就请点个赞吧,谢谢。

相关文章

网友评论

      本文标题:使用Cocoapods创建私有库Pods(基本篇)

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