zoukankan      html  css  js  c++  java
  • CocoaPods 学习

    参考文章

    git address

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

    二、安装与更新

      1、安装

    $ sudo gem install cocoapods
    $ pod setup  // cocoaPods 将信息下载到 ~/.cocoaPods 目录下

      2、更新

    $ sudo gem update cocoapod

      // 如果出现下载很慢,可以到 github 上下载 cocoapods,解压后文件夹重命名为 master,并拷贝到 ~/.cocoapods 目录下。

      3、安装或更新过程发生连接错误

        需要改变 RubyGems 的源地址为 "https://gems.ruby-china.org/",源地址介绍文章

        3.1、更新 Ruby 版本,建议 2.6.x 以上

    # 第一步 
    $ sudo gem update --system # 这里请翻墙一下,如果执行这步已经发生连接错误的话,可先执行 "gem sources --add https://gems.ruby-china.org/ --remove https://ruby.taobao.org/" 替换掉源
    
    #第二步
    $ gem -v

        在第一步执行的时候发生了错误,

     

        解决方法,第一步指令替换成 

    $ sudo gem update -n /usr/local/bin --system
    

      3.2、替换掉 Ruby 源

    $ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
    $ gem sources -l    # 确保只有 gems.ruby-china.org

      3.3、执行 "sudo gem install cocoapods" 发生错误

      解决方法,指令改为

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

      

    三、运用到现有的项目中使用

      a) 新建一个名为 Podfile 的文件,以如下格式,将依赖的库名字依次列在文件中即可。(可以使用 “$ pod search xxxxx” 来查看 library 的信息。)

    platform :ios, '5.0'
    
    target "XXXX-ProjectTargetName" do
    pod 'Reachability', '~> 3.1.1'
    pod 'ASIHTTPRequest', '~> 1.8.1'
    end
    

      

    对于多个 project,多个 target 的时候

    platform :ios, '7.0'
    
    target "Library1" do
    
    pod 'FMDB', '~> 2.3'
    pod 'SSZipArchive', '~> 0.3.2'
    
    end
    
    
    target "Library2" do
    
    pod 'FMDB', '~> 2.3'
    pod 'SSZipArchive', '~> 0.3.2'
    
    end
    

    或者

    platform :ios, '7.0'
    
    pod 'FMDB', '~> 2.3'
    pod 'SSZipArchive', '~> 0.3.2'
    
    link_with 'Library', 'Library2'

     

        保存时候格式需要注意,取消 checkbox 的钩。

      b) 将刚才编辑好德 Podfile 文件放到项目的根目录下,并在 Terminal 执行

    $ cd Project Root Path
    $ pod install

      

      如果 Profile 的编辑没有格式错误,即可见到以下输出,表明在 Podfile 声明的第三方 library 已经下载并且配置好了编译参数和依赖。

    Analyzing dependencies
    Downloading dependencies
    Installing ASIHTTPRequest (1.8.1)
    Installing Reachability (3.1.1)
    Generating Pods project
    Integrating client project
    
    [!] From now on use `Test.xcworkspace`.
    [deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.

      cocoaPods 会在根目录下生成以下文件:

        "Podfile.lock" 文件

        "Pods" 文件夹

        "xxx.xcworkspace"

      注意:

      • 以后请通过 xxx.xcworkspace 来打开工程
      • 每次更改过 Podfile 文件,请重新执行 “pod install”
      • 用 git 做版本控制的时候,不要把 Podfile.lock 放到 .gitignore 中。(原因 Podfile.lock 会锁定当前所需第三方 library 的版本,之后如果多次执行 "pod install" 不会更改版本,只有执行 "pod update" 才会更改 Podfile.lock。)

      使用的时候用 

     #import <ASIHTTPRequest/ASIHTTPRequest.h>

     

    4、terminal 中常用命令

      查找框架: pod search xxx

      第三方库更新: 打开Podfile配置文件,添加或删除配置文件中的第三方库引用,保存退出之后,再运行:pod update 或者 pod install

     

    5、总结原理:

      cocoaPods 将所有的依赖库都放到另一个名为Pods项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。发现的一些技术细节有:

    1. Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。
    2. 对于资源文件,CocoaPods提供了一个名为Pods-resources.sh的bash脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。
    3. CocoaPods通过一个名为Pods.xcconfig的文件来在编译时设置所有的依赖和参数。
  • 相关阅读:
    Java生产环境线上栈故障排查问题(COPY)
    Java集合HashMap,List底层
    图算法--染色法判定二图
    图算法--kruskal
    图算法--最小生成树prim
    图算法--判负环
    图算法--floyd
    图算法--spfa
    图算法--bellman-ford (nm)
    图算法--堆优化版dijkstra
  • 原文地址:https://www.cnblogs.com/eileenleung/p/3551216.html
Copyright © 2011-2022 走看看