001project_wildgrowth/.cursorrules

80 lines
3.0 KiB
Plaintext
Raw Normal View History

2026-02-12 18:03:27 +08:00
# 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 ConfigurationDebug/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/ |