# iOS 项目结构说明 ## 📁 当前结构 ``` xdz_ios/ ├── BaseCore/ # Swift Package(已创建) │ └── Sources/ ├── xdz/ # Xcode 项目 │ ├── xdz.xcodeproj │ ├── xdz/ # 应用源代码 │ ├── xdzTests/ │ └── xdzUITests/ └── iOS移植方案.md ``` ## ✅ 推荐方案:Swift Package 作为本地包(与项目平级) 这是 **iOS 项目的最佳实践**,原因: 1. ✅ 模块独立,便于维护 2. ✅ 可以在多个项目中复用 3. ✅ 符合 Swift Package Manager 规范 4. ✅ 与 Android/HarmonyOS 架构保持一致 ### 最终目录结构 ``` xdz_ios/ ├── BaseCore/ # Swift Package │ ├── Package.swift │ ├── Sources/ │ │ └── BaseCore/ │ │ ├── Core/ │ │ │ ├── Log/ │ │ │ ├── Storage/ │ │ │ ├── Network/ │ │ │ └── ... │ │ └── BaseCore.swift │ └── Tests/ │ ├── BaseCommon/ # Swift Package │ ├── Package.swift │ ├── Sources/ │ │ └── BaseCommon/ │ │ ├── Common/ │ │ │ ├── Auth/ │ │ │ ├── Network/ │ │ │ ├── UI/ │ │ │ └── ... │ │ └── BaseCommon.swift │ └── Tests/ │ ├── CapabilityPush/ # Swift Package │ ├── Package.swift │ └── Sources/ │ ├── CapabilityShare/ # Swift Package │ ├── Package.swift │ └── Sources/ │ └── xdz/ # Xcode 项目(主应用) ├── xdz.xcodeproj ├── xdz/ # 应用源代码 │ ├── xdzApp.swift │ ├── ContentView.swift │ └── ... ├── xdzTests/ └── xdzUITests/ ``` ## 🔧 在 Xcode 中添加本地 Swift Package ### 方法 1:通过 Xcode UI(推荐) 1. 打开 `xdz/xdz.xcodeproj` 2. 选择项目 → 选择 Target "xdz" → 切换到 "Package Dependencies" 标签 3. 点击 "+" 按钮 4. 选择 "Add Local..." 5. 选择 `BaseCore` 目录 6. 重复步骤添加 `BaseCommon` 和其他模块 ### 方法 2:直接编辑 project.pbxproj(不推荐) Xcode 会自动管理,不需要手动编辑。 ## 📝 Package.swift 配置示例 ### BaseCore/Package.swift ```swift // swift-tools-version: 5.9 import PackageDescription let package = Package( name: "BaseCore", platforms: [ .iOS(.v15) ], products: [ .library( name: "BaseCore", targets: ["BaseCore"] ) ], dependencies: [ // 基础依赖,尽量使用系统原生 ], targets: [ .target( name: "BaseCore", dependencies: [] ), .testTarget( name: "BaseCoreTests", dependencies: ["BaseCore"] ) ] ) ``` ### BaseCommon/Package.swift ```swift // swift-tools-version: 5.9 import PackageDescription let package = Package( name: "BaseCommon", platforms: [ .iOS(.v15) ], products: [ .library( name: "BaseCommon", targets: ["BaseCommon"] ) ], dependencies: [ .package(path: "../BaseCore") // 本地路径依赖 ], targets: [ .target( name: "BaseCommon", dependencies: [ .product(name: "BaseCore", package: "BaseCore") ] ) ] ) ``` ### xdz 项目中的 Package.swift(可选) 如果使用 Xcode 项目,不需要 Package.swift,直接在 Xcode 中添加依赖即可。 ## ⚠️ 注意事项 1. **路径问题**:使用相对路径 `../BaseCore` 时,确保目录结构正确 2. **Xcode 版本**:需要 Xcode 11+ 支持本地 Swift Package 3. **编译顺序**:Xcode 会自动处理依赖关系 4. **版本控制**:每个 Swift Package 可以独立版本控制 ## 🚀 验证步骤 1. 创建 BaseCore/Package.swift 2. 在 Xcode 中添加 BaseCore 作为本地包依赖 3. 在 xdz 项目中 `import BaseCore` 4. 编译运行,确认可以正常使用 ## 📚 参考 - [Apple: Adding Package Dependencies to Your App](https://developer.apple.com/documentation/xcode/adding-package-dependencies-to-your-app) - [Swift Package Manager: Local Packages](https://www.swift.org/package-manager/) --- **结论**:当前的结构(BaseCore 与 xdz 平级)是**正确的**,符合 iOS 项目最佳实践!