iOS xcworkspace多项目管理

1,036 阅读1分钟

1 工作空间介绍

.xcworkspace是一个Xcode项目的工作空间文件。它是用于组织、管理和协调多个相关项目的

容器。其本身并不包含实际的源代码,而只是描述了项目之间的关系和配置。实际的源代码和

资源文件位于每个项目的.xcodeproj文件中。

2 创建流程

2.1 创建Workspace

  • 打开Xcode,并选择 "File"菜单中的 "New"

  • 选择并命名 "Workspace"(工作空间)

2.2 创建Project和Framework

2.2.1 新建项目到Workspace

  • 双击打开新建的 .xcworkspace 文件

  • 选择 "File" -> "New" -> "Project" -> "App/Framework"

  • 将 "Add to" 和 "Group" 项更改为新建的 .xcworkspace 文件

2.2.2 添加现有的项目到Workspace

  • 双击打开新建的 .xcworkspace 文件

  • 右键单击左侧导航器区域,并选择 "Add Files to..."

  • 选择 .xcodeproj 文件,然后点击 "Add" 按钮

  • 重复以上步骤,逐个添加项目

2.3 创建Podfile和安装依赖

  • 在Workspace的根目录下创建 "Podfile" 文件

  • 编辑Podfile,添加要使用的第三方库依赖

  • 在终端中,导航到Workspace的根目录

  • 运行 pod install 命令安装依赖

2.4 打开Workspace

  • 关闭所有打开的Xcode项目和Workspaces
  • 使用Finder找到并双击Workspace文件,用Xcode打开它

3 工程间的调用

3.1 主工程调用Framework

  • 打开Xcode,选择主工程项目

  • 选择 "Targets" -> "General" -> "Frameworks, Libraries, and Embedded Content"

  • 导入指定Framework

  • 在目标文件中 import Framework 即可使用

3.2 Framework互相调用

  • 打开Xcode,选择Framework工程

  • 选择 "Targets" -> "General" -> "Frameworks, Libraries, and Embedded Content"

  • 导入指定Framework

  • 在目标文件中 import Framework 即可使用

4 多项目管理中的Podfile

Podfile文件内容

platform :ios, '11.0'
# use dynamic frameworks
use_frameworks!
# 忽略库的所有警告
inhibit_all_warnings!

# workspace文件名
workspace 'SwiftDemo.xcworkspace'
# 主工程路径
project 'SwiftDemo/SwiftDemo.xcodeproj'

target 'SwiftDemo' do  
# 主工程路径  
project 'SwiftDemo/SwiftDemo.xcodeproj'

  # Pods for SwiftDemo  
  pod 'Toast-Swift', '= 5.0.1'  
  pod 'IQKeyboardManagerSwift', '= 6.5.10'  
  pod 'Kingfisher', '= 6.3.1'  
  pod 'KingfisherWebP', '= 1.3.0'  
  pod 'SwiftyJSON', '= 5.0.1'  
  pod 'Alamofire', '= 5.6.1'
  
  target 'SwiftDemoTests' do    
    inherit! :search_paths    
    # Pods for testing  
  end  

  target 'SwiftDemoUITests' do    
    # Pods for testing  
  end
end

target 'AppService' do  
  # framework工程路径  
  project 'AppService/AppService.xcodeproj'  

  # Pods for AppService  
  pod 'Alamofire', '= 5.6.1'
end

Swift版的Framework调用OC写的第三方库,必须在 .h 里声明头文件,才能调用

5 其他事项

command+shift+k清理Framework工程后,需要重新Build一下,否则无法直接运行主工程。

为了方便可以在Build中添加Framework工程,在编译主工程前按顺序编译Framework工程。