美文网首页超棒文集OC知识点
CocoaPods的安装与使用

CocoaPods的安装与使用

作者: CrespoXiao | 来源:发表于2015-07-20 10:12 被阅读3601次

    CocoaPods是一个负责管理iOS项目中第三方开源代码的工具。

    1.CocoaPods的安装

    需要用到ruby,Mac系统自带ruby,但如果不是最新的系统,最好更新一下。

    ruby的软件源rubygems.org被墙了,所以先换一下源,命令行下依次执行3条命令(https://ruby.taobao.org)

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

    $ gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/

    $ gem sources -l

    然后升级gem

    $ sudo gem update --system

    完了就开始安装CocoaPods

    $ sudo gem install cocoapods

    $ pod setup

    第二条命令执行的时候会比较耗时,这个时候要去把整个specs仓库clone一下,下载到 ~/.cocoapods里;

    cd  到该目录里,用du -sh *命令来查看文件大小,每隔一会看看确认是否在下载。

    出现Setting up CocoaPods master repo,半天没有任何反应,是因为方校长设计的防火墙阻挡了cocoapods.org。

    gitcafe和oschina都是国内的服务器,可以用它们CocoaPods索引库的镜像https://gitcafe.com/akuandev/Specs.git

    http://git.oschina.net/akuandev/Specs.git

    你也可以在公司内网fork一份,目的主要是方便做私有pod,不过要保证fork出来的specs和cocoapods原project(上游项目)定期同步更新(可以用脚本去做)。

    https://help.github.com/articles/syncing-a-fork/

    $ pod repo remove master

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

    $ pod repo update

    2.CocoaPods的使用

    (1)在终端shell中cd 来到你要管理的项目,运行:pod install 你的工程就多了个xworkspace文件夹,以后用这个打开工程

    (2)添加第三方库

    搜索一个开源库

    $ pod search AFNetworking

    在工程目录里建一个Podfile文件

    $ vim Podfile

    platform :ios,'6.0'

    pod 'ASIHTTPRequest', '~> 1.8.2'

    可以指定target

    target 'OneTravelTests' do

    pod 'Specta'

    end

    对于extension,需要特别设置一下,不然编译出错

    post_install do |installer_representation|

        installer_representation.project.targets.each do |target|

            target.build_configurations.each do |config|

                config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'

                config.build_settings['APPLICATION_EXTENSION_API_ONLY'] = 'NO'

            end

        end

    end

    编辑完了保存,运行pod update。

    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)安装一个xcode插件管理工具  http://alcatraz.io,执行 curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh  完了打开xcode->window->package manger 搜cocoapods这个插件进行安装。

    (3)工程在模拟器上编译报错,不支持i386,Cocoapods确实还不支持64位模拟器,解决办法:

    http://stackoverflow.com/questions/19213782/undefined-symbols-for-architecture-arm64

    其实就2条,1.build active architecture only 在debug的时候设置成YES,不要在release的时候用模拟器    2.other linker flags 加一个 $(inherited)

    (4)用到svn,git多人协作的话,Pods/这个文件夹不要上传,.../Pods/Pods.xcodeproj  ...Pods/Target Support Files/这些每次编译都会改动从而引起合并代码的时候冲突。

    (5)更多看这里:

    https://github.com/CocoaPods/CocoaPods/issues?q=is%3Aissue+is%3Aopen+sort%3Acomments-desc

    相关文章

      网友评论

      • darnel:请问下, extension中报错说找不到pod中的库。但是我没有使用,可以指定extension不使用pod,或者其他方法吗?
        CrespoXiao:@darnel 放到pod file

        post_install do |installer_representation|
        installer_representation.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
        config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
        config.build_settings['APPLICATION_EXTENSION_API_ONLY'] = 'NO'
        end
        end
        end
        K__M:@darnel no such file or directory: '/Users/wky/Desktop/5 /GXB/Pods/Target Support Files/MJExtension/MJExtension-dummy.m' 总是报这样的错
        K__M:@darnel 解决了吗? 我也遇到了这样的问题? 求解决, 谢谢

      本文标题:CocoaPods的安装与使用

      本文链接:https://www.haomeiwen.com/subject/mmjpqttx.html