首页 cocoaPods私有库的创建
文章
取消

cocoaPods私有库的创建

cocoaPods私有库的创建

第一步:建立私有的spec仓库

1
2
3
4
$ pod repo add REPO_NAME SOURCE_URL

REPO_NAME: specs的名称
SOURCE_URL: git地址

这里会在 ~/.cocoapods/repos目录下创建你的私有索引库,master是官方的

官方文档

第二步:在一个文件夹里创建pod项目

首先进入到需要创建项目的文件夹下面

创建项目:

1
$ pod lib create [项目名]

接下来按照提示设置一些东西过后就可以创建好pod项目

2.1 在Classes目录下添加你的代码

第三步: 提交项目到git仓库(这里不是spec的地址,是新的git地址,相当于新的项目)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ git add .

$ git commit -s -m "初始化项目库"

$ git remote add origin [项目git地址]          
#添加远端仓库 项目git地址,不是前面的spec库

$ git push origin master

$ git tag -m "提交项目" "0.1.0" 
#打上标签,这个很重要,关系着你的版本控制,podfile文件中的版本号依赖于此,每次提交不同的版本要打上不同的tag

$ git push --tags     
#推送tag到远端仓库

第四步:创建并提交podspec文件到私有Spec Repo仓库

这一步的作用就是让自己的私有库索引能够找到对应的pod库

  • 配置podspec文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#
# Any lines starting with a # are optional, but their use is encouraged
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
#

Pod::Spec.new do |s|
  s.name             = 'THCacheMoudle'
  s.version          = '0.1.1'
  s.summary          = 'A short description of THCacheMoudle.'

# This description is used to generate tags and improve search results.
#   * Think: What does it do? Why did you write it? What is the focus?
#   * Try to keep it short, snappy and to the point.
#   * Write the description between the DESC delimiters below.
#   * Finally, don't worry about the indent, CocoaPods strips it!

  s.description      = <<-DESC
TODO: Add long description of the pod here.
                       DESC

  s.homepage         = 'http://www.tuhuanjk.com' #这个地址一定要可以访问,不然不能验证通过
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'heshuai' => 'heshuai@sctuhuan.com' }
  s.source           = { :git => 'http://192.168.8.254:4521/THCacheMoudle.git', :tag => s.version.to_s }
  # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'

  s.ios.deployment_target = '8.0'

  s.source_files = 'THCacheMoudle/Classes/**/*'
  
  # s.resource_bundles = {
  #   'THCacheMoudle' => ['THCacheMoudle/Assets/*.png']
  # }

  # s.public_header_files = 'Pod/Classes/**/*.h'
  # s.frameworks = 'UIKit', 'MapKit'
  # s.dependency 'AFNetworking', '~> 2.3'
    s.dependency 'HandyJSON'
    s.dependency 'PINCache'
    s.dependency 'RNCryptor'
end
  • 验证一下这个podspec文件是否可用
1
2
$ pod lib lint
# 有一个警告都会验证失败
  • 向Spec提交podspec文件, Spec就是存的各个pod的podspec索引
1
2
3
4
#进入pod项目的根目录执行
$ pod repo push [Repo名] [podspec 文件名字]

#~/.cocoapods/repos/**下面查看你提交的podspec文件

第五步: 使用pod

1
2
3
#私有Spec,在podfile中填写私有podspec地址,然后 就是普通的pod用法了
source [Spec的git地址] 
$ pod [项目名], '~> [tag版本号]'

错误处理


pod lib lint不通过

这个如果是找不到库的头文件,可以使用--use-libraries来验证,再上传的时候同样带上此参数

本文由作者按照 CC BY 4.0 进行授权