80 lines
3.0 KiB
Plaintext
80 lines
3.0 KiB
Plaintext
|
|
# 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/ |
|