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

参考文档:

  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

推荐阅读更多精彩内容