目录
特别感谢:https://www.jianshu.com/p/1764b67d4527
一 cocoapods安装与使用
参考链接 https://www.jianshu.com/p/7138ab490d14
1 替换ruby源
ruby -v 查看ruby版本
gem sources -l
gem sources --remove https://rubygems.org/ 移除掉原有的源
gem source -a https://gems.ruby-china.com
gem sources -l
2 更新升级 Gem 版本
(gem不更新可能导致安装pod失败)
sudo gem update --system
输入开机密码
gem -v 查看gem版本
3. 安装CocoaPods
sudo gem install cocoapods
pod --version
sudo gem install -n /usr/local/bin cocoapods --pre 安装稳定的最新的release beta版本
4. 更新Podspec索引文件
pod setup 更新索引库
5. cocoapods的使用
1> cd进入项目目录
2> touch Podfile 新建Podfile的文件
3> 编辑 Podfile文件
方式一
直接打开该文件然后输入
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '13.0'
target 'AboutCollectionView' do
pod 'AFNetworking', '~> 3.1.0'
end
其中第一行https://github.com/CocoaPods/Specs.git为SDK来源
第二行13.0为iOS的版本号
第三行中AboutCollectionView为Xcode工程的名字
第四行AFNetworking', '~> 3.1.0为要导入SDK的名字和约束版本号
方式二(推荐)
1:还是在项目目录下,输入vim Podfile,然后 按键盘的“i”键 编辑,当下面的"Podsfile" 0L, 0C将变成-- INSERT --,表示可以编辑了,然后输入上面的文本内容。
2:编辑完成后想要退出保存
先按左上角的esc键,再按shift +:键,当:符号出现在最下面的时候,再输入wq,点击回车,就保存并退出去了。
4> 执行pod install
(第一次花的时间比较多,慢慢等着吧)
二 创建本地私有库
1、在项目根目录的上一个文件夹中创建一个文件夹lib,然后通过终端cd到该目录下;
2、终端命名pod lib create Tools(Tools是你创建私有库的名字,可修改),创建时候可能会出现这种错误
解决方法就是在终端输入下面两条命令:
sudo gem install colored2
sudo gem update --system
然后重复2、3步即可会出现下面界面!
依次选择iOS、objc、Yes、None、TZ,意思一看就知道了,可以变化;这样就会自动创建了私有库工程,并自动打开
3、打开的工程就类似下面,其中上面的BYViewController等类可以给我们用来调试该私有库的,真正的私有库是放在下面pods--->Development-->Tools-->Classes里面;可以把私有库包含的类拉到该文件中,这样本地私有库就创建成功了。
其中podfile里面的pod 'Tools', :path => '../'中path意思就是指向该本地库的路径,该路径文件夹中内容就是私有库的内容,可以通过cd到该podfile根目录,然后通过pod install可以把该文件夹下面内容全部拉到项目中来,如果该私有库依赖第三方库,那么只需要将第三方库的pod到该私有库中即可,例如将pod 'AFNetworking', "~> 3.0" 写入到该私有库的podfile中
4、回到主项目的podfile中,添加
pod 'Tools', :path => '../lib/Tools'
这句话意思就是pod Tools私有库,路径是后面的,../意思是返回到上一个文件夹,然后lib子文件夹,然后Tools文件夹
5、cd到主项目的根目录,然后pod install ,这样就可以把私有库pod到主项目中,至此本地私有库创建结束
三 创建远程私有库
仅仅是本地私有库是没啥用的,我们需要远程的私有库才行,下面是创建远程私有库方法。
我们公司是自己搭建的gitLab,下面是创建私有库步骤:
1、登录进去
点击New Project;会进入创建新项目界面
输入项目名字,描述,选择private模式,然后点击下面的create project
会进入到这个界面
2、打开终端,cd 到lib/Tools中,然后输入命令
git remote add originhttp://172.16.1.102/zhaojingjing/Tool.git
后面路径是该项目的路径,可以选择是ssh或者http模式,两个模式路径不一样,(提示出错信息:fatal: remote origin already exists.
解决办法如下:
1、先输入$ git remote rm origin
2、再输入$ git remote add origin[git@github.com:djqiang/gitdemo.git](mailto:git@github.com:djqiang/gitdemo.git)就不会报错了!
参考链接:http://blog.csdn.net/dengjianqiang2011/article/details/9260435)
然后输入
git push -u origin master
这个时候就把私有库项目传到gitLab上,但是私有库上的内容没传上去的,
然后输入
git add .(主要add后面加个空格然后再加点)
git commit -m '初始化'
这样就把私有库内容传到远程仓库中了
另外需要修改私有库的.podspec文件,
s.version 版本号
s.summary 描述
s.description 描述
s.homepage 库的根路径,例如http://172.16.1.102/zhaojingjing
s.source 库的真正路径
s.source_files 库的内容路径
另外我们需要给该库打个版本号,cd 库的根路径:../lib/Tools
查询版本号:git tag
设置版本号:git tag 0.1.0
上传版本号:git push --tags
这样就把远程库打上了标签号,注意的是设置的版本号要和.podspec文件里面的版本号一致
四 创建远程私有Spec Repository
下一步就是提交.podspec文件到私有仓库,便于用户pod。
1、创建并设置一个私有的Spec Repository
在gitlab上创建一个空的仓库,命名为Specs,这个仓库是用来存放我们自己所有的私有库的spec文件,就如同官方的https://github.com/CocoaPods/Specs是用来存放所有官方的specs文件一样。
在终端执行命令 pod repo add Specs http://xxx.git
注意:上面的命令的解释如下:
pod repo add REPO_NAME SOURCE_URL
其中的 REPO_NAME 是我们要添加的私有repo的名称(这里我们待会填的是:Specs),后面是仓库的 gitlab 地址。这里做的其实是创建的工作,也就是在~/.cocoapods/repo目录下添加了一个以你的私有repo为名的文件夹,但是并没有添加spec文件。
至此,我们已经在本地得到我们自己的私有仓库 Specs ,这是一个空的仓库。
假如原来私有仓库Specs地址变了,只需要,
pod repo add Specs 新地址
添加一个新的源地址
五 提交.podspec远程私有 Spec Repository
添加 刚才创建的 Tool.podspec 到你的 Spec Repository。
pod repo push Specs Tool.podspec
如果有警告,会导致无法通过,需要添加--allow-warnings
如果使用了第三方库,或者c函数相关的,需要添加--use-libraries
pod repo push Specs Tool.podspec --use-libraries --allow-warnings
试一下可否能搜到改私有库
pod search Tool
有时候会搜不到
解决:rm ~/Library/Caches/CocoaPods/search_index.json 然后重新搜索
然后将框架写入到项目的podfile里面,注意:
由于这是我们的私有库,当pod install的话,cocoapods会默认从gitHub上搜索,所以我们要在项目的podfile上面写上我们私有库的源地址,也就是我们之前创建的存放我们自己所有的私有库的spec文件的项目,例如:http://172.16.1.102/zhaojingjing/Specs.git
设置源的方法是在podfile上面写上
source 'http://172.16.1.102/zhaojingjing/Specs.git'
source 'https://github.com/CocoaPods/Specs.git'
即可!
六 更新私有库
再就是更新库了,假如库有更新,需要更新到最新版本,添加版本号!操作如下:
1、cd 到本地库根目录
2、git add .(主要add后面加个空格然后再加点)
git commit -m '初始化'
这样就把私有库内容传到远程仓库中了
另外我们需要给该库打个版本号,cd 库的根路径:../lib/Tools
查询版本号:git tag
设置版本号:git tag 0.1.0
上传版本号:git push --tags
然后修改私有库的.podspec文件里面的s.version,必要时候也可以修改s.summary 描述
然后将刚才修改的.podspec文件传到私有库中
pod repo push Specs Tool.podspec --use-libraries --allow-warnings
其中Specs是私有源库的名称,Tool.podspec是刚才修改的.podspec文件名称
传完后试一下可否能搜到改私有库
pod search Tool
搜到,并且有两个版本号就说明成功了!并在在电脑~/.cocoapods/repos里面的对应私有库里面就有两个版本号了!
如果私有库需要依赖第三方库,那么只需要在.podspec文件中添加
s.dependency 'Masonry', '~> 1.0.2'
s.dependency 'MBProgressHUD', '~> 1.0.0'
即可!
修改库.podspec文件时候再次上传容易导致- ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code. You can use--verbosefor more information.
这个错误,解决方法就是要保证podspec文件填写正确,并且在 执行pod repo push Specs BMCCommon.podspec的时候添加--allow-warnings,例如pod repo push Specs BMCCommon.podspec --allow-warnings