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`中使用断点调试