# 白牌项目构建指南 ## ⚠️ 重要:使用 Workspace 而不是 Project **错误方式**: ```bash xcodebuild -project YuMi.xcodeproj -scheme YuMi build ❌ ``` **正确方式**: ```bash xcodebuild -workspace YuMi.xcworkspace -scheme YuMi build ✅ ``` ## 为什么? 因为项目使用了 **CocoaPods**: - CocoaPods 会创建 `.xcworkspace` 文件 - Workspace 包含了主项目 + Pods 项目 - 直接用 `.xcodeproj` 编译会找不到 Pods 中的库(如 MJRefresh) ## 在 Xcode 中打开项目 **正确方式**: 1. 打开 `YuMi.xcworkspace`(双击这个文件) 2. 不要打开 `YuMi.xcodeproj` **验证方式**: - 打开后,左侧应该看到 2 个项目: - YuMi(主项目) - Pods(依赖项目) ## 编译项目 ### 方式 1:在 Xcode 中(推荐) 1. 打开 `YuMi.xcworkspace` 2. 选择真机设备(iPhone for iPhone) 3. `Cmd + B` 编译 4. 修复任何错误 5. `Cmd + R` 运行(如果需要) ### 方式 2:命令行 ```bash cd "/Users/edwinqqq/Local/Company Projects/E-Parti" # 清理 xcodebuild -workspace YuMi.xcworkspace -scheme YuMi clean # 编译(真机) xcodebuild -workspace YuMi.xcworkspace -scheme YuMi \ -destination 'generic/platform=iOS' \ -configuration Debug \ build ``` ## Build Settings 配置验证 在 Xcode 中: 1. 打开 `YuMi.xcworkspace` 2. 选择 YuMi Target 3. Build Settings → 搜索框输入以下关键词并检查: | 设置项 | 期望值 | 状态 | |--------|--------|------| | **Swift Objc Bridging Header** | `YuMi/YuMi-Bridging-Header.h` | ✅ 已配置 | | **Swift Version** | `Swift 5` | ✅ 已配置 | | **Defines Module** | `YES` | ✅ 已配置 | ## 常见错误排查 ### 错误 1: `'MJRefresh/MJRefresh.h' file not found` **原因**:使用了 `.xcodeproj` 而不是 `.xcworkspace` **解决**:使用 `.xcworkspace` 打开和编译 ### 错误 2: `SwiftGeneratePch failed` **原因**:Bridging Header 中引用的头文件找不到 **解决**: 1. 确保使用 `.xcworkspace` 2. 检查 Bridging Header 中的所有 `#import` 是否正确 3. 确保所有依赖的 Pod 都安装了 ### 错误 3: `Cannot find 'HttpRequestHelper' in scope` **原因**:Bridging Header 路径未配置 **解决**:已修复,Build Settings 中设置了正确路径 ## 当前项目配置 ### 文件结构 ``` E-Parti/ ├── YuMi.xcworkspace ← 用这个打开! ├── YuMi.xcodeproj ← 不要用这个 ├── Podfile ├── Pods/ ← CocoaPods 依赖 ├── YuMi/ │ ├── YuMi-Bridging-Header.h ← Swift/OC 桥接 │ ├── Config/ │ │ └── APIConfig.swift ← API 域名配置 │ ├── Global/ │ │ └── GlobalEventManager.h/m ← 全局事件管理 │ └── Modules/ │ ├── NewTabBar/ │ │ └── NewTabBarController.swift │ ├── NewMoments/ │ │ ├── Controllers/ │ │ │ └── NewMomentViewController.h/m │ │ └── Views/ │ │ └── NewMomentCell.h/m │ └── NewMine/ │ ├── Controllers/ │ │ └── NewMineViewController.h/m │ └── Views/ │ └── NewMineHeaderView.h/m ``` ### Swift/OC 混编配置 **Bridging Header**:`YuMi/YuMi-Bridging-Header.h` - 引入所有需要在 Swift 中使用的 OC 类 - 包括第三方 SDK(NIMSDK, AFNetworking) - 包括项目的 Models、Managers、Views **Build Settings**: - `SWIFT_OBJC_BRIDGING_HEADER = YuMi/YuMi-Bridging-Header.h` - `DEFINES_MODULE = YES` - `SWIFT_VERSION = 5.0` ## 验证配置是否成功 编译成功后,应该能在 Console 看到: ``` [NewTabBarController] 初始化完成 [APIConfig] 解密后的域名: https://api.epartylive.com [GlobalEventManager] SDK 代理设置完成 ``` --- **更新时间**: 2025-10-09 **状态**: ✅ 配置已修复 **下一步**: 使用 YuMi.xcworkspace 在 Xcode 中编译