热门搜索 :
考研考公
您的当前位置:首页正文

cocoapods私库

来源:东饰资讯网

摘要

cocoapods个人或公司私库搭建简单总结

准备工作

一、创建pods工程

pod lib create xxxx // 例如:pod lib create LXPatch
Paste_Image.png

工程如下:

Paste_Image.png

二、在服务器上创建一个lxpatch的私库

clone下来,再把里面的.git文件夹拖到上一步创建的工程同级目录下,覆盖掉以前的.git,这样pod私库就可以与服务器上的同步处理了。

三、修改自己要对外公开的类,然后修改对应的.podspect文件里的内容

如:

Paste_Image.png

上面,classes为自己的私库存放类的地方,如自己写的一些框架.h.m文件,如果有其它资料,可在同级目录下创建文件夹去存即,默认有一个Assert文件来,上图中自己删除了。

修改podspec文件

Pod::Spec.new do |spec|
  spec.name             = 'LXPatch' #私库的名字
  spec.version          = '0.1.0' #版本号,也就是tag标签
  spec.license          = { :type => 'BSD' }
  spec.homepage         = 
  spec.authors          = { 'Tony Million' =>  }
  spec.summary          = 'A short description of LXPatch.' #简单描述这个库的作用
  spec.source           = { :git =>  :tag => '0.1.0' } # 这里是你的私库在服务器的位置与tag标签号
  spec.source_files     = 'LXPatch/Classes/**/*' #classes下所有文件
  spec.framework        = 'JavaScriptCore' #你用到的库
  spec.requires_arc     = true #是否为arc
  s.dependency 'JSPatchPlatform' #依赖的第三方
end

四、检验本地podspec是否合规

pod lib lint xxxx // pod lib lint LXJSPatch.podspec

这里可能用到的选项

  • --use-libraries // 利用静态库
  • --allow-warnings //忽略警告
  • --verbose //打印日志

五、上传本地库到远程私库中

git add .
git commit -m"初始化"
git push

// 然后打标签,这里的标签要和podspec中的tag值一致
git tag 0.1.0
git push --tags //推送到服务器

六 为.cocoapods/repos目录下添加自己的描述文件私库

默认下,cocoapods是在master文件夹中找描述文件然后去下载对应的第三方,而我们弄的私库是没有添加到github的spec中,因此是找不到,于是我们要把自己的描述库添加到这里来

  • 在服务器中创建一个仓库,我们可以取名前缀+spec,我这里为为lxspec
  • 执行pod repo add lxspec remote_url,lxspec与服务器名一致,后面跟上库的地址
    上面执行完后,在cocoapods/repos下就有了master与lxspec两文件夹了,其中lxspec是从上面自己创建的地址clone下来的,目前里面还没有podspec描述文件。
pod repo add lxspec remote_url

七 验证podsepc文件,并把它添加到.cocoapods/repos/lxspect目录下,同时推送到对应的远程描述文件库地址中

pod repo push lxspec [LXPatch.podspec] # lxspec是指.cocoapods/repos下你自己的描述文件仓库的名字,[LXPatch.podspec]是指xxx.podspec文件地址。意思就是该描述文件添加到这个lxspec中,同时并推送到服务器上

八 使用注意点,podfile要加上描述库地址

source 
source  #使用自己的描述库,必须加上github上的那个。因为有了自己的库后默认不会去CocoaPods/Specs.git查找
target 'LXJSPatch_Example' do
    #pod 'LXJSPatch', :path => '../' # 使用本地仓库的
    pod 'LXJSPatch' # 使用自己服务器上的私库
  target 'LXJSPatch_Tests' do
    inherit! :search_paths
    pod 'JSPatchPlatform'
  ends
end

命令笔记

pod lib create xxxx # 自动创建个人库

pod repo add spec_repo_name  remote_url # spec_repo_name 为spec repo 的名字, remote_url为存放库的描述文件的仓库地址
// 这句话会把remote_url的库clone到.cocoapods/repos目录下。

pod repo lint spec_repo_name #spec_repo_name 指描述文件仓库的名字(与上面clone下来的名字一致) 
// 该命令首先根据本地的git私库地址来验证远程的.spec中的是否合规

pod repo push reponame [NAME.podspec] # reponame是指描述文件仓库的名字,[NAME.podspec]是指xxx.podspec文件地址。意思就是该描述文件添加到这个repo
//会把.spec拷贝到.cocopods/repos相对应的文件夹中,最后再把.cocoapods/repos对应的个人spec仓库push到服务器上 
Top