CocoaPods创建私有库步骤
CocoaPods创建私有库步骤
我就不介绍了,直接上手。 DuangDuangDuang
一、代码仓库的连接
1. 首先需要在私有服务器上创建两个库,仓库1用来存取代码文件(例如:AFNetworking/SDWebImage),仓库2用来存cocoapods工具的搜索配置文件(例如:AFNetworking.podspec)。
2. 拿到仓库1的地址之后, 需要在本地链接仓库1,实现方法,打开Xcode,点击Xcode,选择Preferences。
3. 继续点击Accounts,点击添加按钮,选择Add Repository。
4.填写远程连接信息。
5.点击Xcode,选择Source Control,选择刚才创建的链接,下载到自己想要放的位子,这样远程库已经下载到了本地。
二、创建代码
1. 首先在桌面创建一个临时项目文件(例如:CodingTemp), 打开终端,cd到临时文件夹,然后执行:
pod lib create 项目名
2. 之后他会问你四个问题,1.是否需要一个例子工程;2.选择一个测试框架;3.是否基于View测试;4.类的前缀;5.名称;6.邮箱等。多个问题的具体介绍可以去看官方文档,我这里选择的是1.yes;2.Specta/Expecta;3.yes;4.TT….。 问完这4个问题他会自动执行pod install命令创建项目并生成依赖。这时一个临时项目已经出现。在这个项目中,你可以测试你封装的工具类是否好用。
lichaodeMacBook-Air:未命名文件夹 5 tanjiaxiang$ pod lib create XiangMuMing
Cloning https://github.com/CocoaPods/pod-template.git
into XiangMuMing
.
Configuring XiangMuMing template.
! Before you can create a new library we need to setup your git credentials.
security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
What is your name?
tanjiaxiang
! Setting your name in git to tanjiaxiang
git config user.name “tanjiaxiang”
What is your email?
! Setting your email in git to [email protected]
git config user.email “[email protected]”
What language do you want to use?? [ Swift / ObjC ]
objc
Would you like to include a demo application with your library? [ Yes / No ]
yes
Which testing frameworks will you use? [ Specta / Kiwi / None ]
specta
Would you like to do view based testing? [ Yes / No ]
yes
What is your class prefix?
TT
3. 此刻你需要把临时项目装入本地仓库1文件夹内,这时会出现一个问题,你之前连接到仓库1的文件夹内会有一个.get文件,而你新建的临时项目中也会出现一个.get文件。
我的处理办法是直接删除临时项目中的.get文件,并将临时项目的所有子文件全部拷贝装入本地仓库1的文件夹。
4.打开临时项目,将你的封装代码手动加载到Classes文件内
这个地方我已经封装好,就不用测试了,直接CD到本地仓库1的Example文件夹执行pod update命令。
5. 接下来就是配置.podspec文件,再本地仓库1的文件夹内找到.podspec文件,打开编辑,此刻一般只需要修改s.summary,s.homepage,s.source,s.source_files,(summary是对封装代码的简要概括,homepage可以使服务器远程仓库地址,source这里我这是的和homepage一样,source_files是相对于项目的路径,就是你要分享的部分在项目的相对位置,其他的参数可以参考官网)
6. 编写玩完成之后保存设置,执行:pod lib lint,验证.podspec文件是否设置成功。
pod lib lint
如果失败,可以根据提示修改,成功则会出现这样的提示:
三、将本地文件上传到远程仓库1
1. 执行以下命令(这个要注意tag要一致):
$ git add .
$ git commit -s -m “Initial Commit of Library”
添加远端仓库
$ git remote add origin 仓库1远程地址
提交到远端仓库
$ git push origin master
因为podspec文件中获取Git版本控制的项目还需要tag号,所以我们要打上一个tag,
$ git tag -m “first release” “0.1.0”
推送tag到远端仓库
$ git push –tags
2. 以上操作完成后,一定要到远程看看,你想推送文件是不是已经传送成功。不成功需要再次上传,改变tag。
四、podspec仓库实现
1. 创建私有Spec Repo
先来说第一步,什么是Spec Repo?它是所有的Pods的一个索引,就是一个容器,所有公开的Pods都在这个里面,它实际是一个Git仓库remote端在GitHub上,但是当你使用了Cocoapods后它会被clone到本地的~/.cocoapods/repos目录下,可以进入到这个目录看到master文件夹就是这个官方的Spec Repo了。这个master目录的结构是这个样子的
在Terminal中执行如下命令:
$ pod repo add 仓库2名称 仓库远程链接
2. 成功之后,在电脑点击前往文件夹:~/.cocoapods/repos,就能看见远程仓库2的本地文件。(例如:上图的TTSpec),此刻只需要CD到本地仓库1,执行命令(如果之前本地仓库2已经存在,你需要CD到仓库2,执行git clean –f后再执行下面代码):
$ pod repo push 仓库2名称 配置文件.podspec
如果出现下图提示,则证明上传成功,你可以到本地仓库2和远程仓库2查看文件。
五、测试
1. 在终端执行pod search 项目名,如果没有搜索到,可以执行下面命令:
$ rm ~/Library/Caches/CocoaPods/search_index.json
搜索成功后界面如图:
2. 新建Xcode测试项目,CD到项目文件夹,执行:$ touch Podfile,在项目文件夹中找到Podfile文件,1️以下面格式编辑并保存(这里source是远程仓库2地址):
3.在终端执行安装:
$ pod install –verbose –no-repo-update