前言
每种语言发展到一个阶段,就会出现相应的依赖管理工具, 或者是中央代码仓库。比如
- Java: maven,Ivy
- Ruby: gems
- Python: pip, easy_install
- Nodejs: npm
随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,这个工具叫:CocoaPods。
CocoaPods简介
CocoaPods是一个负责管理iOS项目中第三方开源代码的工具。CocoaPods项目的源码在Github上管理。该项目开始于2011年8月12日,经过一年多的发展,现在已经超过1000次提交,并且持续保持活跃更新。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。
拿我之前开发的粉笔网iPhone客户端为例,其使用了14个第三方开源库。在没有使用CocoaPods以前,我需要:
- 把这些第三方开源库的相关文件复制到项目中,或者设置成git的submodule,然后这些开源库通常需要依赖系统的一些framework,我需要手工地将这些framework一一增加到项目依赖中,比如ASI网络库就需要增加以下framework: CFNetwork, SystemConfiguration, MobileCoreServices, CoreGraphics and zlib。
- 对于RegexKitLite这个正则表达式库,我还需要设置-licucore的编译参数
- 手工管理这些依赖包的更新。
这些体力活虽然简单,但毫无技术含量并且浪费时间。在使用CocoaPods之后,我只需要将用到的第三方开源库放到一个名为Podfile的文件中,然后执行pod install。CocoaPods就会自动将这些第三方开源库的源码下载下来,并且为我的工程设置好相应的系统依赖和编译参数。
CocoaPods的安装和使用介绍
安装
安装方式异常简单, Mac下都自带ruby,使用ruby的gem命令即可下载安装:
- $ gem install cocoapods
- $ pod setup
使用
使用时需要新建一个名为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 install命令。
查找第三方库
你如果不知道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]
- -> MTJSONDictionary (0.0.4)
- An NSDictionary category for when you're working with it converting to/from JSON. DEPRECATED, use MTJSONUtils
- instead.
- - Homepage: https://github.com/mysterioustrousers/MTJSONDictionary.git
- - Source: https://github.com/mysterioustrousers/MTJSONDictionary.git
- - Versions: 0.0.4, 0.0.3, 0.0.2 [master repo]
- -> MTJSONUtils (0.1.0)
- An NSObject category for working with JSON.
- - Homepage: https://github.com/mysterioustrousers/MTJSONUtils.git
- - Source: https://github.com/mysterioustrousers/MTJSONUtils.git
- - Versions: 0.1.0, 0.0.1 [master repo]
- -> SBJson (3.1.1)
- This library implements strict JSON parsing and generation in Objective-C.
- - Homepage: http://stig.github.com/json-framework/
- - Source: https://github.com/stig/json-framework.git
- - Versions: 3.1.1, 3.1, 3.0.4, 2.2.3 [master repo]
- -> TouchJSON (1.0)
- TouchJSON is an Objective-C based parser and generator for JSON encoded data.
- - Homepage: https://github.com/TouchCode/TouchJSON
- - Source: https://github.com/TouchCode/TouchJSON.git
- - Versions: 1.0 [master repo]
生成第三方库的帮助文档
如果你想让CococaPods帮你生成第三方库的帮助文档,并集成到XCode中,那么用brew安装appledoc即可:
- brew install appledoc
关于appledoc,我在今年初的另一篇博客《使用Objective-C的文档生成工具:appledoc》中有专门介绍。它最大的优点是可以将帮助文档集成到XCode中,这样你在敲代码的时候,按住opt键单击类名或方法名,就可以显示出相应的帮助文档。
原理
大概研究了一下CocoaPods的原理,它是将所有的依赖库都放到另一个名为Pods项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。发现的一些技术细节有:
- Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。
- 对于资源文件,CocoaPods提供了一个名为Pods-resources.sh的bash脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。
- CocoaPods通过一个名为Pods.xcconfig的文件来在编译时设置所有的依赖和参数。
转自:http://blog.csdn.net/chengyakun11/article/details/9309715
相关推荐
程序包管理器(PM)注册表的管理。 提供了更新的版本 背景 许多Unity插件都依赖于Android特定的库,iOS CocoaPods,有时还依赖于其他Unity插件的传递依赖。 这会导致以下问题: 在Unity项目中集成特定于平台的库...
PepperTalkSDK-iOS-Examples 使用 Cocoapods 将 PepperTalkSDK-iOS 设置为依赖项。 如果您的系统上没有安装 Cocoapods,请参阅 安装 cocoapods 后,将“pod PepperTalkSDK-iOS”行添加到您的 podfile 并发出命令...
安装我们建议您使用 CocoaPods 安装此项目:使用 CocoaPods 安装CocoaPods 是 Objective-C 的依赖管理器,它自动化并简化了在项目中使用等 3rd 方库的过程。播客文件 platform :ios, '5.0'pod "Crontab-IOS"#用法...
React Native SQLite + Dropbox同步演示该项目是一个基本的List应用程序,该示例演示了如何使用SQLite和React Native构建脱机的第一个应用程序(具有TypeScript和CocoaPods的功能)。 获得授权后,可以使用Dropbox在...
使用CocoaPods将OmiseGO iOS SDK添加为依赖。 使用以下步骤设置工作区: $ pod install 测验 使用CMD+U运行测试 免责声明:此示例应用程序未经过全面测试,因为我们的资源可以更好地用于核心项目。 目前,该应用仅...
我们使用Ruby来管理第三方依赖关系以及其他工具和自动化。 克隆您喜欢的文件夹中的项目 git clone https://github.com/woocommerce/woocommerce-ios.git 进入项目目录 cd woocommerce-ios 安装运行项目所需的第...
离散度宁静是一种轻量级但功能强大的库,可快速进行。 “ Tranquillity”这个名称奠定了库的基本原理...图形API [x]获取依赖图 图验证 可视化依赖图 正在安装该库支持三种流行的程序包管理器:Cocoapods,Carthage和Sw
下载并安装 从GitHub查看最新的iOS应用程序代码安装 安装CocoaPods依赖项: pod install (openHAB应用程序现在使用CocoaPods 1.0!) 在Xcode中打开由CocoaPods生成的项目工作区-openHAB.xcworkspace 您
CocoaPods是Cocoa项目的依赖项管理器。 您可以使用以下命令进行安装: $ gem install cocoapods 注意:构建Stitch iOS SDK 5.0+需要CocoaPods 1.6.0+。 要使用CocoaPods将iOS SDK集成到您的Xcod
功能演示需求安装特性使用文档扫描照片裁剪和增强功能自动扫描演示需求Swift 4.2 iOS 10.0+安装Cocoapods CocoaPods是Cocoa项目的依赖项管理器。 要使用CocoaPods将MBDocCapture集成到您的Xcode项目中,请在Pod中...
XMPPFramework Basic客户端依赖使用包。 一,项目设置 打开Xcode并选择创建一个新项目![Xcode设置]( = 350x) 在项目编辑器中选择“单视图应用程序” ![Xcode设置]( = 350x) 填写所有必填字段,然后填写项目...
是开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具。 要使用 OneAPM SDK,推荐这样配置Podfile: # The front repo is prior if conflicted # CocoaPods private repo source '...
使用CocoaPods安装 是开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具。要使用友盟统计组件SDK,推荐这样配置Podfile:# The front repo is prior if conflicted# CocoaPods private reposource '...
该SDK使用CocoaPods( )作为库依赖管理器。为了进行此设置: sudo gem install cocoapods pod setup 将Matrix SDK的最新版本添加到应用程序项目中的最佳方法是将MatrixSDK依赖项添加到Podfile中: # Obj-C pod '...
这是Make It So的源代码,我的博客文章“使用SwiftUI和Firebase复制iOS提醒应用程序”附带的示例应用程序 ·· 目录 关于该项目 建于 入门 要启动并运行本地副本,请按照以下步骤操作。 先决条件 该项目使用...
该项目的依赖关系通过Cocoapods提供。 请安装所有依赖项 pod install 高级概述 域 Domain基本上就是您的App以及它可以做什么(实体,UseCase等)。它不依赖于UIKit或任何持久性框架,并且除了实体之外没有任何实现...
Nivelir Nivelir是用于ios和tvOS应用程序中导航的DSL,具有简化的,可链接的和编译时安全的语法。 let navigator = Default...Xcode 11+ Swift 5.1+安装CocoaPods CocoaPods是Cocoa项目的依赖项管理器。 您可以安装
CometChat iOS聊天SDK CometChat使您可以为您的网站和应用添加语音,视频和... 添加CometChatPro依赖项我们建议使用CocoaPods,因为它们是管理iOS项目依赖项的最高级方法。 打开一个终端窗口,移至您的项目目录,然后通
此示例应用程序是基于的应用程序安装项目文件使用CocoaPods安装项目文件和依赖项。 按照中的安装CocoaPods。 在终端中, cd到您的项目目录,然后键入pod install 。 (有时, pod update是神奇的) 使用新的*....
使用 CocoaPods 安装是 Objective-C 的依赖管理器,它自动化并简化了在项目中使用 JBMessage 等 3rd 方库的过程。 这是推荐的安装方式。播客文件 platform :ios , '7.0'pod 'JBPerformanceLogger'用法我一直想在滚动...