Workspace的简单使用, 多个Project之间的关联使用
一、创建Workspace
- 在桌面创建文件夹, 取名
MyWorkspace

在桌面创建文件夹, 取名MyWorkspace
- 打开Xcode, 选择File->New->Workspace...

创建自己的Workspace
- 创建
Workspace取名MyWorkspace, 存放到MyWorkspace文件夹中

image.png
- 打开
MyWorkspace.xcworkspace

image.png
二、管理Project
- 两种添加Project到Workspace的方法
1、创建Project, 在选择存放时添加到Workspace
- 创建Project

File->New->Project
- 选择App

选择App
- 取名TestA

取名TestA
- 添加到
MyWorkspace文件夹中, 并选择Add to: MyWorkspace

选择MyWorkspace
- 这样就将创建的
TestA添加到了MyWorkspace中

创建Project时, 添加到MyWorkspace
2、将已创建的Project添加到Workspace
- 在
MyWorkspace文件夹中创建Project, 取名TestB

TestB
-
打开
MyWorkspace.xcworkspace
image.png 选择
File->Add Files to "MyWorkspace"...

File->Add Files to "MyWorkspace"...
- 选择"TestB文件夹"中的
TestB.xcodeproj

add TestB.xcodeproj
- 这样, 就可以将
TestB添加到MyWorkspace中

TestB添加到MyWorkspace中
三、创建Framework, 并添加到Workspace
1、创建MyFramework
- 选择
File->New->Project, 然后选择Framework

选择`File->New->Project`, 然后选择Framework
- 创建Framework, 并取名
MyFramework, 通过第一种添加方式, 添加到MyWorkspace中

创建MyFramework吗并添加到MyWorkspace中
- 在MyWorkspace中创建
Person类, 并实现类方法+run

创建Person类, 并实现类方法+run
- 通过MyFramework的Project->Build Phases->Headers, 可以看到
Person默认在Project中

`Person`默认在`Project`中
- 如果想要在外界访问
Person, 需要将Person移动到Public中

将`Person`移动到`Public`中
- 在
MyFramework.h中导入Person

在`MyFramework.h`中导入`Person`
2、TestA中使用MyFramework
- 找到TestA的Project->General->Frameworks, Libraries, and Embedded Content

Project->General->Frameworks, Libraries, and Embedded Content
- 添加
MyFramework

添加`MyFramework`
- 在TestA中可以通过导入
#import <MyFramework/MyFramework.h>使用MyFramework

#import <MyFramework/MyFramework.h>
- 也可以直接导入
Person

#import <MyFramework/Person.h>
四、静态库
1、创建静态库, 并添加到MyWorkspace
- 通过
File->New->Project, 创建静态库, 取名MySDK, 并添加到MyWorkspace中

创建静态库

MySDK
2、使用静态库
- 添加
say方法

添加`say`方法
- 选择编译环境为
Release

image.png
-
command + B编译, 生成

编译前

编译后
- 右键点击,
Show in Finder, 可以看到生成的模拟器环境的.a文件

Release, 模拟器
- 可以选择真机环境, 编译

编译前

编译后
- 右键点击
Show in Finder, 可以看到生成的.a文件

Release, 真机
3、TestA中调试静态库
- 根据调试的环境(模拟器或真机), 将对应的.a文件拖入TestA中

将.a文件拖入TestA中
- 在TestA中, 可以直接使用
MySDK

在TestA中, 可以直接使用`MySDK`
- 可以直接在
MySDK中使用断点调试

可以直接在`MySDK`中使用断点调试
