美文网首页
CocoaPods安装与使用

CocoaPods安装与使用

作者: CoderCurtis | 来源:发表于2017-06-05 15:47 被阅读74次

    CocoaPods是iOS项目的依赖管理工具。使用它不需要我们自己去下载第三方开源库的代码并且放进自己的项目中,它会将第三方开源库的代码下载下来并且设置好相应的系统依赖和编译参数。

    安装
    • 设置ruby源: ruby的软件源rubygems.org因为使用亚马逊的云服务,在国内不能使用,所以要更换ruby源。

    打开终端:

    terminal.png
    • 查看当前ruby源:
    gem sources
    

    结果:


    gemsources.png

    当前我的mac上的ruby源为:

    https://gems.ruby-china.org/
    

    我这是更换后的,如果你的是:

    https://rubygems.org/
    

    需要更换为前者。

    • 移除当前ruby源:
    gem sources --remove https://rubygems.org/
    
    gemsourcesremove.png
    • 添加新的ruby源:
    gem sources -a https://gems.ruby-china.org/
    
    gemsourcesa.png

    再次查看当前ruby源,已经更换:

    curren.png
    • 查看当前gem版本:
    gem -v
    
    version.png
    • 如果gem版本过低,可以尝试以下方式升级:

    使用命令:

    gem update --system
    

    报错:

    macdeMacBook-Pro:~ mac$ gem update --system
    Updating rubygems-update
    ERROR:  While executing gem ... (Gem::FilePermissionError)
        You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
    

    这个暂时没理会,换个命令:

    sudo gem update --system
    

    仍然报错:

    macdeMacBook-Pro:~ mac$ sudo gem update --system
    Password:
    Updating rubygems-update
    ERROR:  While executing gem ... (OpenSSL::SSL::SSLError)
        hostname "upyun.gems.ruby-china.org" does not match the server certificate
    

    Password:处我输入的为开机密码,不清楚到底是不是。

    接着我又执行一次刚才的命令:sudo gem update --system

    然后,升级成功了!

    Updating rubygems-update
    Fetching: rubygems-update-2.6.7.gem (100%)
    Successfully installed rubygems-update-2.6.7
    Parsing documentation for rubygems-update-2.6.7
    Installing ri documentation for rubygems-update-2.6.7
    Installing darkfish documentation for rubygems-update-2.6.7
    Installing RubyGems 2.6.7
    RubyGems 2.6.7 installed
    Parsing documentation for rubygems-2.6.7
    Installing ri documentation for rubygems-2.6.7
    
    === 2.6.7 / 2016-09-26
    
    Bug fixes:
    
    * Install native extensions in the correct location when using the
      `--user-install` flag. Pull request #1683 by Noah Kantrowitz.
    * When calling `Gem.sources`, load sources from `configuration`
      if present, else use the default sources. Pull request #1699
      by Luis Sagastume.
    * Fail gracefully when attempting to redirect without a Location.
      Pull request #1711 by Samuel Giddins.
    * Update vendored Molinillo to 0.5.1. Pull request #1714 by
      Samuel Giddins.
    
    === 2.6.6 / 2016-06-22
    
    Bug fixes:
    
    * Sort installed versions to make sure we install the latest version when
      running `gem update --system`. As a one-time fix, run
      `gem update --system=2.6.6`. Pull request #1601 by David Radcliffe.
    
    === 2.6.5 / 2016-06-21
    
    Minor enhancements:
    
    * Support for unified Integer in Ruby 2.4. Pull request #1618
      by SHIBATA Hiroshi.
    * Update vendored Molinillo to 0.5.0 for performance improvements.
      Pull request #1638 by Samuel Giddins.
    
    Bug fixes:
    
    * Raise an explicit error if Signer#sign is called with no certs. Pull
      request #1605 by Daniel Berger.
    * Update `update_bundled_ca_certificates` utility script for directory
      nesting. Pull request #1583 by James Wen.
    * Fix broken symlink support in tar writer (+ fix broken test). Pull
      request #1578 by Cezary Baginski.
    * Remove extension directory before (re-)installing. Pull request #1576
      by Jeremy Hinegardner.
    * Regenerate test CA certificates with appropriate extensions. Pull
      request #1611 by rhenium.
    * Rubygems does not terminate on failed file lock when not superuser. Pull
      request #1582 by Ellen Marie Dash.
    * Fix tar headers with a 101 character name. Pull request #1612 by Paweł
      Tomulik.
    * Add Gem.platform_defaults to allow implementations to override defaults.
      Pull request #1644 by Charles Oliver Nutter.
    * Run Bundler tests on TravisCI. Pull request #1650 by Samuel Giddins.
    
    === 2.6.4 / 2016-04-26
    
    Minor enhancements:
    
    * Use Gem::Util::NULL_DEVICE instead of hard coded strings. Pull request #1588
      by Chris Charabaruk.
    * Use File.symlink on MS Windows if supported. Pull request #1418
      by Nobuyoshi Nakada.
    
    Bug fixes:
    
    * Redact uri password from error output when gem fetch fails. Pull request
      #1565 by Brian Fletcher.
    * Suppress warnings. Pull request #1594 by Nobuyoshi Nakada.
    * Escape user-supplied content served on web pages by `gem server` to avoid
      potential XSS vulnerabilities. Samuel Giddins.
    
    === 2.6.3 / 2016-04-05
    
    Minor enhancements:
    
    * Lazily calculate Gem::LoadError exception messages. Pull request #1550
      by Aaron Patterson.
    * New fastly cert. Pull request #1548 by David Radcliffe.
    * Organize and cleanup SSL certs. Pull request #1555 by James Wen.
    * [RubyGems] Make deprecation message for paths= more helpful. Pull
      request #1562 by Samuel Giddins.
    * Show default gems when using "gem list". Pull request #1570 by Luis
      Sagastume.
    
    Bug fixes:
    
    * Stub ordering should be consistent regardless of how cache is populated.
      Pull request #1552 by Aaron Patterson.
    * Handle cases when the @@stubs variable contains non-stubs. Pull request
      #1558 by Per Lundberg.
    * Fix test on Windows for inconsistent temp path. Pull request #1554 by
      Hiroshi Shirosaki.
    * Fix `Gem.find_spec_for_exe` picks oldest gem. Pull request #1566 by
      Shinichi Maeshima.
    * [Owner] Fallback to email and userid when owner email is missing. Pull
      request #1569 by Samuel Giddins.
    * [Installer] Handle nil existing executable. Pull request #1561 by Samuel
      Giddins.
    * Allow two digit version numbers in the tests. Pull request #1575 by unak.
    
    === 2.6.2 / 2016-03-12
    
    Bug fixes:
    
    * Fix wrong version of gem activation for bin stub. Pull request #1527 by
      Aaron Patterson.
    * Speed up gem activation failures. Pull request #1539 by Aaron Patterson.
    * Fix platform sorting in the resolver. Pull request #1542 by Samuel E.
      Giddins.
    * Ensure we unlock the monitor even if try_activate throws. Pull request
      #1538 by Charles Oliver Nutter.
    
    
    === 2.6.1 / 2016-02-28
    
    Bug fixes:
    
    * Ensure `default_path` and `home` are set for paths. Pull request #1513
      by Aaron Patterson.
    * Restore but deprecate support for Array values on `Gem.paths=`. Pull
      request #1514 by Aaron Patterson.
    * Fix invalid gem file preventing gem install from working. Pull request
      #1499 by Luis Sagastume.
    
    === 2.6.0 / 2016-02-26
    
    Minor enhancements:
    
    * RubyGems now defaults the `gem push` to the gem's "allowed_push_host"
      metadata setting.  Pull request #1486 by Josh Lane.
    * Update bundled Molinillo to 0.4.3. Pull request #1493 by Samuel E. Giddins.
    * Add version option to gem open command. Pull request #1483 by Hrvoje
      Šimić.
    * Feature/add silent flag. Pull request #1455 by Luis Sagastume.
    * Allow specifying gem requirements via env variables. Pull request #1472
      by Samuel E. Giddins.
    
    Bug fixes:
    
    * RubyGems now stores `gem push` credentials under the host you signed-in for.
      Pull request #1485 by Josh Lane.
    * Move `coding` location to first line. Pull request #1471 by SHIBATA
      Hiroshi.
    * [PathSupport] Handle a regexp path separator. Pull request #1469 by
      Samuel E. Giddins.
    * Clean up the PathSupport object. Pull request #1094 by Aaron Patterson.
    * Join with File::PATH_SEPARATOR in Gem.use_paths. Pull request #1476 by
      Samuel E. Giddins.
    * Handle when the gem home and gem path arent set in the config file. Pull
      request #1478 by Samuel E. Giddins.
    * Terminate TimeoutHandler. Pull request #1479 by Nobuyoshi Nakada.
    * Remove redundant cache. Pull request #1482 by Eileen M. Uchitelle.
    * Freeze `Gem::Version@segments` instance variable. Pull request #1487 by
      Ben Dean.
    * Gem cleanup is trying to uninstall gems outside GEM_HOME and reporting
      an error after it tries. Pull request #1353 by Luis Sagastume.
    * Avoid duplicated sources. Pull request #1489 by Luis Sagastume.
    * Better description for quiet flag. Pull request #1491 by Luis Sagastume.
    * Raise error if find_by_name returns with nil. Pull request #1494 by
      Zoltán Hegedüs.
    * Find_files only from loaded_gems when using gemdeps. Pull request #1277
      by Michal Papis.
    
    
    ------------------------------------------------------------------------------
    
    RubyGems installed the following executables:
        /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/gem
    
    Ruby Interactive (ri) documentation was installed. ri is kind of like man 
    pages for ruby libraries. You may access it like this:
      ri Classname
      ri Classname.class_method
      ri Classname#instance_method
    If you do not wish to install this documentation in the future, use the
    --no-document flag, or set it as the default in your ~/.gemrc file. See
    'gem help env' for details.
    
    RubyGems system software updated
    

    终端过程:

    macdeMacBook-Pro:~ mac$ gem sources
    *** CURRENT SOURCES ***
    
    https://rubygems.org/
    macdeMacBook-Pro:~ mac$ gem sources --remove https://rubygems.org/
    https://rubygems.org/ removed from sources
    macdeMacBook-Pro:~ mac$ gem sources -a https://gems.ruby-china.org/
    https://gems.ruby-china.org/ added to sources
    macdeMacBook-Pro:~ mac$ gem sources
    *** CURRENT SOURCES ***
    
    https://gems.ruby-china.org/
    macdeMacBook-Pro:~ mac$ gem -v
    2.0.14.1
    macdeMacBook-Pro:~ mac$ ruby -v
    ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]
    macdeMacBook-Pro:~ mac$ gem update --system
    Updating rubygems-update
    ERROR:  While executing gem ... (Gem::FilePermissionError)
        You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
    macdeMacBook-Pro:~ mac$ sudo gem update --system
    Password:
    Updating rubygems-update
    ERROR:  While executing gem ... (OpenSSL::SSL::SSLError)
        hostname "upyun.gems.ruby-china.org" does not match the server certificate
    macdeMacBook-Pro:~ mac$ sudo gem update --system
    Updating rubygems-update
    Fetching: rubygems-update-2.6.7.gem (100%)
    Successfully installed rubygems-update-2.6.7
    Parsing documentation for rubygems-update-2.6.7
    Installing ri documentation for rubygems-update-2.6.7
    Installing darkfish documentation for rubygems-update-2.6.7
    Installing RubyGems 2.6.7
    RubyGems 2.6.7 installed
    Parsing documentation for rubygems-2.6.7
    Installing ri documentation for rubygems-2.6.7
    
    === 2.6.7 / 2016-09-26
    
    Bug fixes:
    
    * Install native extensions in the correct location when using the
      `--user-install` flag. Pull request #1683 by Noah Kantrowitz.
    * When calling `Gem.sources`, load sources from `configuration`
      if present, else use the default sources. Pull request #1699
      by Luis Sagastume.
    * Fail gracefully when attempting to redirect without a Location.
      Pull request #1711 by Samuel Giddins.
    * Update vendored Molinillo to 0.5.1. Pull request #1714 by
      Samuel Giddins.
    
    === 2.6.6 / 2016-06-22
    
    Bug fixes:
    
    * Sort installed versions to make sure we install the latest version when
      running `gem update --system`. As a one-time fix, run
      `gem update --system=2.6.6`. Pull request #1601 by David Radcliffe.
    
    === 2.6.5 / 2016-06-21
    
    Minor enhancements:
    
    * Support for unified Integer in Ruby 2.4. Pull request #1618
      by SHIBATA Hiroshi.
    * Update vendored Molinillo to 0.5.0 for performance improvements.
      Pull request #1638 by Samuel Giddins.
    
    Bug fixes:
    
    * Raise an explicit error if Signer#sign is called with no certs. Pull
      request #1605 by Daniel Berger.
    * Update `update_bundled_ca_certificates` utility script for directory
      nesting. Pull request #1583 by James Wen.
    * Fix broken symlink support in tar writer (+ fix broken test). Pull
      request #1578 by Cezary Baginski.
    * Remove extension directory before (re-)installing. Pull request #1576
      by Jeremy Hinegardner.
    * Regenerate test CA certificates with appropriate extensions. Pull
      request #1611 by rhenium.
    * Rubygems does not terminate on failed file lock when not superuser. Pull
      request #1582 by Ellen Marie Dash.
    * Fix tar headers with a 101 character name. Pull request #1612 by Paweł
      Tomulik.
    * Add Gem.platform_defaults to allow implementations to override defaults.
      Pull request #1644 by Charles Oliver Nutter.
    * Run Bundler tests on TravisCI. Pull request #1650 by Samuel Giddins.
    
    === 2.6.4 / 2016-04-26
    
    Minor enhancements:
    
    * Use Gem::Util::NULL_DEVICE instead of hard coded strings. Pull request #1588
      by Chris Charabaruk.
    * Use File.symlink on MS Windows if supported. Pull request #1418
      by Nobuyoshi Nakada.
    
    Bug fixes:
    
    * Redact uri password from error output when gem fetch fails. Pull request
      #1565 by Brian Fletcher.
    * Suppress warnings. Pull request #1594 by Nobuyoshi Nakada.
    * Escape user-supplied content served on web pages by `gem server` to avoid
      potential XSS vulnerabilities. Samuel Giddins.
    
    === 2.6.3 / 2016-04-05
    
    Minor enhancements:
    
    * Lazily calculate Gem::LoadError exception messages. Pull request #1550
      by Aaron Patterson.
    * New fastly cert. Pull request #1548 by David Radcliffe.
    * Organize and cleanup SSL certs. Pull request #1555 by James Wen.
    * [RubyGems] Make deprecation message for paths= more helpful. Pull
      request #1562 by Samuel Giddins.
    * Show default gems when using "gem list". Pull request #1570 by Luis
      Sagastume.
    
    Bug fixes:
    
    * Stub ordering should be consistent regardless of how cache is populated.
      Pull request #1552 by Aaron Patterson.
    * Handle cases when the @@stubs variable contains non-stubs. Pull request
      #1558 by Per Lundberg.
    * Fix test on Windows for inconsistent temp path. Pull request #1554 by
      Hiroshi Shirosaki.
    * Fix `Gem.find_spec_for_exe` picks oldest gem. Pull request #1566 by
      Shinichi Maeshima.
    * [Owner] Fallback to email and userid when owner email is missing. Pull
      request #1569 by Samuel Giddins.
    * [Installer] Handle nil existing executable. Pull request #1561 by Samuel
      Giddins.
    * Allow two digit version numbers in the tests. Pull request #1575 by unak.
    
    === 2.6.2 / 2016-03-12
    
    Bug fixes:
    
    * Fix wrong version of gem activation for bin stub. Pull request #1527 by
      Aaron Patterson.
    * Speed up gem activation failures. Pull request #1539 by Aaron Patterson.
    * Fix platform sorting in the resolver. Pull request #1542 by Samuel E.
      Giddins.
    * Ensure we unlock the monitor even if try_activate throws. Pull request
      #1538 by Charles Oliver Nutter.
    
    
    === 2.6.1 / 2016-02-28
    
    Bug fixes:
    
    * Ensure `default_path` and `home` are set for paths. Pull request #1513
      by Aaron Patterson.
    * Restore but deprecate support for Array values on `Gem.paths=`. Pull
      request #1514 by Aaron Patterson.
    * Fix invalid gem file preventing gem install from working. Pull request
      #1499 by Luis Sagastume.
    
    === 2.6.0 / 2016-02-26
    
    Minor enhancements:
    
    * RubyGems now defaults the `gem push` to the gem's "allowed_push_host"
      metadata setting.  Pull request #1486 by Josh Lane.
    * Update bundled Molinillo to 0.4.3. Pull request #1493 by Samuel E. Giddins.
    * Add version option to gem open command. Pull request #1483 by Hrvoje
      Šimić.
    * Feature/add silent flag. Pull request #1455 by Luis Sagastume.
    * Allow specifying gem requirements via env variables. Pull request #1472
      by Samuel E. Giddins.
    
    Bug fixes:
    
    * RubyGems now stores `gem push` credentials under the host you signed-in for.
      Pull request #1485 by Josh Lane.
    * Move `coding` location to first line. Pull request #1471 by SHIBATA
      Hiroshi.
    * [PathSupport] Handle a regexp path separator. Pull request #1469 by
      Samuel E. Giddins.
    * Clean up the PathSupport object. Pull request #1094 by Aaron Patterson.
    * Join with File::PATH_SEPARATOR in Gem.use_paths. Pull request #1476 by
      Samuel E. Giddins.
    * Handle when the gem home and gem path arent set in the config file. Pull
      request #1478 by Samuel E. Giddins.
    * Terminate TimeoutHandler. Pull request #1479 by Nobuyoshi Nakada.
    * Remove redundant cache. Pull request #1482 by Eileen M. Uchitelle.
    * Freeze `Gem::Version@segments` instance variable. Pull request #1487 by
      Ben Dean.
    * Gem cleanup is trying to uninstall gems outside GEM_HOME and reporting
      an error after it tries. Pull request #1353 by Luis Sagastume.
    * Avoid duplicated sources. Pull request #1489 by Luis Sagastume.
    * Better description for quiet flag. Pull request #1491 by Luis Sagastume.
    * Raise error if find_by_name returns with nil. Pull request #1494 by
      Zoltán Hegedüs.
    * Find_files only from loaded_gems when using gemdeps. Pull request #1277
      by Michal Papis.
    
    
    ------------------------------------------------------------------------------
    
    RubyGems installed the following executables:
        /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/gem
    
    Ruby Interactive (ri) documentation was installed. ri is kind of like man 
    pages for ruby libraries. You may access it like this:
      ri Classname
      ri Classname.class_method
      ri Classname#instance_method
    If you do not wish to install this documentation in the future, use the
    --no-document flag, or set it as the default in your ~/.gemrc file. See
    'gem help env' for details.
    
    RubyGems system software updated
    
    • 下载命令:
    sudo gem install cocoapods
    

    报错:

    macdeMacBook-Pro:~ mac$ sudo gem install cocoapods
    Password:
    Fetching: nanaimo-0.2.3.gem (100%)
    Successfully installed nanaimo-0.2.3
    Fetching: colored2-3.1.2.gem (100%)
    Successfully installed colored2-3.1.2
    Fetching: claide-1.0.1.gem (100%)
    Successfully installed claide-1.0.1
    Fetching: CFPropertyList-2.3.5.gem (100%)
    Successfully installed CFPropertyList-2.3.5
    Fetching: xcodeproj-1.4.4.gem (100%)
    ERROR:  While executing gem ... (Errno::EPERM)
        Operation not permitted - /usr/bin/xcodeproj
    

    找到一种解决方法是:
    如果mac系统为OS X EI Capitan可以使用如下命令代替前面的命令执行下载:

    2017年09月29日更新: 电脑系统为High Sierra直接使用以下命令

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

    这里会等待些许时间执行下载:

    macdeMacBook-Pro:~ mac$ sudo gem install -n /usr/local/bin cocoapods
    Successfully installed xcodeproj-1.4.4
    Fetching: ruby-macho-1.1.0.gem (100%)
    Successfully installed ruby-macho-1.1.0
    Fetching: nap-1.1.0.gem (100%)
    Successfully installed nap-1.1.0
    Fetching: molinillo-0.5.7.gem (100%)
    Successfully installed molinillo-0.5.7
    Fetching: gh_inspector-1.0.3.gem (100%)
    Successfully installed gh_inspector-1.0.3
    Fetching: fourflusher-2.0.1.gem (100%)
    Successfully installed fourflusher-2.0.1
    Fetching: escape-0.0.4.gem (100%)
    Successfully installed escape-0.0.4
    Fetching: cocoapods-try-1.1.0.gem (100%)
    Successfully installed cocoapods-try-1.1.0
    Fetching: netrc-0.7.8.gem (100%)
    Successfully installed netrc-0.7.8
    Fetching: cocoapods-trunk-1.2.0.gem (100%)
    Successfully installed cocoapods-trunk-1.2.0
    Fetching: cocoapods-stats-1.0.0.gem (100%)
    Successfully installed cocoapods-stats-1.0.0
    Fetching: cocoapods-search-1.0.0.gem (100%)
    Successfully installed cocoapods-search-1.0.0
    Fetching: cocoapods-plugins-1.0.0.gem (100%)
    Successfully installed cocoapods-plugins-1.0.0
    Fetching: cocoapods-downloader-1.1.3.gem (100%)
    Successfully installed cocoapods-downloader-1.1.3
    Fetching: cocoapods-deintegrate-1.0.1.gem (100%)
    Successfully installed cocoapods-deintegrate-1.0.1
    Fetching: fuzzy_match-2.0.4.gem (100%)
    Successfully installed fuzzy_match-2.0.4
    Fetching: thread_safe-0.3.6.gem (100%)
    Successfully installed thread_safe-0.3.6
    Fetching: tzinfo-1.2.3.gem (100%)
    Successfully installed tzinfo-1.2.3
    Fetching: minitest-5.10.2.gem (100%)
    Successfully installed minitest-5.10.2
    Fetching: i18n-0.8.4.gem (100%)
    Successfully installed i18n-0.8.4
    Fetching: activesupport-4.2.8.gem (100%)
    Successfully installed activesupport-4.2.8
    Fetching: cocoapods-core-1.2.1.gem (100%)
    Successfully installed cocoapods-core-1.2.1
    Fetching: cocoapods-1.2.1.gem (100%)
    Successfully installed cocoapods-1.2.1
    Parsing documentation for xcodeproj-1.4.4
    Installing ri documentation for xcodeproj-1.4.4
    Parsing documentation for ruby-macho-1.1.0
    Installing ri documentation for ruby-macho-1.1.0
    Parsing documentation for nap-1.1.0
    Installing ri documentation for nap-1.1.0
    Parsing documentation for molinillo-0.5.7
    Installing ri documentation for molinillo-0.5.7
    Parsing documentation for gh_inspector-1.0.3
    Installing ri documentation for gh_inspector-1.0.3
    Parsing documentation for fourflusher-2.0.1
    Installing ri documentation for fourflusher-2.0.1
    Parsing documentation for escape-0.0.4
    Installing ri documentation for escape-0.0.4
    Parsing documentation for cocoapods-try-1.1.0
    Installing ri documentation for cocoapods-try-1.1.0
    Parsing documentation for netrc-0.7.8
    Installing ri documentation for netrc-0.7.8
    Parsing documentation for cocoapods-trunk-1.2.0
    Installing ri documentation for cocoapods-trunk-1.2.0
    Parsing documentation for cocoapods-stats-1.0.0
    Installing ri documentation for cocoapods-stats-1.0.0
    Parsing documentation for cocoapods-search-1.0.0
    Installing ri documentation for cocoapods-search-1.0.0
    Parsing documentation for cocoapods-plugins-1.0.0
    Installing ri documentation for cocoapods-plugins-1.0.0
    Parsing documentation for cocoapods-downloader-1.1.3
    Installing ri documentation for cocoapods-downloader-1.1.3
    Parsing documentation for cocoapods-deintegrate-1.0.1
    Installing ri documentation for cocoapods-deintegrate-1.0.1
    Parsing documentation for fuzzy_match-2.0.4
    Installing ri documentation for fuzzy_match-2.0.4
    Parsing documentation for thread_safe-0.3.6
    Installing ri documentation for thread_safe-0.3.6
    Parsing documentation for tzinfo-1.2.3
    Installing ri documentation for tzinfo-1.2.3
    Parsing documentation for minitest-5.10.2
    Installing ri documentation for minitest-5.10.2
    Parsing documentation for i18n-0.8.4
    Installing ri documentation for i18n-0.8.4
    Parsing documentation for activesupport-4.2.8
    unable to convert "\x84" from ASCII-8BIT to UTF-8 for lib/active_support/values/unicode_tables.dat, skipping
    Installing ri documentation for activesupport-4.2.8
    Parsing documentation for cocoapods-core-1.2.1
    Installing ri documentation for cocoapods-core-1.2.1
    Parsing documentation for cocoapods-1.2.1
    Installing ri documentation for cocoapods-1.2.1
    23 gems installed
    
    • 安装:
    pod setup
    

    这里会在Setting up CocoaPods master repo这个状态等待一段时间:

    setup.png

    安装报错:

    error.png

    这可能与网络状态有关系,重试了3次后安装成功。

    completed.png
    使用

    为了更好的说明使用方式: 新建一个工程,名称为CocoaPodsTest,目录结构:

    content.png
    • 在工程根目录下新建一个Podfile文件,名字必须是Podfile。

      • 可以创建文件再放在工程根目录下

      • 终端进入工程根目录,执行touch Podfile命令创建:

    touchpodfile.png podfile.png
    • 打开Podfile文件(命令: open -e Podfile): 第一次打开此文件是个空白页面,其内容格式应该配置为如下样式:
    platform :ios, '7.0'
    
    target 'CocoaPodsTest' do
    
    pod 'AFNetworking', '~> 2.0'
    pod 'Masonry'
    pod 'SDWebImage'
    pod 'MJRefresh'
    
    end
    

    其中platform为配置平台,ios必须是小写且与之前的":"不能有空格,后面的'7.0'为最低iOS SDK版本号,有些第三方库要求最低版本。

    其中AFNetworking后面的2.0为当前要引入的AFNetworking版本,如果不写,默认为该第三方开源库的最新版本。

    • 配置好Podfile文件后保存,在工程根目录下终端执行命令: pod install
    install.png

    绿色文字,提醒我们以后打开项目的时候应该打开生成的CocoaPodsTest.xcworkspace。

    content.png 目录.png

    如果终端中报黄色字体:

    signerror.png
    [!] Smart quotes were detected and ignored in your Podfile. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.
    

    可能是你输入的单引号不正确,检查是不是输入了中文的单引号。


    补充:

    使用第三方库,使用#import引入第三方库头文件时,发现不提醒,command + B编译多次仍不提醒。

    解决方法:
    工程 -> TARGETS -> Build Settings -> Search Paths -> User Header Search Paths:

    双击User Header Search Paths后的空白处,点击"+"号,输入"$(PODS_ROOT)",修改搜索方式为recursive(递归方式查找)。

    header.png

    这样在引入头文件时就会自动联想出第三方库的头文件了。

    删除之前引入的某个第三方库

    在工程中找到Podfile文件,注销掉想要删除的某个开源库

    podfilexcode.png

    ,也可以直接打开Podfile文件,直接删除某个开源库,

    podfile.png

    再在终端中执行一次pod install命令,成功后即可删除开源库。

    delete.png

    PS: mac系统升级为High Sierra后发现CocoaPods不能用了,执行pod install命令时,报错: -bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad ...

    然后我直接照着本教程重新更新ruby版本、重新安装了cocoaPods。


    工程


    参考:

    CocoaPods的安装使用和常见问题

    更新CocoaPods碰到的问题及知识点

    多个TARGETS等请看CocoaPods官方说明

    相关文章

      网友评论

          本文标题:CocoaPods安装与使用

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