Cocopods的安装

CocoaPods应该是iOS最常用最有名的类库管理
当我们开发iOS应用时,会经常使用到很多第三方开源类库,比如AFNetWorking等等,可能某个类库又用到其他的库,手动一个个去下载所需类库十分麻烦。如果我们项目中用到的类库有更新,还要重新下载新版本,重新加入到项目中,十分麻烦。所以,我们需要 CocoaPods帮我们管理。
如何下载和安装CocoaPods?
在安装CocoaPods之前,首先要在本地安装好Ruby环境。至于如何在Mac中安装好Ruby环境,请找度娘和谷哥。
假如你在本地已经安装好Ruby环境,那么下载和安装CocoaPods将十分简单,只需要一行命令。在Terminator中输入以下命令:

         sudo gem install cocoapods

但是,在终端中敲入这个命令之后,可能半天没有任何反应。

这时我们可以用淘宝的Ruby镜像来访问cocoapods。按照下面的顺序在终端中敲入依次敲入命令:

        $ gem sources --remove https://rubygems.org/

//等有反应之后再敲入以下命令

        $ gem sources -a https://ruby.taobao.org/

为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:

       $ gem sources -l

只有在终端中出现下面文字才表明你上面的命令是成功的:

      *** CURRENT SOURCES ***
https://ruby.taobao.org/

这时候,我们再次在终端中运行:

        $ sudo gem install cocoapods

        $ pod setup

等一会,CocoaPods就可以在你本地下载并且安装好了

安装时候遇到的问题:
Setting up CocoaPods master repo
[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master --depth=1 Cloning into 'master'...
error: RPC failed; result=18, HTTP code = 200
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
解决办法:
$ git config --global http.postBuffer 24288000
$ git config --list

会输出:http.postbuffer=24288000

再次执行:

$ pod setup

Cocopods使用

我们想用CocoaPods,在项目中导入ASIHTTPRequest类库
首先,我们要确定ASIHTTPRequest是否支持CocoaPods,可以用CocoaPods的搜索功能验证一下。在终端中输入:

       $ pod search ASIHTTPRequest

输入之后,你会在终端中看到关于ASIHTTPRequest类库的一些信息。
比如:

       -> ASIHTTPRequest (1.8.2)
Easy to use CFNetwork wrapper for HTTP requests, Objective-C, Mac OS X and iPhone.
pod 'ASIHTTPRequest', '~> 1.8.2'
- Homepage: http://allseeing-i.com/ASIHTTPRequest
- Source: https://github.com/pokeb/asi-http-request.git
- Versions: 1.8.2, 1.8.1 [master repo]
- Sub specs:
- ASIHTTPRequest/Core (1.8.2)
- ASIHTTPRequest/ASIWebPageRequest (1.8.2)
- ASIHTTPRequest/CloudFiles (1.8.2)
- ASIHTTPRequest/S3 (1.8.2)

现在知道ASIHTTPRequest支持Cocopods了,我们就要道你的项目中创建一个文件,这个文件就叫做“Podfile”,一定得是这个文件名,而且没有后缀。在里面添加pod 'ASIHTTPRequest', '~> 1.8.2',就是告诉CocoaPods,我们要下载ASIHTTPRequest ,1.8.2版本

我们先创建这个PodFile文件。在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行:

       $ vim Podfile

然后在Podfile文件中输入以下文字:

       pod "ASIHTTPRequest", "~> 1.8.2"

然后保存退出。vim环境下,保存退出命令是:

       :wq!

我们会发现项目中,多了一个名字为Podfile的文件,而且文件内容就是输入的内容。注意,Podfile文件应该和你的工程文件.xcodeproj在同一个目录下。

下面我们就可以利用CocoPods下载ASIHTTPRequest类库了。还是在终端中的当前项目下,运行命令:

      $ pod install

运行完命令之后,会看见有这句话[!] From now on use ********.xcworkspace这是说:以后打开项目就用 **.xcworkspace 打开,而不是之前的**.xcodeproj文件。

现在,我们就可以开始使用ASIHTTPRequest啦。可以测试一下,在项目中输入:
#import <AFNetworking.h>或者#import "AFNetworking.h"试试

如果以后有更新 或者 添加别的类库,用update命令即可:

       $ pod update

CocoaPods 报错

Xcode 升级到 6.0 后,更新 CocoaPods 或者以前手动添加过第三方SDK改用Cocopods,可能会出现以下的错误

错误1:
     [!] The `Paopao [Debug]` target overrides the `PODS_ROOT` build setting defined in `Pods/Target Support Files/Pods/Pods.debug.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target. [!] The `Paopao [Debug]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods/Pods.debug.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target. [!] The `Paopao [Release]` target overrides the `PODS_ROOT` build setting defined in `Pods/Target Support Files/Pods/Pods.release.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target. [!] The `Paopao [Release]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods/Pods.release.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.

产生此警告的原因是项目 Target 中的一些设置,CocoaPods 也做了默认的设置,如果两个设置结果不一致,就会造成问题。

我想要使用 CocoaPods 中的设置,分别在我的项目中定义PODS_ROOT 和 Other Linker Flags的地方,把他们的值用$(inherited)替换掉,进入终端,执行

      pod update

警告没了

我个人更喜欢一种简单粗暴的方法:

点击项目文件 project.xcodeproj,右键显示包内容,用文本编辑器打开project.pbxproj,删除OTHER_LDFLAGS的地方,保存,pod update,警告没了。。。。

错误2:

错误

这个解决也比较简单,
在Build Setting 中的Other Linker Flags选项中加入$(OTHER_LDFLAGS) 如图:

解决错误

编译通过.........

OS X EI Caption系统下遇到的问题

升级OS X EI Capiton之后,发现CocoaPods的pod命令无效了,提示一下错误

pod: command not found

解决步骤:
1.卸载

sudo gem uninstall cocoapods

2.重新安装

sudo gem install -n /usr/local/bin cocoapods

3.如果没有权限执行pod,执行命令一下命令赋予/usr/local/bin给予执行与读取权限

sudo chmod +rx /usr/local/bin/

2016-12月补充

1新增加Cocoapods集成命令U-Share时直接使用pod update更新,不可加入--no-repo-update参数,需直接更新线上Cocoapods库。

2xcode8打开podfile文件,却说字符非法,

可以用这句正确的代码替换:pod 'Parse', '~> 1.7.1'

3bug-反应慢的小bug

一直报错,重开xcode也没用,后来再setting 搜索user head,还没改东西,就好了。。。。

 

mac10.12的Cocopods安装使用的更多相关文章

  1. 虚拟机VM14.X安装Mac10.12启动出现问题的解决方法

    虚拟机安装Mac系统,会出现的问题太多,于是乎变记录下来,方便以后使用或者方便大家解决问题. 一:VM14.X安装Mac10.12虚拟机,启动出现下面无限重启问题 解决方法: 亲测有效 在OS X 1 ...

  2. Mac10.12下Python3.4调用oracle

    最近,由于项目的短信平台对其它浏览器兼容,只支持IE,但是我们移动端自动化需要测试iphone手机,必须要连接MAC系统下,众所周知,MAC对IE的不友好性,故没办法通过短信平台在UI层自动化获取短信 ...

  3. mac10.12.6系统配置clion编写CMakeLists文件运行opencv3

    按照mac10.12.6系统使用cmake安装opencv3.3.0+opencv_contrib-3.3.0下载编译安装好了文件以后,装好clion编译器,新建C++可执行工程,编写代码 opecv ...

  4. iOS cocopods安装使用和安装过程中遇到的问题及解决办法

    在osx 10.11之前cocopods问题不多,但是升级到11之后的版本,之前的cocopods大多用不了,需要重新安装,对于我这种使用测试版系统的技术狂来说,每次都需要重新安装很多东西, 当然,c ...

  5. VMware Workstation 14创建mac-10.12虚拟机详细步骤

     一.VMware和unlocker的下载和安装 链接:https://pan.baidu.com/s/15Z4DqRENt6JdyfJef_VWSw 密码:40vw 1.安装VMware Works ...

  6. ios cocopods 安装使用及高级教程

    CocoaPods简介 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如Java语言的Maven,nodejs的npm.随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,它的 ...

  7. Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例

    目录 [TOC] 1.环境准备 ​ 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0. ...

  8. iOS 学习笔记二【cocopods安装使用和安装过程中遇到的问题及解决办法】【20160725更新】

    在osx 10.11之前cocopods问题不多,但是升级到11之后的版本,之前的cocopods大多用不了,需要重新安装,对于我这种使用测试版系统的技术狂来说,每次都需要重新安装很多东西, 当然,c ...

  9. Angularjs学习---angularjs环境搭建,ubuntu 12.04下安装nodejs、npm和karma

    1.下载angularjs 进入其官网下载:https://angularjs.org/‎,建议下载最新版的:https://ajax.googleapis.com/ajax/libs/angular ...

随机推荐

  1. linux lamp服务器安装配置

    1 安装Apache服务器 yum -y install httpd httpd-devel 如何查看服务: systemctl  | grep httpd 启动apache: service htt ...

  2. js 数组排序和算法排序

    1.算法排序 a.插入排序 var arr = [23,34,3,4,23,44,333,444]; var arrShow = (function insertionSort(array){ if( ...

  3. 2014江西理工大学C语言程序竞赛初级组

    坐公交 解法:略 #include<stdio.h> #include<string> #include<iostream> #include<math.h& ...

  4. Android中@id与@+id区别

    Android中的组件需要用一个int类型的值来表示,这个值也就是组件标签中的id属性值. id属性只能接受资源类型的值,也就是必须以@开头的值,例如,@id/abc.@+id/xyz等. 如果在@后 ...

  5. javascript耐人寻味

    在思考javascript解释过程的时候,看过别人几篇文章,自己做了几个测试 容易理解,在javascript,形如这样的代码可以正常执行: alert(hello()); function hell ...

  6. 第一课 android环境搭建

    android环境搭建需要的工具: 1.JDK 2.eclipse 3.SDK 4.ADT

  7. CentOS6.6系统源代码安装mysql5.5.28教程(附源码包下载地址)+sysbench的安装

    mysql从5.5版本开始,不再使用./configure编译,而是使用cmake编译器,具体的cmake编译参数可以参考mysql官网文档(※ 非常重要) http://dev.mysql.com/ ...

  8. SqlSever基础 datepart函数 返回这一秒已经过去了多少毫秒

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  9. ECharts开始

    为ECharts准备一个具备大小(宽高)的Dom(当然可以是动态生成的) //from echarts example <body> <div id="main" ...

  10. (1)若当前字符不是大于0的数字字符,则复制该字符于新字符串中; (2)若当前字符是一个数字字符,且它之后没有后继字符,则简单地将它复制到新字符串中; (3)若当前字符是一个大于0的数字字符,并且还有后继字符,设该数字字符的面值为n,将它的后继字符重复复制n+1次到新字符串中; (4)以上述一次变换为一组,在不同组之间另插入一个"_"用于分割(5))若字符串中包含有下划线'_',则变换为 \UL

    package b; import java.util.Scanner; public class Zifuchuan { public static void main(String[] args) ...