iOS中cocoapods的使用总结

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做演示:

image

打开终端,选择自己想要的目录
输入命令pod lib create CoRep ,通过pod创建一个项目,如下:

pod lib create CoRep

image
稍后,会让你配置一些信息,当然后续你还有机会更改:

image

你要使用哪个平台? iOS
你要使用哪种语言? ObjC
是否要使用示例? YES
使用哪个测试框架? None
是否要UI测试? No
类名前缀是啥? HHY

配置完成后,会自动启动xcode,我们可以看下创建的文件目录:

image

image

image

其中Example就是我们选择YES时创建的示例工程,CoRep就是我们存放仓库代码的位置,里面默认创建有Assets和Classes两个文件夹,我们的代码文件就放在Classes里,里面有一个叫做ReplaceMe.m的文件,提示我们后续替换掉它。图片资源文件则可以放在Assets里。另外还有生成的License证书和REAME文件。注意:CoRep.podspec是比较重要的一个文件,这是我们关联远程仓库的一个配置文件,我们刚才输入的配置,我们后续可以在里面进行部分修改。

下一步,将要上传的文件放到Classes目录下:

image

image

添加后,我们可以使用创建的测试项目进行测试。运行pod install,就可以引入我们之前的文件了。

image

提交到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

image

如果报错You need to register a session first.,则说明我们需要注册。

按照格式pod trunk register 邮箱地址 '用户名' --description='描述信息'输入注册命令:

pod trunk register smileasy@foxmail.com 'smileasy' --description='Cocoapods DESCRIPTION'

然后到自己的邮箱验证,再次trunk me,就可以看到成功的信息了。

image

下一步,上传我们的CoRep.podspec

pod trunk push CoRep.podspec --allow-warnings

image

到这,我们建立Cocoapods远程仓库就完成了参考博客


   转载规则


《iOS中cocoapods的使用总结》 刘星星 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
通讯录的基本使用 通讯录的基本使用
获取系统的通讯录参考博客参考博客2// // ViewController.m // 通讯录Demo // // Created by szphsw4 on 2018/1/4. // Copyright © 2018年 PH. Al
2018-01-09
下一篇 
AVFoundation系统学习(一) AVFoundation系统学习(一)
## ```AVFoundation```系统学习 最近零零散散的看了点关于AVFoundation的资料,觉得很不系统,决定系统的学习一下。官方文档,请点击这里查看。 通过下面的图,我们可以知道AVFoundation的整体结构:
2017-09-14
  目录