001project_wildgrowth/.cursorrules

80 lines
3.0 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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/ |