CocoaPods安装使用

CocosPods是一个负责管理IOS项目中第三方开源代码的工具,使用这个工具可以有利于我们对项目中引用第三方类库的管理。
CocosPods是一个工具,不是插件,安装一次即可。新项目想使用pod只需要cd到项目路径然后pod init会创建出一个Podfile文件。按需要编辑此文件然后pod install此项目即可使用pod。
以下是CocosPods的安装和使用说明

1.CocoaPods的安装

需要用到ruby,Mac 系统自带Ruby,但如果不是最新的系统最好更新一下。
ruby的软件源rubygems.org被墙了,所以换一下源,命令行下依次执行3调命令

$ gem sources -remove --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/  (备注:之前是http,现在需要改成https)

$ gem sources -l

然后升级gem

$sudo gem update --system

完了就开始安装CocoaPods

$ sudo gem install cocoapods   (如果安装失败:sudo gem install -n/usr/local/bin cocoapods)
$ pod setup

出现Setting up CocoaPods master repo,半天没有任何反应。原因无他,因为那堵墙阻挡了cocoapods.org。。。
gitcafe和oschina都是国内的服务器,可以用它们CocoaPods索引库的镜像:

$ pod repo remove master
$ pod repo add master https://gitcafe.com/akuandev/Specs.git
$ pod repo update

如果想用oschina的镜像也可以把第二条命令 换成 http://git.oschina.net/akuandev/Specs.git 即可

第二条命令执行的时候会比较耗时,这个时候要去把整个specs仓库clone一下,下载到 ~/.cocoapods里;
cd  到该目录里,用du -sh *命令来查看文件大小。

2. CocoaPods的使用

2.1 在终端中cd 来到要管理的工程,运行:pod install 工程中就多了个xworkspace文件夹,以后要使用这个来打开工程
2.2 添加第三方库
    #pod search AFNetworking

    在工程目录里创建一个Podfile文件用来配置需要添加的第三方库
    如果工程里只包含一个Target那么配置很简单如下:

    platform :ios,"8.0"
    #AFNetworking pod
    pod "AFNetworking", '~>2.6.0'
    pod 'Masonry'
    pod "FastttCamera/Filters"
    pod 'Bugtags'

如果是包含多个target的情况需要为每一个target进行配置,如下
#配置默认 xcodeproj,路径相对于podfile的路径,这个必须配置
xcodeproj ‘工程名.xcodeproj’

    #配置Target
    target :target1 do
    #Target属于的工程
    xcodeproj '工程名.xcodeproj'
    platform :ios,"8.0"
    #AFNetworking pod
    pod "AFNetworking", '~>2.6.0'
    pod 'Masonry'
    pod "FastttCamera/Filters"
    pod 'Bugtags'
    end


    target :target2 do
    #Target属于的工程
    xcodeproj '工程名.xcodeproj'
    platform :ios,"8.0"
    #AFNetworking pod
    pod "AFNetworking", '~>2.6.0'
    pod 'Masonry'
    pod "FastttCamera/Filters"
    pod 'Bugtags'
    end

3.CocoaPods使用注意事项

3.1 最近使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动,

    原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,
    命令如下:

pod install --verbose --no-repo-update pod update --verbose --no-repo-update

    pod install只会按照Podfile的要求来请求类库,如果类库版本号有变化,那么将获取失败。
但是
pod update会更新所有的类库,获取最新版本的类库。每次用pod update就行。
(2)工程在模拟器上编译报错,不支持i386,Cocoapods确实还不支持64位模拟器,解决办法:
build active architecture only 在debug的时候设置成YES,不要在release的时候用模拟器   
  other linker flags 加一个
(inherited)
用到svn,git多人协作的话,Pods/这个文件夹不要上传,…/Pods/Pods.xcodeproj  …Pods/Target Support Files/这些每次编译都会改动从而引起合并代码的时候冲突

不翻墙执行:

pod install --verbose --no-repo-update

4. pod 导入第三方库出现问题的解决方案

4.1. #import 没有智能提示

解决方案:target ->BuildSettings->search Paths->User Header Search Paths->点击“+”号添加一项
$(PODS_ROOT) 设置为recursive

4.2. 编译报错 linker command failed with exit code 1 (use -v to see invocation)

定位到 Pods, 将build active architecture only设置为 NO.

4.3.ignore 文件不生效

原因:之前提交过该文件, git 已经对其版本控制(track状态),所以 ignore 不生效
解决:删除该文件的版本控制(改变成未track状态),再提交即可

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

5. Cocoapods降低版本及卸载

有的时候我们需要降低Cocoapods的版本来解决第三方库的兼容问题.

5.1 移除pod组件

这条指令会告诉你Cocoapods组件装在哪里 :

$ which pod

你可以手动移除这个组件 :

$ sudo rm -rf <path>
5.2 移除 RubyGems 中的 Cocoapods程序包

Q: RubyGems是什么?

A: RubyGems(简称 gems)是一个用于对 Ruby组件进行打包的 Ruby 打包系统。 它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。

查看gems中本地程序包

$ gem list

输出

    *** LOCAL GEMS ***

    activesupport (4.1.8, 3.2.21)

    bigdecimal (1.2.0)

    CFPropertyList (2.2.8)

    claide (0.7.0)

    cocoapods (0.35.0, 0.34.1, 0.34.0)

    cocoapods-core (0.35.0, 0.34.1, 0.34.0)

    cocoapods-downloader (0.8.0, 0.7.2)

    cocoapods-plugins (0.3.2)

    cocoapods-trunk (0.4.1, 0.2.0)

    cocoapods-try (0.4.2)

    colored (1.2)

    escape (0.0.4)

    fuzzy_match (2.0.4)

    i18n (0.6.11)

    io-console (0.4.2)

    json (1.7.7)

    json_pure (1.8.1)

    libxml-ruby (2.6.0)

    minitest (5.4.3, 4.3.2)

    molinillo (0.1.2)

    multi_json (1.10.1)

    nap (0.8.0)

    netrc (0.7.8)

    nokogiri (1.5.6)

    open4 (1.3.4)

    psych (2.0.0)

    rake (0.9.6)

    rdoc (4.0.0)

    sqlite3 (1.3.7)

    test-unit (2.0.0.0)

    thread_safe (0.3.4)

    tzinfo (1.2.2)

    xcodeproj (0.20.2, 0.19.4)

发现Cocoapods的程序包

    cocoapods (0.35.0, 0.34.1, 0.34.0)

    cocoapods-core (0.35.0, 0.34.1, 0.34.0)

    cocoapods-downloader (0.8.0, 0.7.2)

    cocoapods-plugins (0.3.2)

    cocoapods-trunk (0.4.1, 0.2.0)

    cocoapods-try (0.4.2)
5.3 移除程序包
$ sudo gem uninstall cocoapods -v 0.35.0

输出
Successfully uninstalled cocoapods-0.35.0

$ sudo gem uninstall cocoapods-core -v 0.35.0

输出
Successfully uninstalled cocoapods-core-0.35.0

然后安装指定版本的Cocoapods

$ sudo gem install cocoapods -v 0.34.4

安装成功后

$ pod --version

输出

0.34.1
0 0 vote
Article Rating
Subscribe
提醒
guest
1 评论
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
1
0
Would love your thoughts, please comment.x
()
x