美文网首页iOS知识收集
使用Pods和自定义静态库实现多工程联编

使用Pods和自定义静态库实现多工程联编

作者: 奔跑的码农 | 来源:发表于2015-11-11 21:47 被阅读2543次

     近来随着公司项目开发的深入,项目的规范也就越来越高了,为了更加方便的管理自定义静态库与pods之间的联系,好好的研究了一番。

    1.首先就是创建一个静态库,命名为Mark(这个随便你自己怎么定义)。

    2.创建一个实例工程,(也就是你需要开发的工程 或者是你已经创建好了的)。

    3.书写pod file文件。(非常关键,因为格式有时候会造成很多的坑)

    workspace ‘MarkSpace’//需要生成workspace的名称

    xcodeproj ‘Mark/Mark.xcodeproj'//静态库的名称

    xcodeproj ‘MarkDemo/MarkDemo.xcodeproj'//实例工程名称

    target :Mark do//静态库需要引入的三方库

    platform :ios, '7.0'

    pod 'AFNetworking'

    xcodeproj ‘Mark/Mark.xcodeproj'

    end

    target :MarkDemo do//实例工程需要引入的三方库

    platform :ios, '7.0'

    pod 'AFNetworking'

    xcodeproj ‘MarkDemo/MarkDemo.xcodeproj'

    end

    4.0执行pod install。(确保你的podfile文件,静态工程文件,和你的demo在同一工程目录下)

    执行成功之后我的目录是这样的。

    5.将自定义的静态库引入到主工程目录中去。

    首先在Build Phases/Link Binary with Libraries中自定义的静态库添加进来。添加完成后我的是这样的。

    下一步就是将静态库的目录引用进来,在主工程的Target/Build Settings /User Header SearchPaths中添加$(BUILT_PRODUCTS_DIR),并且选择递归引用 也就是(recursive)。

    好的。这样就大功告成了。你就可以随便的在工程中引用三方库和你自定义的静态库中的文件了。

    结语:

    现在多工程联编已经是企业级应用的必备了,不断可以灵活的应用自己的静态库,也能随时的更新pods提供的三方库,让项目管理起来非常的方便。

    附:pod install 加载慢的问题

    最近使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动

    原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:

    pod install --verbose --no-repo-update

    pod update --verbose --no-repo-update

    出现[!] Unable to find a pod with name matching `Af' 错误时,解决方案如下:

    http://stackoverflow.com/questions/21342574/cocoapods-error-to-install-search-pods


    相关文章

      网友评论

      • zzm1013:我也遇到这样的问题。Unable to find host target(s) for LS-Mark. Please add the host targets for the embedded targets to the Podfile.
        Certain kinds of targets require a host target. A host target is a "parent" target which embeds a "child" target. These are example types of targets that need a host target:
        - Framework
        - App Extension
        - Watch OS 1 Extension
        - Messages Extension (except when used with a Messages Application)知道怎么改吗
      • xe2:你好!pod install后静态库
        Unable to find host target(s) for LS-Mark. Please add the host targets for the embedded targets to the Podfile.
        Certain kinds of targets require a host target. A host target is a "parent" target which embeds a "child" target. These are example types of targets that need a host target:
        - Framework
        - App Extension
        - Watch OS 1 Extension
        - Messages Extension (except when used with a Messages Application)知道怎么改吗
        zzm1013:@zzm1013 愁死了
        zzm1013:我也遇到同样的问题,您现在解决了吗?
      • iEason_:请问如果出现如下情景该如何解决呢。我项目中存在一个pods以及我的自定义静态库1还有一个项目工程,现在由于需求 需要在增加一个 自定义静态库2 但是这个静态库2中又需要引用静态库1的文件 这种情形有遇到吗?
        奔跑的码农:@BrightFuture 一般静态库中都是些封装好的东西 要是静态库中还需要引用主工程中内容的做法不可取得 应该避免
        BrightFuture:@17e3e8486985 我也是,还有一种情况,静态库1中如果有需要依赖主工程中的内容,你有找到解决的方案吗?我目前看到的很多方案都是走运行时
      • 梁景华Joshua_:你好,请问下实例工程里面如何调用静态库工程的类文件?(静态库工程的类有什么要求吗)?我对这个不太了解,希望能指导下,谢谢
        奔跑的码农:@时光雕琢 import你要用的文件就行
        时光雕琢:请问下静态库怎么引用cocopads里面的库呢?
        八月BLUE:@梁景华Joshua_ #import"Mark/Mark.h"
      • wFeng:感谢!

      本文标题:使用Pods和自定义静态库实现多工程联编

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