一、初识CocoaPods——XCode的依赖库管理工具
概述
任意一款功能完整的APP,其中所涉及的内容都将是来自各个领域各个方面的。如果每个领域的每个方面都要重新开发并给予充分测试,那么1个APP的开发周期将会变得非常漫长,长到足以让房价再涨一倍,长到足以让你失去市场先机,因为你的对手开发同样功能的APP可能只需要你的一半时间不到。
为什么会有这样的差异呢?
荀子曰:“君子性非异也,善假于物也。”
顿子曰:“如果说我看得比别人更远些,那是因为我站在巨人的肩膀上。”
当今开源社区有许多来自世界各地的优秀小伙伴以及他们的第三方库,这些第三方库往往都是免费的,经过了无数实践的验证,还有各路小伙伴的后期跟进和维护。我们为什么不拿来假于物立于肩呢?
正当我们敞开胸怀,准备熊抱开源世界的时候,却发现手动添加和管理第三方库简直是噩梦一场,甚至不需要王子的真爱之吻也足以唤醒睡美人。
时代在召唤一位英雄,这位英雄就是CocoaPods。
CocoaPods是一个Ruby开源项目,主要用于协助XCode管理和处理各个第三方库的依赖关系,以下是其官网向导网址,以供参考。
https://guides.cocoapods.org/
安装CocoaPods
首先,在启动台里打开终端(terminal),并在终端里输入“sudo gem install cocoapods”,按回车后输入电脑用户密码(注意:输入期间不会显示“***”)。这时终端会从网上下载cocoapods并安装,耐心等待一会即可。


安装完成后输入pod并按回车,如果出现类似如下内容,则表示安装成功。

使用CocoaPods改造工程
首先,我们创建1个名为“cocoapodsTest”的工程,并将其创建在桌面上。


如上图所示,我们看到cocoaTest目录里有3个文件夹和1个名为“cocoapodsTest.xcodeproj”文件。
接下来我们要通过终端进入cocoapodsTest目录,并在该目录下进行cocoapods初始化,从而完成改造。具体步骤如下:
以防冲突,我们先将XCode关闭。
然后我们回到终端,执行“cd Desktop/cocoapodsTest/”进入cocoapodsTest目录。
然后依次执行“pod init”和“pod install”。这时我们会发现cocoapodsTest目录下产生了几个文件,其中一个名为“cocoapodsTest.xcworkspace”。

双击打开 “cocoapodsTest.xcworkspace”,这时我们就看到改造后的工程了。

接下来,我们只要修改文件Podfile和运用终端命令“pod install”就可以添加你想要的第三方库了。
第一个开源库
FSCalendar是一个开源日历,接下来我们就以它为例,用CocoaPods将其添加到我们的工程中去。
提示:开源库的主页(一般指github)多半会有安装方法,有些支持CocoaPods有些则不支持,在使用前注意阅读开源库的相关说明。
首先,修改Podfile添加FSCalendar

在cocoapodsTest目录下使用pod install

拖拽1个View到面板上。

先设置View的约束:上下左右边距都为0。
然后在Class栏里填上FSCalendar
注:由于IB Designables的兼容性问题,此处我们可能会发现一个错误(Failed to render and update auto layout...),以至于Storyboard上看不到模拟的效果(如果你先在Class填上FSCalendar而后再设置约束也可能出现同样的问题)。这个错误只是妨碍我们看到模拟的效果,但并不妨碍实际程序编译运行。

开始编译运行~~~

一、初识CocoaPods——XCode的依赖库管理工具的更多相关文章
- XCode的依赖库管理工具——CocoaPods
安装CocoaPods 首先,在启动台里打开终端(terminal),并在终端里输入“sudo gem install cocoapods”,按回车后输入电脑用户密码(注意:输入期间不会显示“***” ...
- iOS开发之CocoaPods(objective-c第三方库管理工具)
介绍: iOS开发中,大多数情况下,我们都须要集成一些第三方依赖库.对于一个稍大的项目,用到的第三方依赖库的数量也很可观.CocoaPods是objective-c第三方库管理工具,方便第三方库的管理 ...
- iOS依赖库管理工具之CocoaPods
CocoaPods 是开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具.利用 CocoaPods,可以定义自己的依赖关系库 (称作 pods),并且随着时间的变化,在整个开发环境中对第 ...
- iOS依赖库管理工具之Carthage
在iOS开发中,我们常会用CocoaPods来进行依赖库的管理.CoaoaPods 是一套整体解决方案,我们在 Podfile 中指定好我们需要的第三方库,然后 CocoaPods 就会进行下载,集成 ...
- IOS开发依赖管理工具CocoaPods
CocoaPods IOS开发依赖管理工具 CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It ...
- iOS第三方库管理工具
作者:彷徨iOS 原文地址1:http://iostree.sinaapp.com/?p=78 原文地址2:http://blog.csdn.net/wzzvictory/article/detail ...
- iOS 中的第三方库管理工具
xcode没有android studio中的gradle进行第三方库管理,但是有第三方的库管理工具CocoaPods,https://github.com/CocoaPods/CocoaPods/w ...
- bower——库管理工具
bower了解: 随着网页功能的复杂化,各种网页效果的实现,现在单一的一个或两个库文件或许已经不能够满足我们的需要,但当有很多的库文件的时候,手动编辑已经不能胜任,对于引入的库文件而言,往往都是牵一发 ...
- 转: bower 客户端库管理工具
概述 常用操作 库的安装 库的搜索和查看 库的更新和卸载 列出所有库 配置文件.bowerrc 库信息文件bower.json 相关链接 概述 注:bower下载安装依赖库实际上是使用git进行下载. ...
随机推荐
- EurekaClient项目启动报错Invocation of destroy method failed on bean with name 'scopedTarget.eurekaClient': org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'e
Disconnected from the target VM, address: '127.0.0.1:51233', transport: 'socket' Eureka Client的使用 使用 ...
- 利用fastjson解析json并通过js&ajax实现页面的无跳转刷新
1.json是一种优秀的数据格式,在移动开发和web开发中经常用到,本例中通过一个小案例讲解如何通过alibaba的开源框架fastjson来解析jason数据格式并通过js实现无跳转刷新 2,新建一 ...
- AGC-018 C
题意: 有$X + Y + Z$个人,第$i$个人有$Ai$个金币,$Bi$个银币,$Ci$个铜币. 选出$X$个人获得其金币,选出$Y$ 个人获得其银币,选出$Z$个人获得 其铜币,在不重复选某个人 ...
- [转]IntelliJ IDEA 使用spring-boot-devtools热部署无效解决办法
来源:https://www.jianshu.com/p/4d8aa6dfd103 相信大部分使用IntelliJ IDEA的同学都会遇到这个问题,即使项目使用了spring-boot-devtool ...
- 3.RNN推导
1.基本RNN结构 这几天想入门NLP,所以开始了解RNN以及一系列变体.首先RNN最原始的结构如下图(图是按自己的理解用visio画的,有错麻烦提一下), 首先我们来说明一下各个符号的定义: 各个变 ...
- 网络编程-Mysql-1、数据库的启动关闭,创建数据库,表等基本操作
启动服务端:sudo service mysql start 关闭服务端:suodo service mysql stop 重启服务端:suodo service mysql restart 连接数据 ...
- 项目之初的模型设计与status状态字段
0X01 开始做一个app的时候,要先做的是流程设计与数据库模型设计. 但做的模型设计往往是设置字段满足当前的需求,缺乏足够的经验,即使为以后的功能预留出位置,也无法考虑周全. 比如,刚开始做用户表, ...
- [wordpress]WordPress地址(URL)错误,修改解决方案
本人在修改Wordpress地址(URL)时,误操作使URL指向错误,后台无法进入. 解决方案 1.先利用Putty登陆到自己的服务器上(这里登陆方法我不再赘述): 2.登陆MySqL,并输入密码: ...
- IOS中多线程的总结
首先要知道线程和进程的区别.一个系统上运行的每一个应用程序都是一个线程.而进程中要执行的任务都是在线程上来实现的,所以说线程是进程的最小执行单元. 进程最少要有一个线程.多线程,顾名思义就是多条线程. ...
- [LeetCode] Design HashSet 设计HashSet
Design a HashSet without using any built-in hash table libraries. To be specific, your design should ...