CocoaPods构建私有库文档(二)

(一) 创建私有 pod:
此处需创建两个 git 远端仓库,一个用来存放私有的 spec repo(即存放 pod

podspec 文件的仓库),另一个用来存放工程源代码的仓库1. 创建 git 远端仓库:我用的 coding

page2image2160
  1. 1)  项目名称自定义

  2. 2)  项目描述自填,可忽略

  3. 3)  私有/公开均可,但是此处为创建私有 spec repo,所以最好选择私有

  4. 4)  对于 README.md、添加许可证、.gitignore 文件的添加根据第二步要执行的操

    作分为两种情况:
    a. 若需 pod 的项目还未在 git 版本控制中时,采用 pod lib create

    testPrivateProject 创建目录时,会自动生成这三个文件,因此此处无需添加,

    否则会发生冲突。
    b. 若项目已经在 git 版本控制中,并且目录中无上述文件,则可添加相应的选

    项,这样进行 git pull 时会将文件添加至本地目录中

  5. 5)  添加成员:没研究过

6)创建项目:获取 git 仓库地址备用,https://coding.net/u/ranny_90/p/testPrivateFile

2.本地创建 pod 项目工程文件:此时分为两种情况1)项目还未在 git 版本控制中时:

此时可以用 cocopods 工具创建项目目录,此时的目录会自带 cocopods 目录组织风格,并自动在 git 版本控制之下(此时还未关联远端仓库)

第一步:首先 cd 至 要创建项目的文件夹中第二步:pod lib create testPrivateProject第三步:之后他会问你五个问题:

注:参数为项目目录名称

a).选择语言 swift/objc
b).
是否需要一个例子工程
c).选择一个测试框架;
d).是否基于 View 测试;
e).类的前缀;五个问题的具体介绍可以去看官方文档,我这里选择的是a).objc

b).yes;
c).Specta
d).yes
;
e).TPP
问完这
4 个问题他会自动执行 pod install 命令创建项目并生成项目所需 的

完整依赖。
    执行完成之后,会在文件夹中生成所需的文件如下:
  1. a)  testPrivateFile:Classs 文件夹中要存放放在 pod 上的代码, Assets 文件

    夹中存放相应的资源文件如图片、xib 文件等

  2. b)  Exameple:demo 工程,其中存在示例项目以及 Podfile(已填好)等,之

    后的步骤中会对器进行 pod install,使其成为完整的 pods 项目示例。

  3. c)  LICENSE:项目的证书文件

  4. d)  README.md:说明文件

  5. e)  testPrivateFile.podspec:此文件即为 pods 配置所需的 podspec 文件,具

    体内容稍后介绍。

第四步:向上步中生成的 testPrivateFile 文件夹中添加库文件至 Classes(删除其中的 Replace.m 文件,此处添加的库文件必须能够编译通过,否则后续验证时会不成功),添加资源文件至 Assets

page3image10336

第五步:在终端中 cd Exameple 文件夹中,直接执行 pod install 命令,若成功,打开工程,会看到上步中的库文件以及资源文件已经在 Development Pods 工程目录下。

第六步:将改动 push 至远端仓库:git add .

git commit –m “initail”
git remote add origin https://coding.net/u/ranny_90/p/testPrivateFilegit push origin master

第七步:给上述提交版本打上 taggit tag 0.1.0
git push
-tags

第八步:cd testPrivateFile.podspec 所在目录并对其进行编辑
执行
vim testPrivateFile.podspec
注:它是一个 Ruby 的文件,把编辑器的格式改成 Ruby 就能看到语法高亮,

文件中已经存在相应的内容,需对现有内容进行修改,#名称,此处名称需与podspec文件名

page4image5112 page4image5272

Pod::Spec.new do |s|

page4image5960

相同

s.name = "testPrivateFile"

page4image7096

s.version = "0.1.0"

page4image7784

s.summary = "测试testPrivateFile. "

pod search命令就是根据namesummary内容作为搜索文本的

简短介绍,否则会报警,、

#详细介绍最好长于

page4image9608

s.description = <<-DESC

page4image10296

测试私有pods repo的创建testPrivateFile!

page4image10944

DESC

s.homepage = 'https://coding.net/u/ranny_90/p/testPrivateFile'#声明库的主页,这里要填写可以访问到的地址,不然验证不通过

s.license = 'MIT' #开源协议,根据项目目录中的LICESE文件来定

s.author = { 'caoqr' => 'caoqr@ifeng.com' } #作者信息

#项目地址,这里不支持ssh的地址,验证不通过,只支持HTTPHTTPS,最好使用HTTPS,对于

很多第三方库而言,在发布的时候都会打上一个tag,如版本0.1.0就会打上一个名为v0.1.0tag,此处的tag即为代码库的版本号,代码库的版本号最好能与s.version相同,否则会产生警告。对于还未打上任何tag的代码库,我们可以选择一个最新的commit来作为该库tag,如s.source = { :git =>'https://github.com/mobileresearch/weibo_ios_sdk_sso-oauth.git', :commit =>'68defea78942ecc782ffde8f8ffa747872af226d'}

#版本号#简短介绍,下面是详细介绍,

page4image15952

s.source = { :git =>

page4image16720

'https://git.coding.net/ranny_90/testPrivateFile.git', :tag => "0.1.0" }

# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>' #多媒体介绍地址

#支持的平台及版本#是否使用ARC,如果指定具体文件,则

具体的问题使用ARC

s.source_files = 'testPrivateFile/Classes/**/*' #代码源文件地址,**/*表示Classes目录及其子目录下所有文件,如果有多个目录下则用逗号分开,如果需要在项目中分组显示,这里也要做相应的设置如:s.source_files = 'Pod/Classes/*.{h,m}',此处目录相对于podspec文件所在目录而言

page5image3008

s.platform = :ios, '7.0'

page5image3736

s.requires_arc = true

page5image4584

s.resource_bundles = {

page5image5272

'PodTestLibrary' => ['testPrivateFile/Assets/*.png']

}
源文件, 所以必须要将xib放入资源文件中

果有多个需要填写多个s.dependencyend

#资源文件地址, pod,xib不能当成

#公开头文件地址#所需的framework,多个用逗号隔开

#依赖关系,该项目所依赖的其他库,如

page5image8040

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

page5image8768

# s.frameworks = 'UIKit'

page5image9496

# s.dependency 'AFNetworking', '~> 2.3'

第九步:验证 podspec 文件:pod lib lint,成功时:

  第十步:提交远程仓库所有修改

2)项目已经在 git 版本控制中并且已有关联 git 远端库:第一步:为远程仓库打上 tag:同上
第二步:添加
podspec 文件:

a)cd 至对应项目根目录
b)执行 pod spec create testPrivateFile

注:参数为创建的 podspec 文件名。第三步:编辑 testPrivateFile.podspec 文件,同上。

注:此处的 s.source_files s.resource_bundles 为实际的工程中库文件与资源文件所在的目录(相对 podspec 文件而言)

第四步:验证 podspec 文件,同上第五步:提交远程仓库所有修改

3.本地测试 podspec 文件

page5image14728

我们可以创建一个新的项目,在这个项目的 Podfile 文件中直接指定刚才创建编辑好的 podspec 文件,看是否可用。 在 Podfile 中我们可以这样编辑,有两种方式:

platform :ios, '7.0'

pod 'PodTestLibrary', :path =>'/Users/ranny_90/Documents/code/cocoaPodsTest/testPrivatePRJ/ testPrivateFile'' # 指定路径

或:

pod 'PodTestLibrary', :podspec =>'/Users/ranny_90/Documents/code/cocoaPodsTest/testPrivatePRJ/testPrivateFile/testPrivateFile.podspec' # 指定 podspec 文件

然后执行 pod install 命令安装依赖,打开项目工程,可以看到库文件都被加载到Pods 子项目中了

4.创建私有 spec repo 的远端仓库:
1)在 github/coding/csdn 中创建远端仓库(私有/公开均可),获取地址备用:

https://coding.net/u/ranny_90/p/testPrivatePrjRepo2) 在终端中(任意文件夹下)执行命令:

pod repo add
注:第一个参数为创建的私有 pods 在本地的目录名称(自定义)

第二个参数为第一步中创建的远端仓库的地址成功的话进入本地~/.cocopods/ repos/文件夹下会看到 testPrivate文件夹。

5.向私有 spec repo 的远端仓库提交 podspec 文件
Spec Repo 提交 podspec 需要完成两点一个是 podspec 必须通过验证无误,在一个就

是删掉无用的注释(这个不是必须的,为了规范还是删掉吧)。cd podspec 文件所在目录
pod repo push
注:前面是本地 Repo 名字 后面是 podspec 名字

6.测试
至此,我们的这个组件库就已经制作添加完成了,使用
pod search 命令就可以查到我们

自己的库了

7. 需要注意的就是如果项目中有其他同事使用的话,你还要给他这个 Git 仓库的权限,并在他的本地执行
pod repo add

testPrivatePrj

https://coding.net/u/ranny_90/p/testPrivatePrjRepo

testPrivate

testPrivateFile.podspec

page6image13232

testPrivatePrj

https://coding.net/u/ranny_90/p/testPrivatePrjRepo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值