CocoaPods 多次使用

通过这个教程,你会学习使用一个很流行的第三方开源组件管理工具----CocoaPods。不过这个工具是什么,为什么要使用它呢?

作为一个iOS开发者,你一定会用到很多别人的代码,这些代码以类库的形式提供。想象一下,如果所有的东西都要你从零开始创建,得有多麻烦!

如果没有管理工具,你可能会简单地将每个组件加入到你的工程中。但是,这么做有一些弊端:

1. 组件代码保存在你的工程中,浪费空间。

2. 没有一个集中的能看到所有可用组件的地方。

3. 查找和升级组件很困难,尤其是有多个组件需要升级。

4. 在你的工程中下载然后引入组件可能存在这样的风险:修改其代码,然后搁置一边。从而导致下次升级时更加麻烦。

一个第三方组件管理工具可以帮助你克服这些问题。它能自动获取组件的源代码,解决类库之间的依赖,甚至可以创建并维护一个正常的环境来创建你的项目。

在本教程中,你会学习如何使用CocoaPods。特别的是,你会使用多个开源组件来创建一个app,它可以获取并展示来自trakt.tv的电视及电影信息。CocoaPods让这个过程变得非常简单。接着往下看!

准备开始

开始之前:该教程需要你熟悉Xcode,命令行工具,了解ASIHTTPRequest组件、JSON格式。如果你对这些都不熟悉,先看看其他教程

PS:原文中的示例太复杂,和CocoaPods关系不大,因此我强行替换成一个使用ASIHTTPRequest查询天气的示例demo。

CocoaPods官网说,它是Objective-C工程下最好的管理类库依赖的工具,这么说确实不假!与其自己从GitHub下载代码然后复制到你的工程中,导致将来升级很困难,CocoaPods可以帮你做这些事。

下面,你需要安装CocoaPods。它在Ruby下运行,不过这是它唯一的限制。幸运的是,最近版本的Mac OSX系统(从OS X10.7Lion开始)都已经预装了Ruby。所以你只需要更新RubyGems到最新版本。

打开终端,然后输入如下的命令:

  1. sudo gem update --system

按提示输入密码,要注意在终端中密码不显示字符,只要输完后按回车即可。终端中输入看起来应该是这样的:

更新会花费一点时间,耐心等待几分钟。

然后,你需要安装CocoaPods。在终端中输入如下命令:

  1. sudo gem install cocoapods

如果安装过程中遇到以下提示,输入y继续。

  1. rake‘s executable "rake" conflicts with /usr/bin/rake
  2. Overwrite the executable? [yN]

最后,在终端中输入如下命令来完成安装:

  1. pod setup

这条命令,将CocoaPods Specs repository复制到你电脑上的~/.cocoapods目录下,它需要一点时间来完成。

到这里,你已经成功安装了CocoaPods!

PS:从这里开始,不使用原文demo,自己创建一个新工程。

打开Xcode,创建一个新的singleView工程,然后关掉Xcode,是的关掉它。现在该创建你的podfile了。

安装你的第一个第三方组件

打开终端,并定位到刚刚创建的工程目录下:

  1. cd ~/Path/To/Folder/Containing/PodDemo

然后输入命令:

  1. pod init

这条命令会在你的工程下创建一个默认的Podfile。你将在Podfile里定义所用到的组件。

输入下面的命令,用Xcode打开Podfile:

  1. open -a Xcode Podfile

默认的Podfile看起来像这样:

  1. # Uncomment this line to define a global platform for your project
  2. # platform :ios, "6.0"
  3. target "PodDemo" do
  4. end

将# platform:ios, "6.0"替换成,告诉CocoaPods你的工程是运行在iOS7下:

  1. platform :ios, "7.0"

很多类库都有最低的iOS版本要求。如果你省略了这一行,CocoaPods会给一个默认的iOS版本(目前是iOS4.3)。

现在终于可以用CocoaPods加入你的第一个组件了。在Podfile中,target "PodDemo" do下面加上:

  1. pod ‘ASIHTTPRequest‘, ‘1.8.2‘

这句话告诉CocoaPods你想要在工程中引入ASIHTTPRequest Version 1.8.2。

如果你想要使用更复杂的操作,请看更多Podfile语法

保存并关闭Podfile。

现在告诉CocoaPods去安装这些组件到你的工程中。在终端中输入(确保在项目目录下):

  1. pod install

你会看到如下的输出:

  1. Analyzing dependencies
  2. Downloading dependencies
  3. Using ASIHTTPRequest (1.8.2)
  4. Using Reachability (3.1.1)
  5. Generating Pods project
  6. Integrating client project

可能还会有:

  1. [!] From now on use `ShowTracker.xcworkspace`.

此时CocoaPods在项目目录下创建了一个Pods文件夹----用于存放所有的第三方组件,以及PodDemo.xcworkspace。

正如上面的警告提醒,从现在开始,你必须使用PodDemo.xcworkspace来打开该项目。

如果Xcode项目还打开着,关掉它,打开PodDemo.xcworkspace。

测试ASIHTTPRequest

1.在ViewController.h中导入ASIHTTPRequest头文件:

  1. #import <ASIHTTPRequest/ASIFormDataRequest.h>

2.给ViewController.h添加一个ASIFormDataRequest属性:

  1. @property (nonatomic,strong)ASIFormDataRequest *request;

3.修改ViewController.m的ViewDidLoad方法:

  1. - (void)viewDidLoad {
  2. [super viewDidLoad];
  3. // Do any additional setup after loading the view, typically from a nib.
  4. NSURL *url = [NSURL URLWithString:@"http://www.weather.com.cn/data/sk/101010100.html"];
  5. self.request = [[ASIFormDataRequest alloc] initWithURL:url];
  6. self.request.requestMethod = @"GET";
  7. self.request.delegate = self;
  8. [self.request startAsynchronous];
  9. }

4.在ViewController.m中添加ASIHTTPRequest代理方法:

  1. - (void)requestFinished:(ASIHTTPRequest *)request
  2. {
  3. NSArray *result = [NSJSONSerialization JSONObjectWithData:request.responseData options:NSJSONReadingMutableContainers error:nil];
  4. NSLog(@"%@",result);
  5. }

运行代码,看到Console输入如下:

  1. 2014-10-15 14:08:24.734 PodDemo[7319:120294] {
  2. weatherinfo =     {
  3. Radar = "JC_RADAR_AZ9010_JB";
  4. SD = "16%";
  5. WD = "\U5317\U98ce";
  6. WS = "4\U7ea7";
  7. WSE = 4;
  8. city = "\U5317\U4eac";
  9. cityid = 101010100;
  10. isRadar = 1;
  11. njd = "\U6682\U65e0\U5b9e\U51b5";
  12. qy = 1010;
  13. temp = 21;
  14. time = "13:55";
  15. };
  16. }

至此,组件已经被成功的引入到你的工程中了!

添加更多Pods

既然你已经知道CocoaPods如何工作,下面只剩下一件事可做:添加更多的Pods!

不过,事实上。。。你应该在工程中引入尽量少的pods。虽然CocoaPods让升级组件变得更容易,但是你始终要不时地更新你自己的代码。长远来看,最好的方式是让这些组件在你的控制之内。

现在向你的工程添加2个组件。比起从命令行打开Podfile,现在你可以在workspace中找到这个文件并打开。添加:

  1. pod ‘SAMCategories‘, ‘0.5.2‘
  2. pod ‘Nimbus/AttributedLabel‘, ‘1.2.0‘

保存,然后安装引用(在终端中使用pod install)。

你是否注意到Nimbus/AttributedLabel和其他pod不一样,多了一个"/"?大的pods常常将他们的库拆分成核心模块和一些小的子模块。在这个例子中,“/”表示AttributedLabel是Nimbus的子模块。

如果你不熟悉这些类库,这里有两个例子:

sstoolk是一个便捷的工具包,用于解决iOS开发者们经常遇到的问题。

Nimbus,全称NimbusKit,是另一个很有用的工具包。

为了测试一切正常,编译项目。此时,你会看到有很多警告!

“等等,我还没有更改项目代码!”你可能会这么想。

不管什么时候,你通过CocoaPods添加一个引用,它的源码已经被加入到项目中了。当你编译项目时,它们也会一起被编译。

所以,如果你加入的引用有很多警告,甚至编译报错,很可能它已经不再被维护了。

遇到这种情况,你可以在CocoaPods website上查找一个替换的组件。同时你还能找到它们的详细信息,如网站链接,说明文档,等等。

我们这个实力,大部分的警告都来源于iOS7废弃了一些方法,你可以安全地无视掉它们。

为了让CocoaPods的引入不显示警告,在Podfile最上方加上:

  1. inhibit_all_warnings!

重新运行pod install,编译项目,此时你应该看到警告已经不显示了。

PS: 对Podfile修改安装之后编译项目,可能会出现如下警告:

  1. The sandbox is not in sync with the Podfile.lock. Run ‘pod install‘ or update your CocoaPods installation.

此时,正确的做法是:

I. Project Cleanup

  1. In the project navigator, select your project
  2. Select your target
  3. Remove all libPods*.a in Linked Frameworks and Libraries

II. Update CocoaPods

  1. Launch Terminal and go to your project directory.
  2. Update CocoaPods using the command pod install

注意,1.3很重要。

入门教程到此结束。

使用cocoaPods和遇到的问题以及解决办法

上一篇说到cocoaPods的安装,本篇就来说说cocoaPods的使用和遇到一些问题的解决办法( ⊙ o ⊙ )

一、cocoaPods的创建使用

1、cd进入所在的项目目录

2、创建Podfile文件 $ pod init

3、编辑Podfile文件 $sudo vi Podfile

4、导入框架  $ pod ‘框架名’  可以指定版本号$ pod ‘框架名’,’~>版本号’,一般不指定版本号,默认用最近的

5、按esc,然后输入  :wq 保存

6、添加框架, $ pod install (把xcode和模拟器都关闭了)

7、打开 项目名.xcworkspace这个文件就能打开项目了

8、添加头文件就可以用了,注意:只能用尖括号导入<>

9、框架的更新 $ pod update

10、第三方框架的追加,搜索框架 $ pod search,然后写入Podfile,使用 $ pod install

***注意,如果之前手动导入个第三方库,现在用cocoa pods的话,要修改Other Linker Flags,增加$(inherited)

二、可能遇到的问题

(1)使用cocoapods导入第三方类库后头文件没有代码提示?

解决办法: 选择Target -> Build Settings 菜单,找到\”User Header Search Paths\”设置项,新增一个值"${SRCROOT}",并且选择\”Recursive\”

(2)出现如下警告

[!] Your Podfile has had smart quotessanitised. To avoid issues in the future, you should not use TextEdit forediting it. If you are not using TextEdit, you should turn off smart quotes inyour editor of choice.

解决办法:不要使用文本编辑去编辑Podfile,使用Xcode编辑,或者使用终端敲命令去编辑。

(3) 执行pod install 或pod update 命令后,updating local specsrepositories 卡住不动

解决办法:pod install 被墙了,换成新的命令pod install --verbose --no-repo-update

时间: 2024-08-03 01:53:36

CocoaPods 多次使用的相关文章

CocoaPods安装及使用

工欲善其事,必先利其器,在此记录一下CocoaPods的安装及使用. 一.安装 1.升级Ruby环境 在终端使用:$sudo gem update —system来进行升级 2.安装CocoaPods时我们要访问cocoapods.org,该网站可能被墙了,这样下载安装可能会是龟速,我们可以用淘宝的Ruby镜像来访问该网站,方法如下: 1).gem sources --remove  https://rubygems.org/ 2).gem sources -a  http://ruby.tao

CocoaPods的安装和使用介绍

如有问题欢迎加iOS群:391609253(杭州.上海为主)1.安装 1)首先,查看电脑是否安装了CocoaPods. 上图说明没有安装CocoaPods. 2)接下来,由于在Mac下自带有ruby,使用ruby的gem命令即可下载: 3)因为使用的是亚马逊的云服务,所以Unable to了,那么接下来就是更改ruby的软件源为淘宝源. 4)更改好之后就可以下载了,命令为sudo gem install cocoapods,看到20 gems installed 说明已安装完毕. 5)接下来可以

使用CocoaPods管理第三方开源类库

iOS开发中经常会用到许多第三方类库,比如AFNetworking.FMDB.JSONKit等等,使用CocoaPods这个工具就能很方便得对工程中用到的类库进行管理,包括自动下载配置以及更新. 首先需要下载安装CocoaPods,系统要求有ruby环境,至少OS X 10.9以后是自带ruby环境的(Python也自带了),使用"ruby -v"命令可以查看当前ruby版本. 配置过程如下: 1.ruby环境 不放心的话可以先确认下ruby环境,据说由于GFW的影响,大都把Ruby镜

Cocoapods的安装和使用

一.Cocoapods的安装 第一步:打开终端 第二步:修改ruby镜像引用 gem source --remove https://rubygems.org/ gem sources -a http://ruby.taobao.org/ 完成后用命令行查看ruby镜像是否是taobao,用命令行: gem sources -l 返回信息为: *** CURRENT SOURCES *** http://ruby.taobao.org/ 即为成功. 第三步:安装cocoapods sudo ge

cocoaPods的安装

先介绍下自己吧,准备从事ios开发,现在还是一名小白哦,写得不好请多多指教. 一.为什么需要cocoaPods ios开发时,项目中会用到许多第三方库,如果一一把第三方库导入项目时,会很麻烦. 就引出了CocoaPods(https://github.com/CocoaPods/CocoaPods),它可以用来方便的统一管理这些第三方库. 二.安装过程 第一步:安装或者更新Ruby.(当前安装环境Xcode 8.2  ,mac  OS Sierra 10.12.3) Mac  OS本身自带Rub

使用cocoapods

使用cocoapods 0.如果发现装cocoapods时出错就更新gem到最新版本,在终端中输入:$ sudo gem update --system,注意不要把"$"复制上.等待一会儿会看到   我已经敲过所以是   1.移除原有的源 gem sources --remove https://rubygems.org/   2.添加淘宝的镜像gem sources -a https://gems.ruby-china.org/(原来的淘宝镜像https://ruby.taobao.

Cocoapods 简单的使用

Cocoapods的安装就不再记录了,网上搜索就可以.在这里只记录一些Cocoapods简单的使用. 1.Cocoapods 安装三方步奏 ①首先在终端cd到你项目的目录 ②进入到vim编辑器,进行对Podfile编辑 ③对Podfile进行编辑, 需要注意的是podfile里面输入的格式变了. platform :ios,'8.0' [支持的最高版本] target '你项目的名称' do pod 'AFNetworking','~>3.1.0' end ④对Podfile编辑完成后,按ESC

【转】CocoaPods一个Objective-C第三方库的管理利器

原文网址:http://blog.csdn.net/totogo2010/article/details/8198694 介绍: 开发应用的时候第三方的库是不可缺少的,能提高开发的效率. 一些经常用到的库,在新的项目里用是,你又得手工的Add到项目里,用的到库多起来了,就不方便管理了.发现CocoaPods这个软件,可以帮你管理Xcode里的第三方的库,很方便. 那怎么用呢?先安装CocoaPods. 1.CocoaPods是跑在Ruby的软件,安装可能需要几分钟,安装命名: sudo gem

安装CocoaPods遇到的问题 及其解决

本人也是第一次安装这个 CocoaPods,所以刚开始也是遇到了很多懵逼的问题,今天终于搞定了,就自己总结一下,如有错误敬请指出,谢谢! 由于之前,对于终端命令行,不是很了解,总感觉很麻烦,所以也一直没搞CocoaPods,最近比较闲点,就试试 1.打开终端 终端输入  $ruby -v  查看ruby的版本 打印代码: ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15] 2. 更换ruby镜像 终端输入如

CocoaPods

1.更换源 $ gem sources --remove https://rubygems.org/ //等有反应之后再敲入以下命令 $ gem sources -a https://ruby.taobao.org/ 2.升级gem sudo gem update --system 3.安装 sudo gem install cocoapods 4.初始化第三方库信息 pod setup