zoukankan      html  css  js  c++  java
  • CocoaPods 命令和使用

    CocoaPods 命令

    pod init 在新建的项目根目录下运行该命令,为当前项目新建podfile文件。
    pod install 下载和配置 podfile里定义的项目依赖(不包括已经下载和配置的项目依赖)。(新建podfile.lock文件)并将每个依赖的版本信息记录在podfile.lock文件中。为项目新建.xcworkspace文件。
    pod outdated 列出比podfile.lock文件中记录的版本要新的项目。
    pod update [依赖项目名称] 将某个依赖更新到最新版本 直接pod udate就把所有依赖都更新到最新版本。

    CocoaPods 使用

    使用CocoaPods的项目比不使用的项目多了四个文件:分别为podfile文件、podfile.lock文件、.xcworkspace文件以及一个Pods文件夹。
    podfile文件为项目的每个target定义(在不同的iOS版本上运行时)所需要的依赖项目。podfile.lock文件用于记录当前项目每个依赖项目的版本,保证该项目的版本信息不被改变。.xcworkspace文件为使用CocoaPods之后项目的启动文件,记录的所有项目文件之间的关系。Pods文件夹是项目的依赖存放的地方。
    在项目中使用CocoaPods的关键在于新建一个profile文件。有了profile文件,其余的使用一句命令就可以自动完成。

    1、新建项目并使用CocoaPods

    在新建的项目根目录下运行该命令pod init命令。自动会在项目根目录下生成profile文件。至此完成了使用CocoaPods的准备工作。
    接下来就是打开profile文件,定义依赖,并且运行pod install命令,就会为项目生成使用上面介绍的podfile.lock文件以及.xcworkspace文件。

    2、已有项目使用CocoaPods

    手动在项目根目录下新建profile文件,定义相关依赖,然后运行pod install,也会生成上述三个文件。

    注意事项

    1、初次使用

    初次使用CocoaPods的pod install命令,CocoaPods自身会自动进行初始化。初始化所做的其实就是把github上的整个依赖库下载到本地路径/users/用户名/.cocoapods/repos/master文件夹下。但是在国内是不行的,被墙,也就是会一直卡在CocoaPods set up master repo这句话上不动了,或者过了很久给你报错说unable to install bla bla bla …这时可以上github上下载(地址:https://github.com/CocoaPods/Specs),然后把下载到的内容自己复制到这个路径下就好了(或者让其他已经用上CocoaPods的人airdrop过来比下载更快,毕竟文件好大。。)。master下文件结构如图:


    上图中,Specs就是整个依赖库。
    2、版本控制
    podfile.lock文件应该始终参与版本控制。

    profile文件的基本语言格式

    1、基本格式

    为某个target定义依赖的格式
    最简单的例子:
    target 'MyApp' do
    pod 'AFNetworking', '~> 3.0'
    pod 'FBSDKCoreKit', '~> 4.9’
    end
    1
    2
    3
    4
    继承大do - end之间定义的依赖项目
    target 'MyApp' do
    pod 'GoogleAnalytics', '~> 3.1'
    target 'MyAppTests' do
    inherit! :search_paths
    pod 'OCMock', '~> 2.0.1'
    end
    end
    1
    2
    3
    4
    5
    6
    7
    上面MyAppTests也依赖GoogleAnalytics。

    定义多个target共享的依赖项目使用abstract_target
    # There are no targets called "Shows" in any Xcode projects
    abstract_target 'Shows' do
    pod 'ShowsKit'
    pod 'Fabric'

    # Has its own copy of ShowsKit + ShowWebAuth
    target 'ShowsiOS' do
    pod 'ShowWebAuth'
    end

    # Has its own copy of ShowsKit + ShowTVAuth
    target 'ShowsTV' do
    pod 'ShowTVAuth'
    end
    end
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    上面的Shows只是个标识,并不存在这样的target。但在它的do-end之间定义的其他的target会共享这个abstract_target所定义的依赖。

    定义项目中所有target都使用的依赖项目
    直接不加任何修饰地定义就可以了,如下:
    pod 'ShowsKit'
    pod 'Fabric'

    # Has its own copy of ShowsKit + ShowWebAuth
    target 'ShowsiOS' do
    pod 'ShowWebAuth'
    end

    # Has its own copy of ShowsKit + ShowTVAuth
    target 'ShowsTV' do
    pod 'ShowTVAuth'
    end
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    2、项目版本的指定
    - 指定某个版本:
    pod ‘项目名称’, ‘版本号’
    如:
    pod 'Objection', '0.9'

    给出版本范围
    符号>、>=、<、<=都能用,
    如:
    '> 0.1'
    符号~>用法见如下例子:
    '~> 0.1.2'
    表示范围为>=0.1.2&&<0.2
    '~> 0.1'
    表示范围为>=0.1&&<1
    3、添加本地项目作为依赖
    如:
    pod 'Alamofire', :path => '~/Documents/Alamofire'

    以上例子全部来自官网。
    ---------------------
    作者:ohyeahhhh
    来源:CSDN
    原文:https://blog.csdn.net/ohyeahhhh/article/details/51878549
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    解决vue项目中出现Invalid Host header问题
    vue、uni-app常用的过滤器
    vue让子组件刷新的方法
    工作中 交换机 相关
    XOR Sum in Assembly
    mysql 秒转化为-时分秒
    springboot项目-声明式事务失效
    DOM 元素 classList 的操作方式
    normalize() 和 splitText()
    js 一道面试题,有关函数执行逻辑
  • 原文地址:https://www.cnblogs.com/itgezhu/p/11087580.html
Copyright © 2011-2022 走看看