# WildGrowth 项目规范 ## 通用规范 - 除非特别说明,不要生成 README 文件 - 使用中文注释和文档 - 保持代码简洁,遵循现有项目风格 --- ## iOS 项目配置 ### 配置位置 所有 iOS 环境相关配置在 **`ios/WildGrowth/Config/`** 目录下: | 文件 | 用途 | 何时使用 | |------|------|----------| | `Local.xcconfig` | 本地开发 | 连接本机 localhost 或局域网后端 | | `Develop.xcconfig` | 开发/测试 | 连接测试服、预发布环境 | | `Online.xcconfig` | 线上生产 | Release 打包、TestFlight、App Store | | `Shared.xcconfig` | 公共配置 | Swift 版本、编译选项等通用设置 | | `Info-API.plist` | API 变量注入 | 将 API_DOMAIN 注入 Info.plist | ### 如何添加/修改 iOS 配置 1. **修改 API 域名**:编辑对应环境的 xcconfig 文件(如 `Develop.xcconfig`、`Online.xcconfig`),修改 `API_DOMAIN` 变量 2. **新增环境变量**:在 xcconfig 中定义变量,并在 `Info-API.plist` 中添加对应 key(使用 `$(变量名)` 引用) 3. **Swift 编译条件**:在 xcconfig 中通过 `SWIFT_ACTIVE_COMPILATION_CONDITIONS` 添加宏(如 `API_ENV_LOCAL`、`API_ENV_DEVELOP`、`API_ENV_ONLINE`),代码中可用 `#if API_ENV_LOCAL` 做条件编译 4. **切换环境**:在 Xcode 中切换 Build Configuration(Debug/Release 对应不同 xcconfig) ### 运行时读取 `APIClient.swift` 通过 `Bundle.main.infoDictionary?["API_DOMAIN"]` 读取 API 域名,该值由 xcconfig 的 `INFOPLIST_KEY_API_DOMAIN` 在编译时注入。 --- ## 后端服务配置 ### 配置位置 后端服务配置在 **`backend/`** 目录下: | 文件/目录 | 用途 | 说明 | |-----------|------|------| | `.env` | 实际环境变量 | 本地开发时使用,**不提交 Git**,由 `dotenv` 加载 | | `env.develop` | 开发参考 | 开发环境变量示例,可复制为 `.env` | | `env.online` | 线上参考 | 线上环境变量示例(仅作参考,不直接加载) | | `src/config/index.ts` | 代码内配置 | OSS、阿里云等部分配置的默认值,配合 `process.env` 使用 | ### 如何添加/修改后端配置 1. **环境变量**:在 `backend/.env`(或对应环境的 env 文件)中添加,格式 `KEY=value` 2. **新增配置项**:在 `env.**` 文件中补充说明,并在代码中通过 `process.env.KEY` 读取 ### 主要env变量说明 - `DATABASE_URL`:PostgreSQL 连接字符串 - `JWT_SECRET` / `JWT_EXPIRES_IN`:JWT 认证 - `PORT`:服务端口 - `SERVER_URL` / `API_BASE_URL`:API 域名(用于生成完整 URL) - `APPLE_CLIENT_ID` / `APPLE_SHARED_SECRET`:Apple 登录与内购 - `ALIYUN_*`:阿里云号码认证、短信等 - `DOUBAO_API_KEY`:豆包 API ### 加载方式 `backend/src/index.ts` 和 `backend/src/utils/prisma.ts` 在启动时调用 `dotenv.config()` 加载根目录 `.env` 文件。 --- ## 项目结构别名(快速导航) | 别名 | 路径 | |------|------| | ios-config | ios/WildGrowth/Config/ | | backend-config | backend/(env 文件)、backend/src/config/ | | backend-deploy | backend/deploy/ |