MAC OS10.11系统之 Cocoapods

自从升级了MAC OS10.11系统以后,一般的安装Cocoapods竟然失败了,我也是醉了,在网上查了好久,终于被我找到了破解之法:

1.在终端Terminal中输入 $ sudo gem install cocoa pods ,竟然出错了

ERROR:While executing gem ...(Errno::EPERM)Operation not permitted -
/usr/bin/xcodeproj
解决方法 : $ sudo gem install -n/usr/local/bin cocoa pods      (非常重要)

2.一个小问题:引入第三方库后找不到头文件

解决方法:在项目中的Targe-Build Settings-Search Paths -User Header Search Paths 中添加

${SRCROOT} 值为 recursive 



Cocoa pods的安装

CocoaPods可以方便地通过Mac自带的RubyGems安装。
打开终端 Terminal,然后键入以下命令:
$ sudo gem install -n/usr/local/bin cocoa pods

执行完这句如果报告以下错误:

ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - Errno::ETIMEDOUT: Operation timed out - connect(2) (https://rubygems.org/latest_specs.4.8.gz)
ERROR: Possible alternatives: cocoapods
这是因为ruby的软件源rubygems.org因为使用亚马逊的云服务,被天朝屏蔽了,需要更新一下ruby的源,使用淘宝的Ruby镜像.过程如下:终端输入命令
$ gem sources -l (查看当前ruby的源)
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
$ gem sources -l

结果为 ***CURRENT SOURCES *** 说明成功了

如果gem太老,可以尝试用如下命令升级gem
$ sudo gem update --system             接着输入电脑密码,回车,就开始升级了.
升级成功后会提示: RubyGems system software updated

然后重新执行安装下载命令  应该是
$ sudo gem install -n/usr/local/bin cocoa pods
这时候应该没什么问题了

接下来进行安装,执行:
$ pod setup

Terminal会停留在 Setting up CocoaPods master repo 这个状态一段时间,是因为要进行下载安装,而且目录比较大,需要耐心等待一下.    安装成功后,你会看到:     Setup completed

Cocoa pods的使用:

1.查找第三方库,终端输入命令     $ pod search AFNetworking        会显示相关的库

2.进入工程所在的目录(工程根目录) $ cd /Users/lmj/Desktop/test     我的工程根目录在桌面上 test文件夹
执行命令 $ touch Podfile  新建一个名为Podfile的文件(不能写成别的名字,也可以在工程根目录里面直接新建)

然后对该文件进行编辑,执行命令 $ open -e Podfile    打开该文件夹,会有一个空白文件打开,按下面格式编辑Podfile,保存.

Podfile文件的格式应该如下:
platform :ios, '7.0'
pod 'AFNetworking', '~> 2.5.3'
pod 'SDWebImage', '~> 3.7.2'

需要注意的几点:platform那一行,ios三个字母都要小写,而且与前面的冒号之间不能有间隔,后面的版本号也可以不写,这是所有库支持的ios最低版本。platform下面就是Cocoapods需要集成的开源库,根据你的需要确定集成那些库。

3.安装第三方库,   $pod install

如果安装后导入不了头文件



注意:
1.从此以后需要使用Cocoapods生成的 .xcworkspace文件来打开工程,而不是使用以前的.xcodeproj文件
2.每次更改了Podfile文件,都需要重新执行一次pod update命令

ps:当执行pod install之后,除了Podfile,还会生成一个名为Podfile.lock的文件,它会锁定当前各依赖库的版本,之后即使多次执行pod install也不会更改版本,只有执行pod update才会改变Podfile.lock. 在多人协作的时候,这样可以防止第三方库升级时候造成大家各自的第三方库版本不一致。所以在提交版本的时候不能把它落下,也要添加到.gitignore中.

本文参考了CoderAO的分享,加上自己的一些理解.边学边分享.

更新: 执行pod install之后,输出

Updating local specs repositories

后没反应了,  这时应该这样做.

pod install  换成pod install --verbose --no-repo-update这个命令


更新:最近在Cocoapods 输入了一条错误的语句,再次使用时出现下面错误:


查了好多资料,终于解决了这一个变态问题:

命令行操作:
$ mkdir -p $HOME/Software/ruby
$ export GEM_HOME=$HOME/Software/ruby
$sudo gem install -n/usr/local/bin cocoa pods
  [...]
  1 gem installed
$ export PATH=$PATH:$HOME/Sofware/ruby/bin
$ pod --version

  0.39.0

更新: 如果发现某个类库不适用,那么我们要怎么把这些东西从项目中清理出去呢?下面介绍的就是如何删除一个或若干个已经在项目中配置好的第三方类库.

1) 打开Podfile文件,删除不想要的库,如 删除这句 pod 'MJExtension'

2)打开终端, cd 切换到当前项目目录下,重新执行 pod install --verbose --no-repo-update

(注意:关键字  Removing XXX)XXX:代表库名

3)重新打开xcworkspace文件,就可以看到不想要的库,已经被删除了。


-------每天进步一点点。

更新:使用 CocoaPods 找不到新版本的库,如搜索UMengSocial时,显示最新版本为 4.4,但是实际最新版本号为 5.2.1 。且更新库时显示:

[!] Unable to find a specification for `UMengSocialCOM (~> 5.2.1)`

原因: 在 install 或 update 第三方库时,为了提升速度笔者一般都加了参数  --verbose --no-repo-update ,忽略升级 spec 仓库,很有可能是因此而搜不到新版本库,在重新设置 CocoaPods 后就可以搜到了。

解决办法:只需要把当前Pod的目录清理一下,然后重新设置就可以了。在终端执行以下命令:

pod repo remove master  
pod setup

执行下面命令(由于大家都懂的原因会很慢的),setup成功后执行install或update即可。


更新:(9.25号)

[!] The dependency `AFNetworking (~> 3.1.0)` is not used in any concrete target.

The dependency `Masonry (~> 1.0.2)` is not used in any concrete target.


在创建Podfile的时候,用这种格式

platform :ios, '8.0'

target 'MyApp' do

  pod 'AFNetworking', '~> 3.1.0'

end

  • 里面的 MyApp 记得替换为自己攻城里面的target。(‘’ 单引号记得要写)

更新:(2017.10)
安装源:
1、查看ruby源

gem sources -l

2、移除掉原有的源 

gem sources --remove https://ruby.taobao.org/

3、添加国内最新的源。ruby-china

gem sources -a https://gems.ruby-china.org

4、检查是否添加成功

gem sources -l

5、安装cocoapods

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

6、安装完成后查看pod版本

pod --version 

7、更新Podspec索引文件,创建本地索引库(这里要多等一会儿)

pod setup


附:

pod setup 时出现 

Performing a deep fetch of the `master` specs repo to improve future performance

的错误。是因为pod steup的时候创建master这个库,没成功,之后就算移除镜像重新安装的话 默认是从matser库里获取,导致安装不成功。

解决办法是移除master库,重新创建。

sudo rm -fr ~/.cocoapods/repos/master 

再重新setup 


移除cocopods后重新安装
1、打开终端,运行sudo gem install cocoapods-deintegrate安装快速解除项目cocopods依赖的库
2、安装成功后,cd到你项目的更目录运行pod deintegrate解除项目cocopods依赖
3、运行pod install,重新安装cocopods


更新:(2017.12)


访问github出错,需要配置dns服务器,有时候github打不开,就必须用8.8.8.8这个公网的dns服务器,其他的dns服务器,不知道为何解析github就不太行;配置方式如下:





更新:

Cocoapods Undefined symbols for architecture armv7s\arm64\x86_64



解决:


备注链接



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值