美文网首页iOS高手
iOS 在同一个workspace下跨项目文件的相互引用

iOS 在同一个workspace下跨项目文件的相互引用

作者: smile丽语 | 来源:发表于2019-12-21 14:37 被阅读0次

    参考文档:

    1. http://www.pianshen.com/article/6225225685/
    2. https://blog.csdn.net/kangpengpeng1/article/details/79311156

    一. 在同一个workspace下创建多个项目

    1.新建一个workspace工作空间:

    1.png

    将创建的工作空间命名为“xxxx”, 然后将xxxx.xcworkspace保存到项目根目录文件夹(我这里新建项目的根目录为LGWorkspace)

    2.创建多个工程project:

    2.png

    创建一个Demo1项目:

    3.png

    将工程Demo1 添加到上一步创建的workspace中:

    4.png

    同理将工程Demo1 添加到上一步创建的workspace中,

    注意:所有的多个项目与workspace要放在同一目录下。

    5.png

    二. 工程中引入pod管理

    1. 终端命令

    // 进入项目目录
    $cd + 项目根目录
    
    // 创建 Podfile文件
    $touch Podfile
    
    // Podfile文件写完后,接着install
    $pod install
    

    Podfile文件注意点如下:

    # 写在最上面,表示公用
    platform :ios, '10.0'
    
    #  用cocoapods导入OC框架到Swift项目必须写该项
    # use_frameworks!
    
    ## workspace文件名
    workspace 'LGWorkspace.xcworkspace'
    
    ##  主工程路径
    project 'Demo1/Demo1.xcodeproj’
    
    ## 工程路径
    target 'Demo1' do
    project 'Demo1/Demo1.xcodeproj’
    pod 'SVProgressHUD'
    end
    
    ##  工程路径
    target 'Demo2' do
    project 'Demo2/Demo2.xcodeproj’
    pod 'MJRefresh'
    end
    

    2. 项目框架截图如下:

    6.png

    三、Demo1和Demo2文件的相互引用

    如果要在项目Demo1中引用Demo2中的文件,则必须要修改路径。在Demo1的Build Settings 里找到Header Search Paths,添加一项(SRCROOT)/../Demo2(也可以直接将文件夹Demo2拖到里面自动生成路径),并且设置为recursive。(SRCROOT)是当前的工程路径,.. 是返回上一层,然后到TestApp_2文件夹。使用了相对路径,为了是项目移动不会影响这个配置,只要主工程和其他工程的相对位置不变,这里的相对位置是固定在同一个文件夹。

    7.png

    引入工程中的文件时,必须同时引入 .h 和 .m 文件。测试结果:

    8.png

    当Demo1里其他地方也同时调用了Demo2里的方法,则只需要引入.h文件,否则编译失败。

    9.png

    在Demo2里再写一个方法,放在刚才的testFunc方法里调用:

    10.png

    相关文章

      网友评论

        本文标题:iOS 在同一个workspace下跨项目文件的相互引用

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