From 33fdcac27f32927d261b7598971a71a14d26d7bc Mon Sep 17 00:00:00 2001 From: wendazhi Date: Thu, 12 Feb 2026 18:03:27 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=BF=E4=B8=8A=E9=85=8D=E7=BD=AE1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cursorrules | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 .cursorrules diff --git a/.cursorrules b/.cursorrules new file mode 100644 index 0000000..47d4ee3 --- /dev/null +++ b/.cursorrules @@ -0,0 +1,79 @@ +# 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/ |