CoacoaPods的安装与使用,IOS依赖管理工具CocoaPods

作者: 网络编程  发布:2019-09-12
1.CocoaPods简介

趁着IOS开采者的加码,产业界也油不过生了为IOS程序提供依赖管理的工具,它的名字叫作CocoaPods(

图片 1duang


2.CocoaPods的安装

CocoaPods的安装格局相比轻便,Mac下自带ruby,使用ruby的gem命令就可以下载安装:

$ sudo gem install cocoapods$ pod setup

除此以外,ruby的软件源rubygems.org因为运用亚马逊(亚马逊)的云服务,所以被遮挡了,须求立异一下ruby的源,上面包车型客车代码将法定的ruby源替换到本国Tmall的源:

gem sources --remove https://rubygems.org/gem sources -a https://ruby.taobao.org/gem sources -l

再有有个别内需留神,pod setup在实行时,会输出Setting up CocoaPods master repo,不过会等待比较久的时光,那步其实是CocoaPods在将它的音讯下载到~/.cocoapods目录下,要是您等太久,能够试着cd到十三分目录,用du -sh *来查阅下载进程.

title : CoacoaPods的安装与行使
category : IOS

3.利用CocoaPods的镜像索引

具有项指标Podspec文件都托管在. 第二次推行pod setup时,CocoaPods会将那么些Podspec索引文件更新到地面包车型地铁~/.cocoapods/目录下,那么些目录文件极大,有80MB左右,所以率先次立异时非凡慢.三个叫akinliu() 的相爱的人在gitcafe() 和occhina() 上树立了CocoaPods索引库的镜像,因为gitcafe和occhina都以境内服务器,所以在实践索引更新操作时,会快非常多.如下操作能够将CocoaPods设置成使用gitcafe镜像:

pod repo remove masterpod repo add master https://gitcafe.com/akuandev/Specs.gitpod repo update

将以上代码中的https://gitcafe.com/akuandev/Specs.git替换成http://git.oschina.net/akuandev/Specs.git就能够使用occhina上的镜像.


4.使用CocoaPods

运用时要求新建贰个名字为Podfile的公文,以如下格式,将借助的库名字依次列在文书中就能够:(示例:JSONKit和AFNetworking)

platform :iospod 'JSONKit','~> 1.5pre'pod 'AFNetworking','~> 2.5.0'

然后将编辑好的Podfile文件放到项目根目录中,试行如下命令就能够:

cd "你的项目根目录"pod install

明天,全数第三方库都曾经下载实现并且安装好了编写翻译参数和依赖,你只供给牢记如下两点就可以:

  • 使用CocoaPods生成的*.xcworkspace文件来开拓工程,实际不是在此以前的*.xcodeproj文件
  • 每一趟退换了Podfile文件,都亟需再度实践三次pod update命令

CoacoaPods

标签(空格分隔): IOS


5.查找第三方库

要是不知情CocoaPods管理的库中是不是有您想要的库,那么您能够透过pod search一声令下举办寻觅,以下是自己用pod search AFNetworking查找到的兼具可用的库:

-> AFNetworking  A delightful iOS and OS X networking framework. pod 'AFNetworking', '~> 2.5.0' - Homepage: https://github.com/AFNetworking/AFNetworking - Source: https://github.com/AFNetworking/AFNetworking.git - Versions: 2.5.0, 2.4.1, 2.4.0, 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2, 1.0RC1, 0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo] - Sub specs: - AFNetworking/Serialization  - AFNetworking/Security  - AFNetworking/Reachability  - AFNetworking/NSURLConnection  - AFNetworking/NSURLSession  - AFNetworking/UIKit -> AFNetworking+AutoRetry  Auto Retries for AFNetworking requests pod 'AFNetworking+AutoRetry', '~> 0.0.5' - Homepage: https://github.com/shaioz/AFNetworking-AutoRetry - Source: https://github.com/shaioz/AFNetworking-AutoRetry.git - Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo]-> AFNetworking+Ext  AFNetworking的封装, 并提供一个 UIImageView+DYLoading cache in fileSystem+memory pod 'AFNetworking+Ext', '~> 1.1' - Homepage: https://github.com/junhaiyang/AFNetworkingExt - Source: https://github.com/junhaiyang/AFNetworkingExt.git - Versions: 1.1, 1.0, 0.5, 0.4, 0.3 [master repo] - Sub specs: - AFNetworking+Ext/Base  - AFNetworking+Ext/AFCustomRequestOperation  - AFNetworking+Ext/AFDownloadRequestOperation  - AFNetworking+Ext/AFTextResponseSerializer  - AFNetworking+Ext/example  - AFNetworking+Ext/UIKit  - AFNetworking+Ext/UIKit/UIImageView+DYLoading -> AFNetworking+ImageActivityIndicator  AFNetworking+ImageActivityIndicator makes it easy to show an activity indicator while an image view's image is loading using AFNetworking. pod 'AFNetworking+ImageActivityIndicator', '~> 1.0.1' - Homepage: https://github.com/JRG-Developer/AFNetworking-ImageActivityIndicator - Source: https://github.com/JRG-Developer/AFNetworking-ImageActivityIndicator.git - Versions: 1.0.1, 1.0.0 [master repo]-> AFNetworking+SingleBlock  Categories that aggregate the success and failure block in one single solution pod 'AFNetworking+SingleBlock', '~> 0.0.1' - Homepage: https://github.com/acerbetti/AFNetworking-SingleBlock - Source: https://github.com/acerbetti/AFNetworking-SingleBlock.git - Versions: 0.0.1 [master repo]-> AFNetworking+streaming  A very quick extension to AFNetworking that adds stream based parsing pod 'AFNetworking+streaming', '~> 0.6' - Homepage: https://github.com/deanWombourne/AFNetworking-streaming - Source: https://github.com/deanWombourne/AFNetworking-streaming.git - Versions: 0.6, 0.5, 0.4, 0.3, 0.2, 0.1 [master repo] - Sub specs: - AFNetworking+streaming/Core  - AFNetworking+streaming/Json // ...此处省略若干行

@唐巧 <IOS开拓进级>

图片 2

End

1 CocoaPods简介

每一种语言发展到八个阶段,就能够见世相应的重视性管理工科具,例如 Java 语言的 Maven,nodejs 的 npm。随着 iOS 开辟者的加码,产业界也应际而生了为 iOS 程序提供注重管理的工具,它的名字叫做:CocoaPods。 CocoaPods 项目标源码 在 Github 上管住。该项目伊始于 二〇一二 年 8 月 19日,经过多年腾飞,现在已经化为 iOS 开荒事实上的依据管理规范工具。开辟iOS 项目不可制止地要选取第三方开源库,CocoaPods 的面世使得我们能够节省设置和换代第三方开源库的时间。

在一直不动用 CocoaPods 以前,作者须求: 把这一个第三方开源库 的源代码文件复制到项目中,恐怕设置成 git 的 submodule。 对于那几个开源库平常须要依附系统的有个别 framework,作者须要手工业地将这一个framework 分别增添到花色注重中,比方平常状态下,四个互联网库就须要扩充以下 framework: CFNetwork, SystemConfiguration, MobileCoreServices, CoreGraphics, zlib。 对于一些开源库,我还亟需安装-licucore恐怕-fno-objc-arc等编写翻译参数 管理那一个依赖包的换代。 那么些体力活即使简单,但绝不技能含量并且浪费时间。在应用 CocoaPods 之后,作者只须求将运用的第三方开源库放到八个名叫 Podfile 的公文中,然后实施pod install。 CocoaPods 就能够活动将这么些第三方开源库的源码下载下来,况且为自己的工程安装好相应的体系注重和编写翻译参数。

2. CocoaPods的装置和平运动用介绍

安装:

安装格局要命简单 , Mac 下都自带 ruby,使用 ruby 的 gem 命令就可以下载安装:

$ sudo gem install cocoapods
$ pod setup

倘使您的 gem 太老,或者也可能有标题,能够品尝用如下命令晋级 gem:

sudo gem update --system

除此以外,ruby 的软件源[ https://rubygems.org] 因为使用的是亚马逊(Amazon)的云服务,所以被墙了,要求立异一下 ruby 的源,使用如下代码将法定的 ruby 源替换开支国天猫商城的源:

gem sources --remove https://rubygems.org/
gem sources -a http://ruby.taobao.org/
gem sources -l

还会有少数必要注意,pod setup在实行时,会输出Setting up CocoaPods master repo,然则会等待比较久的时间。那步其实是 Cocoapods 在将它的音信下载到 ~/.cocoapods目录下,倘诺你等太久,能够试着 cd 到不行目录,用du -sh *来查阅下载进程。你也足以参谋本文接下去的施用 cocoapods 的镜像索引一节的内容来巩固下载速度。

接纳 CocoaPods 的镜像索引:

全体的类型的 Podspec 文件都托管在https://github.com/CocoaPods/Specs 。第一回推行pod setup时,CocoaPods 会将那个podspec索引文件更新到地头的 ~/.cocoapods/目录下,那个目录文件相当大,有 80M 左右。所以首先次立异时至极慢。

有人在 gitcafe 和 oschina 上树立了 CocoaPods 索引库的镜像,因为 gitcafe 和 oschina 都以境内的服务器,所以在执行索引更新操作时,会快相当多。如下操作能够将 CocoaPods 设置成使用 gitcafe 镜像:

pod repo remove master
pod repo add master https://gitcafe.com/akuandev/Specs.git
pod repo update

将以上代码中的 [https://gitcafe.com/akuandev/Specs.git] 替换成 [http://git.oschina.net/akuandev/Specs.git] 就能够使用 oschina 上的镜像。

2.1 使用CocoaPods

应用时索要新建贰个名称为 Podfile 的文本,以如下格式,将借助的库名字依次列在文书中就可以

platform :ios
pod 'JSONKit',       '~> 1.4'
pod 'Reachability',  '~> 3.0.0'
pod 'ASIHTTPRequest'
pod 'RegexKitLite'

接下来你将编写制定好的 Podfile 文件放到你的项目根目录中,试行如下命令就可以:

cd "your project home"
pod install

于今,你的持有第三方库都早已下载完结并且安装好了编写翻译参数和依据,你只要求牢记如下 2 点就可以: 使用 CocoaPods 生成的 .xcworkspace 文件来开采工程,并非原先的 .xcodeproj 文件。 每一次更改了 Podfile 文件,你需求再一次实践一次pod update命令。 查找第三方库 你若是不明了 cocoaPods 管理的库中,是还是不是有你想要的库,那么您能够因而 pod search 命令进行寻觅,以下是自身用 pod search json 查找到的富有可用的库:

$ pod search json
-> AnyJSON (0.0.1)
   Encode / Decode JSON by any means possible.
   - Homepage: https://github.com/mattt/AnyJSON
   - Source:   https://github.com/mattt/AnyJSON.git
   - Versions: 0.0.1 [master repo]
-> JSONKit (1.5pre)
   A Very High Performance Objective-C JSON Library.
   - Homepage: https://github.com/johnezang/JSONKit
   - Source:   git://github.com/johnezang/JSONKit.git
   - Versions: 1.5pre, 1.4 [master repo]
// ... 以下省略若干行

关于 Podfile.lock

当 你试行pod install之后,除了 Podfile 外,CocoaPods 还或然会变卦二个名称为Podfile.lock的文本,Podfile.lock 应该插手到版本调整里面,不该把那个文件加入到.gitignore中。因为Podfile.lock会锁定当前各重视库的本子,之后假设频仍实行pod install 不会改造版本,要pod update才会改Podfile.lock了。那样多个人搭档的时候,能够堤防第三方库进级时产生我们各自的第三方库版本不雷同。 CocoaPods 的那篇 官方文书档案 也在What is a Podfile.lock一节中牵线了Podfile.lock的成效,并且提出: This file should always be kept under version control.

2.2 不要更新podspec

pod install --no-repo-update
pod update --no-repo-update

3. 简历私有旅馆

3.1 创制代码旅社

将团结写的代码推送到git服务器。假如代码能够开源的话,能够用github来托管。

3.2 给平安的代码打上版本tag,一般以版本号作为tag名

git tag -a ‘1.4.1’ -m ‘version 1.4.1’

将tag推送到git服务器

git push --tags

3.3 创建spec文件

pod spec create https://github.com/GetuiLaboratory/getui-sdk-ios-cocoapods.git

会在当前目录创设.podspec文件,成立的公文是个完全的安插模板,依据字面意思以及注释,大要上都能弄精通。不驾驭的地方能够[参考],github上也会有广大开源代码能够参照。

3.4 验证spec文件有效性

pod spec lint .podspec

3.5 创建spec repository(spec 仓库)

├─Specs  
    ├──getui-sdk-ios-cocoapods/  
    ├── 1.4.1
            └── getui-sdk-ios-cocoapods.podspec

那边的版本号要和代码宾馆里的tag一一对应 [参考]

3.6 增加私有repo到CocoaPods中

pod repo add GetuiLaboratory https://github.com/GetuiLaboratory/Specs.git

3.7 验证私有repo安装精确

$ cd ~/.cocoapods/repos/REPO_NAME 
$ pod repo lint .

背后即便还要往REPO_NAME里增加新包,只需运维上边发号施令:

pod repo push REPO_NAME SPEC_NAME.podspec

如要删除私有repo:

pod repo remove [name]

3.8 加多包到工程的Podfile中如下:

source 'https://github.com/GetuiLaboratory/Specs.git'
source 'https://github.com/CocoaPods/Specs.git'

platform :ios, "7.0"
pod 'Reachability'
pod 'getui-sdk-ios-cocoapods'

3.9 运行

到工程目录下运营

pod update

cocoapods插件:CocoaPods for Xcode

本文由王中王开奖结果发布于网络编程,转载请注明出处:CoacoaPods的安装与使用,IOS依赖管理工具CocoaPods

关键词:

上一篇:没有了
下一篇:没有了