CocoaPods构建私有库文档(三)

(二)创建公共的 pods

1. 创建 git 远端仓库:同上
2. 本地创建 pod 项目工程文件:同上

3. 本地测试 podspec 文件:同上4.注册 trunk

1)在注册 trunk 之前,我们需要确认当前的 CocoaPods 版本是否足够新。trunk需要 pod 0.33 及以上版本,如果你不满足要求,打开 Terminal 使用 ruby gem 命令更新 pod:

sudo gem install cocoapods2)更新结束后,我们开始注册 trunk:

pod trunk register --verbose

邮箱以及用户名请对号入座。用户名我使用的是 Github 上的用户名。--verbose 参数是为了便于输出注册过程中的调试信息。执行上面的语句后,你的邮箱将会受到一封带有验证链接的邮件,如果没有请去垃圾箱找找,有可能被屏蔽了。点击邮件的链接就完成了 trunk 注册流程。使用下面的命令可以向 trunk 服务器查询自己的注册信息:

pod trunk me
3
) 输出如下信息就表示你注册成功,可以进行下面的流程

zilin_weng@163.com

'weng1250'

page7image7376

5.通过 trunk 推送 podspec 文件:
cd podspec 文件所在目录,执行:pod trunk push testPrivateFile.podspec

6. 更新本地 pod 依赖: pod setup
7
. 执行 pod search 命令,若结果如下,则成功

page8image416

四.更新版本:(一)私有 spec pods

已经制作好了testPrivateFile0.1.0版本,现在对他进行升级工作,这次我添加了更多的模块到testPrivateFile之中,包括工具类,底层ModelUIKit扩展等,这里又尝试了一下subspec功能,给testPrivateFile创建了多个子分支。
具体做法:

1.更改代码库文件:先将源文件添加到Pod/Classes中,然后按照不同的模块对文件目录进行整理,因

为我有四个模块,所以在Pod/Classes下有创建了四个子目录,

2.更改之前的testPrivateFile.podspec,这次增加了subspec特性Pod::Spec.new do |s|

s.names.versions.summarys.description

s.homepage

= "testPrivateFile"= "1.0.0"

= "Just Testing."= <<-DESC

Testing Private Podspec.

* Markdown format.
* Don't worry about the indent, we strip it!DESC

= "https://coding.net/u/ranny_90/p/testPrivateFile"= "www.example.com/screenshots_1",

# s.screenshots"www.example.com/screenshots_2"

s.licenses.authors.source

= 'MIT'
= { "wtlucky" => "wtlucky@foxmail.com" }

= { :git =>"https://git.coding.net/ranny_90/testPrivateFile.git ",

:tag => "1.0.0" }
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'

s.platform = :ios, '7.0's.requires_arc = true

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

end

#s.public_header_files = 'Pod/Classes/**/*.h'

s.subspec 'NetWorkEngine' do |networkEngine|
networkEngine.source_files = 'Pod/Classes/NetworkEngine/**/*'networkEngine.public_header_files = 'Pod/Classes/NetworkEngine/**/*.h'networkEngine.dependency 'AFNetworking', '~> 2.3'

end

s.subspec 'DataModel' do |dataModel|
dataModel.source_files = 'Pod/Classes/DataModel/**/*'dataModel.public_header_files = 'Pod/Classes/DataModel/**/*.h'

end

s.subspec 'CommonTools' do |commonTools|
commonTools.source_files = 'Pod/Classes/CommonTools/**/*'commonTools.public_header_files = 'Pod/Classes/CommonTools/**/*.h'commonTools.dependency 'OpenUDID', '~> 1.0.0'

end

s.subspec 'UIKitAddition' do |ui|
ui.source_files = 'Pod/Classes/UIKitAddition/**/*'ui.public_header_files = 'Pod/Classes/UIKitAddition/**/*.h'ui.resource = "Pod/Assets/MLSUIKitResource.bundle"ui.dependency 'testPrivateFile/CommonTools'

end

s.frameworks = 'UIKit'
#s.dependency 'AFNetworking', '~> 2.3'#s.dependency 'OpenUDID', '~> 1.0.0'

因为我们创建了subspec所以项目整体的依赖dependency,源文件source_files,头文件public_header_files,资源文件resource等都移动到了各自的subspec中,每个subspec之间也可以有相互的依赖关系,比如UIKitAddition就依赖于CommonTools

3.在测试项目里pod update一下
4.将工程 push到远端代码仓库,并打上新的tag->1.0.04.使用pod lib lint验证编辑好的podsepc文件5.再次提交到Spec Repo中了,命令跟之前是一样的

$ pod repo push testPrivateFile testPrivateFile.podspec6.使用pod search查找得到的结果为

$ pod search testPrivateFile(二) 公共 podspec

  1. 更改 pods 代码文件,同上

  2. 提交并 push 代码库至远程代码库,同上

  3. 为远端代码库打上新的 tag,同上

  4. 更改 podspec 文件,同上

  5. 执行 pod trunk push 操作 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值