CocoaPods

本文对应github地址CocoaPods,如果由于github调整导致资源找不到,请访问github

一、源设置

  1. 查看源,终端输入: sudo gem sources -l
  2. 删除已有的源,如: sudo gem sources --remove https://rubygems.org/
  3. 添加国内镜像,如: sudo gem sources --add https://gems.ruby-china.com
  4. 看是否真的添加上: sudo gem sources -l
  5. 若出现 https://gems.ruby-china.com 则添加成功

二、升级(按需选中执行)

  • 升级homebrew
    1. 查看版本 brew --version
    2. 卸载brew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
    3. 安装brew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    4. 查看版本 brew --version
    5. 安装目录 which brew
  • 升级rvm
    1. 查看版本 rvm --version
    2. 升级RVM curl -L https://get.rvm.io | bash -s stable
    3. 生效RVM source ~/.rvm/scripts/rvm
    4. 重载RVM rvm reload
    5. 查看版本 rvm --version
    6. 安装目录 which rvm
  • 升级ruby
    1. 查看版本 ruby --version
    2. 已知版本 rvm list known
    3. 安装指定 rvm install 2.6.3 或者 rvm install ruby-2.6.3
    4. 已安列别 rvm list
    5. 设定默认 rvm use 2.6.3 --default
    6. 删除多余 rvm remove 2.0.0
    7. 安装目录 which ruby
  • 手动安装ruby
    1. 下载ruby ruby下载地址
    2. 进入解压文件夹执行 ./configure
    3. 编译 sudo make
    4. 安装 sudo make install
  • 升级openssl
    1. 查看版本 openssl version
    2. 升级版本 brew upgrade openssl
    3. 链接新版 brew link openssl --force
    4. 查看版本 openssl version
    5. 安装目录 which openssl
  • 升级gem
    1. 查看版本 gem --version
    2. 升级版本 gem update --system
    3. 查看版本 gem --version
  • 升级cocoaPods
    1. 查看版本 pod --version
    2. 升级版本 sudo gem update cocoapods
    3. 查看版本 pod --version
    4. 安装目录 which pod

三、安装

  • 安装xcodeproj sudo gem install xcodeproj
  • 安装cocoapods sudo gem install cocoapods
  • 安装pre版 sudo gem install cocoapods --pre
  • 执行setup pod setup

四、错误解决

  • 权限问题

    • 添加 sudo

    • 关闭SIP

      1. 重启系统,按住 Command + R 进入恢复模式;
      2. 点击顶部菜单栏 实用工具 中的 终端;
      3. 输入 csrutil disable 来禁用 SIP 保护机制;
      4. 重启系统
      5. 如果想重新开启按上述步骤,然后执行 csrutil enable
  • undefined method 'size' for nil :NilClass(No MethodError)

    • 删除缓存

      1. 查看gem环境: gem env

        显示中找到Gem Paths

        - GEM PATHS:
            - /Library/Ruby/Gems/2.3.0
            - /Users/zsl/.gem/ruby/2.3.0
        
      2. 删除对应目录下cache

        进入第一个目录 cd /usr/local/ruby/lib/ruby/gems/2.1.0
        删除第一个目录cache rm -rf cache
        进入第二个目录 cd /home/vagrant/.gem/ruby/2.1.0
        删除第二个目录cache rm -rf cache

      3. 回到用户目录: cd ~

  • error: RPC failed; curl56SSLRead()returnerror -36

    • 终端输入 sudo xcode-select --print-path 查看Xcode路径
    • 复制路径,执行 sudo xcode-select -switch 路径
      如: sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
    • 执行 sudo rm -fr ~/.cocoapods/repos/master 删除repos目录下master
    • 再执行 pod setup
    • 如果路径是 /Library/Developer/CommandLineTools可切换到Xcode.app路径
  • Operation not permitted - /usr/bin/xcodeproj

    自定义GEM_HOME

    命令行操作:

    • 建立目录 mkdir -p $HOME/Software/ruby
    • 添加路径 export GEM_HOME=$HOME/Software/ruby
    • 执行安装xcodeproj gem install xcodeproj (出现 1 gem installed)
    • 指定目录安装cocoapods sudo gem install -n /usr/local/bin cocoapods
    • 添加路径 export PATH=$PATH:$HOME/Sofware/ruby/bin
    • 查看版本 pod --version
  • RPC failed; curl 56 SSLRead() return error -9806

    终端依次执行下面命令(不包括美元符号)

    $ brew remove git
    $ brew remove curl
    $ brew install openssl
    $ brew install --with-openssl curl
    $ brew install --with-brewed-curl --with-brewed-openssl git
    
  • 搜索不到存在的某个库(特别是刚提交的)

    执行 rm /Users/zsl/Library/Caches/CocoaPods/search_index.json zsl改成自己的

四、使用cocoaPods

  • 进入工程目录 cd ~/DeskTop/TestProject

  • 建立Podfile: touch Podfile (必须Podfile)

  • 搜索三方库:pod search AFNetworking (复制内容 ‘AFNetworking’, ‘~>2.5.3’)

  • 打开Podfile: open -e Podfile 并粘贴复制的内容

  • Podfile格式如下

    # 私有
    source 'http://git.idengyun.com/iOSTeam/KNSpec.git'
    # 三方    
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '8.0'
    
    inhibit_all_warnings!
    
    # 如果@import Charts; 方式导入可以不用use_frameworks!生成库文件
    # use_frameworks!
    
    # 每个工程使用自己的cocopods版本
    # gem 'cocoapods', '1.7.5'
    
    xcodeproj 'TestProject.xcodeproj'
    
    target 'Target1' do
        
        pod 'DDYQRCode', '~> 1.1.1'
    end
    
    target 'Target2' do
        
        pod 'DDYCamera', '~> 1.1.1'
    end
    
    =begin
    这里写多行注释
    =end
    
    
  • 执行 pod install --verbose --no-repo-update

  • 需要更新才用此步骤,更新 pod update --verbose --no-repo-update

五、让自己的库支持cocoapods管理

  • 进入工程目录

  • 建立 .podspec 文件 pod spec create DDYQRCode

  • 填写内容

    Pod::Spec.new do |ddyspec|
        ddyspec.name         = 'DDYQRCode'
        ddyspec.version      = '1.1.1'
        ddyspec.summary      = '二维码/条形码生成'
        ddyspec.homepage     = 'https://github.com/RainOpen/DDYQRCode'
        ddyspec.license      = 'MIT'
        ddyspec.authors      = {'Rain' => '634778311@qq.com'}
        ddyspec.platform     = :ios, '8.0'
        ddyspec.source       = {:git => 'https://github.com/RainOpen/DDYQRCode.git', :tag => ddyspec.version}
        ddyspec.source_files = 'DDYQRCode/DDYQRCode/*.{h,m}'
        ddyspec.resource     = 'DDYQRCode/DDYQRCode/DDYQRCode.bundle'
        ddyspec.requires_arc = false
        # s.framework  = "AVFoundation"
        # s.frameworks = "UIKit", "AVFoundation"
        # s.dependency "JSONKit", "~> 1.4"
    end
    
  • 校验格式是否正确 pod spec lint DDYQRCode.podspec --verbose

  • 注册Trunk pod trunk register 634778311@qq.com 'Rain' --description='iOS' --verbose

  • 邮箱点击链接验证

  • Trunk信息 pod trunk me

  • 多人维护添加成员 pod trunk add-owner ARAnalytics kyle@cocoapods.org

  • 发布到pod Trunck pod trunk push DDYQRCode.podspec

  • 如果必要的话更新pod pod setup

  • 删除单个版本 pod trunk delete PODNAME VERSION

  • 删除所有版本 pod trunk deprecate PODNAME (有提示回复y)

六、卸载指定版本

  • 查看cocoapods相关安装 gem list --local | grep cocoapods
  • 删除相关 sudo gem uninstall cocoapods-deintegrate
  • 移除指定 sudo gem uninstall cocoapods -v 1.1.0

setup加速

  1. gitee镜像
    pod repo remove master   
    pod repo add master https://gitee.com/mirrors/CocoaPods-Specs   
    pod repo update   
    
  2. 清华镜像
```
pod repo remove master   
pod repo add master https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git   
pod repo update   
```
  1. iOS工程如果有Podfile要更改
    source 'https://gitee.com/mirrors/CocoaPods-Specs   
    .git'
    source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'
    

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容