(一) 创建私有 pod:
此处需创建两个 git 远端仓库,一个用来存放私有的 spec repo(即存放 pod 的
podspec 文件的仓库),另一个用来存放工程源代码的仓库1. 创建 git 远端仓库:我用的 coding
-
1) 项目名称自定义
-
2) 项目描述自填,可忽略
-
3) 私有/公开均可,但是此处为创建私有 spec repo,所以最好选择私有
-
4) 对于 README.md、添加许可证、.gitignore 文件的添加根据第二步要执行的操
作分为两种情况:
a. 若需 pod 的项目还未在 git 版本控制中时,采用 pod lib createtestPrivateProject 创建目录时,会自动生成这三个文件,因此此处无需添加,
否则会发生冲突。
b. 若项目已经在 git 版本控制中,并且目录中无上述文件,则可添加相应的选项,这样进行 git pull 时会将文件添加至本地目录中
-
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 命令创建项目并生成项目所需 的
完整依赖。
执行完成之后,会在文件夹中生成所需的文件如下:
-
a) testPrivateFile:Classs 文件夹中要存放放在 pod 上的代码, Assets 文件
夹中存放相应的资源文件如图片、xib 文件等
-
b) Exameple:demo 工程,其中存在示例项目以及 Podfile(已填好)等,之
后的步骤中会对器进行 pod install,使其成为完整的 pods 项目示例。
-
c) LICENSE:项目的证书文件
-
d) README.md:说明文件
-
e) testPrivateFile.podspec:此文件即为 pods 配置所需的 podspec 文件,具
体内容稍后介绍。
第四步:向上步中生成的 testPrivateFile 文件夹中添加库文件至 Classes(删除其中的 Replace.m 文件,此处添加的库文件必须能够编译通过,否则后续验证时会不成功),添加资源文件至 Assets。
第五步:在终端中 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文件名
Pod::Spec.new do |s|
相同
s.name = "testPrivateFile"
s.version = "0.1.0"
s.summary = "测试testPrivateFile. "
pod search命令就是根据name与summary内容作为搜索文本的
简短介绍,否则会报警,、
#详细介绍最好长于
s.description = <<-DESC
测试私有pods repo的创建testPrivateFile!
DESC
s.homepage = 'https://coding.net/u/ranny_90/p/testPrivateFile'#声明库的主页,这里要填写可以访问到的地址,不然验证不通过
s.license = 'MIT' #开源协议,根据项目目录中的LICESE文件来定
s.author = { 'caoqr' => 'caoqr@ifeng.com' } #作者信息
#项目地址,这里不支持ssh的地址,验证不通过,只支持HTTP和HTTPS,最好使用HTTPS,对于
很多第三方库而言,在发布的时候都会打上一个tag,如版本0.1.0就会打上一个名为v0.1.0的tag,此处的tag即为代码库的版本号,代码库的版本号最好能与s.version相同,否则会产生警告。对于还未打上任何tag的代码库,我们可以选择一个最新的commit来作为该库tag,如s.source = { :git =>'https://github.com/mobileresearch/weibo_ios_sdk_sso-oauth.git', :commit =>'68defea78942ecc782ffde8f8ffa747872af226d'}
#版本号#简短介绍,下面是详细介绍,
s.source = { :git =>
'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文件所在目录而言
s.platform = :ios, '7.0'
s.requires_arc = true
s.resource_bundles = {
'PodTestLibrary' => ['testPrivateFile/Assets/*.png']
}
源文件, 所以必须要将xib放入资源文件中
果有多个需要填写多个s.dependencyend
#资源文件地址, 在pod中,xib不能当成
#公开头文件地址#所需的framework,多个用逗号隔开
#依赖关系,该项目所依赖的其他库,如
# s.public_header_files = 'Pod/Classes/**/*.h'
# s.frameworks = 'UIKit'
# 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 文件
我们可以创建一个新的项目,在这个项目的 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 |
testPrivatePrj |
https://coding.net/u/ranny_90/p/testPrivatePrjRepo |