美文网首页
podfile 依赖同一个库的多种情况

podfile 依赖同一个库的多种情况

作者: 奚山遇白 | 来源:发表于2018-06-21 10:55 被阅读0次

    直接举个🌰
    我们新建一个项目 TestProject,该项目需要依赖AFNetworking和一个第三方库AFramework,不巧的是AFramework也依赖了AFNetworking,更不巧的是AFramework指定了所依赖的AFNetworking的版本号为3.1.0,这个时候pod会怎样来管理AFNetworking呢?具体分为以下几种情况:

    1.我们指定TestProject中依赖的AFNetworking的版本号为3.2.1,执行pod install命令

    Analyzing dependencies
    [!] Unable to satisfy the following requirements:
    
    - `AFNetworking (~> 3.2.1)` required by `Podfile`
    - `AFNetworking (= 3.1.0)` required by `AFramework (0.1.5)`
    

    结果如上所示,因为两者版本号不一致,那么就会产生矛盾

    2.我们指定TestProject中依赖的AFNetworking的版本号为3.2.1,先install AFramework然后在执行Podfile的AFNetworking install

    Analyzing dependencies
    [!] Unable to satisfy the following requirements:
    
    - `AFNetworking (~> 3.2.1)` required by `Podfile`
    - `AFNetworking (= 3.1.0)` required by `Podfile.lock`
    
    Specs satisfying the `AFNetworking (~> 3.2.1), AFNetworking (= 3.1.0)` dependency were found, but they required a higher minimum deployment target.
    

    也会因为版本号不一致产生矛盾

    3.在TestProject的podfile中不指定AFNetworking版本,那么会按照AFramework中指定的版本去加载

    localhost: TestProject sunqy$ pod install
    Analyzing dependencies
    Downloading dependencies
    Installing AFNetworking (3.1.0)
    

    正常install

    这个🌰告诫我们,假如我们自己写一个依赖库的话,在该依赖库的podspec中声明依赖时,应避免指定版本号,因为这样很容易造成上述依赖版本不一致导致pod无法管理的情况出现。例如下面就是一种错误的示范:

    pod.png

    另外,pod怎样管理所依赖的静态库/动态库的将在下一篇博客中进行解释,敬请期待。

    相关文章

      网友评论

          本文标题:podfile 依赖同一个库的多种情况

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