iOS开发之多工程联编

作者: niu神DNS | 来源:发表于2016-03-25 17:13 被阅读1427次

    在iOS应用开发中,随着开发 的深入,项目的规范也越来越高,为了更加方便的管理自定义静态库与pods之间的联系,我们通常会在在当前的项目工程文件中引入静态库或者其他工程,并与CocoaPods配合使用.

    在说具体操作前 我们先了解一下这种开发方式的好处

    批注:

    • 在开发中我们经常会有一些用的比较多的技术,比如一些帮助类,一些好的技术封装等等。这样在开发新项目时,就可以把这个工程引入进来,要用里面的功能时就可以直接使用,不用找这个工程copy下,那个工程copy下,最后找不到了就更头疼。只要我们维护好这个静态库工程,以后开发就会省事不少。

    • 其次,现在多工程联编已经是企业级应用的必备了,不但可以灵活的应用自己的静态库,也能随时的更新pods提供的三方库,让项目管理起来非常的方便,所以如果你想进一步的深入开发,多工程联编是你必须掌握的技能

    项目步骤如下:

    1.首先创建一个静态库(或者使用自己已有的静态库)

    注:下面演示中命名为UitilityCore


    2.创建一个项目工程

    注:下面演示中命名为YiDuShiCaiJing

    特别注意:将两个工程最好放在同一个文件夹路径下


    3.书写Podfile文件(这一步非常关键,格式或者路径错误会非常麻烦)

    在Podfile文件里面按照下面的模板来配置

    3.1这边简单提一下CocoaPods 指令

    在当前工程文件(.xcodeproj)所在文件夹下,打开terminal

    1.创建Podfile:

    touch Podfile
    

    2.加载Podfile:

    pod install
    

    3.更新Podfile:

    pod update
    

    附 pod install 加载慢问题

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

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

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

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

    4.执行pod install(请确保路径正确,如有错误请看第2条的特别注意)

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

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

    • 首先在Build Phases/Link Binary with Libraries中自定义的静态库添加进来。

    添加完成后我的是这样的。


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


    5.导入头文件

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

    相关文章

      网友评论

      • MoShengLive:多工程编译有什么劣势吗?比如编译时速度怎么样?快还是慢比之前没有模块化开发情况?,项目工程之间API调用效率问题?还有整个项目性能问题?大神可以说说吗
      • 机器猫的百宝袋:鄙人新人,有些疑问请博主帮忙解答一下:
        像此文章所述,当YiDuShiCaiJing007的target为YiDuShiCaiJing打包生成的.ipa文件,该ipa文件中只有UitilityCore的静态库(libUitilityCore.a)及静态库的头文件,请问UitilityCore的.m文件是否被YiDuShiCaiJing编译到.ipa包中
      • 机器猫的百宝袋:Target/Build Settings /User Header SearchPaths中添加 $(BUILT_PRODUCTS_DIR)
        还是会报,not find 静态库中的文件。但是替换为“../UitilityCore/UitilityCore” 就ok了 不知道博主用 $(BUILT_PRODUCTS_DIR)是怎么编译通过的
        机器猫的百宝袋:@Leo_8c32 你那是文件链接不对,还是文件物理地址中就不存在
        816c3fa4865d:@机器猫的百宝袋 你好,我刚接手一个2014年的项目,也是有很多个target 然后运行在Xcode8上也是出现了找不到文件的报错,试过很多方法都跑不起来?该怎么解决?
      • 碧霄问鼎:博主这是和静态库的联编,有实现过多工程:即每一个工程都是一个App的联编吗?
        小怡情ifelse:@碧霄问鼎 哥们 你的这个问题找到相关资料了嘛 非常期待你的回复谢谢了:pray:
        碧霄问鼎:@niu神DNS 谢谢,我要找的是有一个主工程,下面有很多子工程(是 Project 不是 Target),每个子工程都可以单独作为一个App运行。
        niu神DNS:@碧霄问鼎 你是说一个Project 创建多个 target吧,楼主目前还没有遇到过这个需求...不过我记得ShareSDK最新版的Demo好像是这种形式的...推荐给你一篇CocoaChina上的文章,也许可以解决你的问题 http://www.cocoachina.com/ios/20150916/13324.html
      • 88a2dd476199:牛逼轰轰掉咋天
      • 仉隳:牛逼牛逼

      本文标题:iOS开发之多工程联编

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