cocoapods的使用
我们可以从官网获取更为完整的信息,也可以从GitHub上了解更多。
安装
打开终端:
sudo gem install cocoapods
cd ~
vim .bash_profile
//配置 .bash_profile
export GEM_HOME=$HOME/.gem
export PATH=$GEM_HOME/bin:$PATH
更新操作也是同样的命令:
sudo gem install cocoapods
使用
cd到xcode项目的根目录下初始化Proflie文件:
pod init
添加所需要的依赖:
target 'MyApp' do
pod 'AFNetworking', '~> 3.0'
pod 'FBSDKCoreKit', '~> 4.9'
end
运行pod install
即可。
pod install vs. pod update
很多人以为,pod install
仅仅在自己第一次创建项目的时候使用,而后续的操作更新都是使用 pod update
。但实际上这种想法并不完全正确。
pod install
当你为项目添加新的pods依赖或者删除已有pods的时候,你应该使用pod install
。也就是说,除了初始化项目时需要pod install
外,当你在以后的开发中操作了Profile文件的时候,你应该使用pod install
。
当第一次运行Podfile文件时,会自动生成一个Podfile.lock文件,Podfile.lock会记录你使用的pods的版本并进行版本track。以后每次运行pod install命令的时候,它都会去按照Podfile.lock文件去下载指定版本的依赖(不会尝试检查是否有新的依赖版本)。对于新增的依赖,由于没有添加到Podfile.lock中,会匹配最新的依赖(如果没有指定新加入的依赖版本的话)然后更新到Podfile.lock中。
pod update
我们使用pod update
的场景,只在我们需要更新依赖到新的版本的时候。比如,我们可以使用pod update [PODNAME]
来指定更新某个依赖。当你使用该命令时,CocoaPods会忽略Podfile.lock中的版本,去将Pod更新到尽肯能新的版本(根据你在Podfile中做的版本限制情况)。如果没有指定更新pods的名字,而是直接运行pod update
,那么cocoaPods会根据Podfile更新每一个依赖到尽可能新的版本。
镜像问题
如果下载速度过慢,可以尝试切换镜像,例如清华大学开源镜像站。cocoapods切换镜像的方法:
cd ~/.cocoapods/repos
pod repo remove master
git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master
最后进入自己的工程,在自己工程的podFile第一行加上:
source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'
环境配置
常用命令
命令 | 描述 |
---|---|
vim podfile | 添加文件 |
pod search AFN | 搜索 |
Podfile.lock | 该文件用于保存已经安装的Pods依赖库的版本 |
pod update –no-repo-update | 更新 |
pod env | 查看已经安装的cocoapods版本。 |
pod outdated | 查看Podfile文件中的依赖库的最新版本。 |
platform :ios,'8.0'
target ‘BSPH’ do
pod 'AFNetworking', '~> 3.1.0'
end
建立远程仓库(2020年4月更新)
首先,需要建立一个远程仓库,你可以选择码云或者其他代码托管平台。这里使用github做演示:
打开终端,选择自己想要的目录
输入命令pod lib create CoRep
,通过pod创建一个项目,如下:
pod lib create CoRep
稍后,会让你配置一些信息,当然后续你还有机会更改:
你要使用哪个平台? iOS
你要使用哪种语言? ObjC
是否要使用示例? YES
使用哪个测试框架? None
是否要UI测试? No
类名前缀是啥? HHY
配置完成后,会自动启动xcode,我们可以看下创建的文件目录:
其中Example就是我们选择YES时创建的示例工程,CoRep就是我们存放仓库代码的位置,里面默认创建有Assets和Classes两个文件夹,我们的代码文件就放在Classes里,里面有一个叫做ReplaceMe.m的文件,提示我们后续替换掉它。图片资源文件则可以放在Assets里。另外还有生成的License证书和REAME文件。注意:CoRep.podspec是比较重要的一个文件,这是我们关联远程仓库的一个配置文件,我们刚才输入的配置,我们后续可以在里面进行部分修改。
下一步,将要上传的文件放到Classes目录下:
添加后,我们可以使用创建的测试项目进行测试。运行pod install
,就可以引入我们之前的文件了。
提交到Github仓库
在测试项目中没有问题的话,下一步就将项目提交到github,然后打上tag:
git tag 0.0.1
git push origin 0.0.1
配置并验证CoRep.podspec
文件
下一步,我们修改CoRep.podspec文件的配置:
#
# Be sure to run `pod lib lint CoRep.podspec' to ensure this is a
# valid spec before submitting.
#
# Any lines starting with a # are optional, but their use is encouraged
# To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html
#
Pod::Spec.new do |s|
s.name = 'CoRep'
s.version = '0.0.1'
s.summary = 'CoRep'
# This description is used to generate tags and improve search results.
# * Think: What does it do? Why did you write it? What is the focus?
# * Try to keep it short, snappy and to the point.
# * Write the description between the DESC delimiters below.
# * Finally, don't worry about the indent, CocoaPods strips it!
s.description = 'CoRep remote'
# 仓库主页地址
s.homepage = 'https://github.com/smileasy/'
# s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { '刘二拐' => 'lxxwork0827@163.com' }
s.source = { :git => 'https://github.com/smileasy/CoRep.git', :tag => "#{s.version}" }
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
s.ios.deployment_target = '8.0'
s.source_files = 'CoRep/Classes/**/*'
# s.resource_bundles = {
# 'CoRep' => ['CoRep/Assets/*.png']
# }
# s.public_header_files = 'Pod/Classes/**/*.h'
# s.frameworks = 'UIKit', 'MapKit'
# s.dependency 'AFNetworking', '~> 2.3'
end
这里的s.version,请跟我们在项目中打的tag保持一致。
下一步,就是要将我们修改的CoRep.podspec
文件上传到官方的Specs Repo上。
第一步,我们要验证我们的配置文件是否通过验证,输入命令:
pod lib lint --allow-warnings
等待返回结果。如果返回的结果是CoRep passed validation.
,则证明验证没有问题。这里我们加了--allow-warnings
,为的是让警告也通过验证,不然过不了验证。
上传到cocoapods
第一步,我们需要查看是否有注册过Cocoapods账号:
pod trunk me
如果报错
You need to register a session first.
,则说明我们需要注册。
按照格式pod trunk register 邮箱地址 '用户名' --description='描述信息'
输入注册命令:
pod trunk register smileasy@foxmail.com 'smileasy' --description='Cocoapods DESCRIPTION'
然后到自己的邮箱验证,再次trunk me
,就可以看到成功的信息了。
下一步,上传我们的CoRep.podspec
:
pod trunk push CoRep.podspec --allow-warnings
到这,我们建立Cocoapods远程仓库就完成了参考博客。