美文网首页
Objective-C用workspace和cocoapods管

Objective-C用workspace和cocoapods管

作者: 下班不写程序 | 来源:发表于2023-10-11 11:58 被阅读0次

    正常情况下, 每个workspace 只对应一个App project, 等项目庞大之后, 就出现了组件化开发, 一种方案是多组件开发, 只是通过runtime将一个项目拆分多个模块, 每个module只是代码的一个集合; 而另一种的就是一个主文件+多个project形式, 也就是单workspace管理多project. 今天就来介绍下第二种方式的使用, 其他的相关学习可参考:
    CTMediator组件化
    Swift用workspace和cocoapods管理多个project

    1. 创建存放workspace 和 project 的文件夹

    例: ocWorkspace

    2. 构建一个workspace
    构建一个workspace1
    构建一个workspace2

    如图选择构建一个WorkSpace,会生成,xcworkspace文件,一般创建完成后会自动打开WorkSpace工程。打开工程后,会发现什么都没有, 然后我们要添加各个工程(project)。

    3. 创建并添加新工程
    添加新工程
    OC都以完整工程为例

    同时一定要注意路径的选择!!!


    路径选择
    这个时候其实就可以运行aa项目了.
    4. 再创建并添加新工程, 测试同时管理两个, 创建方式一模一样

    或者想在当前worksapce内添加已经创建好的项目, 就在当前的workspace项目中右键->add file


    添加已有项目

    创建好之后, 可以选择不同项目分别运行, 都是ok的, 那两个项目之间如何相互引用呢?

    5. 互相引用

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


    头文件路径配置
    6. 使用

    在aa中使用时, 需要引入头文件.m, 而不是.h, 这里需要注意


    aa中如何使用
    7. 使用cocoapods 管理

    通过终端cd 到当前workspace 路径下
    touch Podfile
    编辑Podfile 文件

    # 平台最低版本
    platform :ios, '10.0'
    
    use_frameworks!
    
    # workspace文件名
    workspace 'OCWorkspace.xcworkspace'
    
    # 主工程路径
    project 'aa/aa.xcodeproj’
    
    target 'aa' do
        project 'aa/aa.xcodeproj’
        # 自己的引用
        # 也可以指定自己的platform
    end
    
    target 'bb' do
        project 'bb/bb.xcodeproj’
        pod 'Masonry'
    end
    

    pod install

    8. project类型为framework 或者Library
    这里以framework为例

    一定要加入引用:aa项目-> target -> General ->Frameworks, Libraries, and Embedded Content -> 添加需要的SDK


    添加引用

    最后在aa的Header Search Paths 设置cc的路径即可。
    引用需要的文件同样是.m的形式。

    结语

    路漫漫其修远兮,吾将上下而求索~

    作者简书

    作者掘金

    作者GitHub

    .End

    相关文章

      网友评论

          本文标题:Objective-C用workspace和cocoapods管

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