2025-10-28 21:13:13 +08:00
# BTC 价格监控器
<div align="center">
2025-10-31 07:08:42 +08:00
2025-10-31 07:05:40 +08:00
[](#)
[](#)
[](#)
[](#)
[](#)
[](#)
[](#license )
2025-10-31 07:08:42 +08:00
</div>
2025-10-28 21:13:13 +08:00
2025-10-31 07:05:40 +08:00
一款 macOS 原生菜单栏应用,用于实时监控主流加密货币的价格,支持 BTC/ETH/BNB/SOL/DOGE 多种币种。基于 Swift 编写, 致力于打造一款高性能、极简风格的应用APP, 已经编译了`Intel` 与`Apple Silicon` 的通用应用,请至[releases ](https://github.com/jiayouzl/Bitcoin-Monitoring/releases/latest )下载。
2025-10-28 21:13:13 +08:00
2025-10-28 21:29:02 +08:00
## 📖 如在macOS下无法运行, 请执行以下步骤:
2025-10-28 22:59:56 +08:00
> 系统设置 → 隐私与安全性 → 安全性 → 已阻止“Bitcoin Monitoring.app”以保护Mac → 仍要打开
2025-10-28 21:29:02 +08:00
2025-10-28 21:13:13 +08:00
## 📷︎ 界面预览
2025-10-31 07:05:40 +08:00

2025-10-28 21:13:13 +08:00
## ✨ 功能特性
### 🚀 核心功能
2025-10-29 21:17:54 +08:00
- **多币种支持**: 支持 BTC/ETH/BNB/SOL/DOGE 主流虚拟货币价格监控
- **实时价格显示**: 在菜单栏实时显示选中币种的 USDT 价格
2025-10-29 14:41:38 +08:00
- **多种刷新机制**: 可选 5、10、30、60 秒自动获取最新价格数据
2025-10-28 21:13:13 +08:00
- **智能错误重试**: 网络异常时自动重试,最多 3 次
- **手动刷新**: 支持快捷键 `Cmd+R` 手动刷新价格
- **状态指示**: 直观显示加载、更新、错误状态
2025-10-30 14:49:58 +08:00
- **价格复制功能**: 支持一键复制当前价格到剪贴板
- **配置持久化**: 用户设置自动保存,重启后保持配置
2025-10-30 19:19:11 +08:00
- **开机自启动**: 可选是否开机自动启动APP
2025-10-28 21:13:13 +08:00
### 🎨 用户体验
- **中文界面**: 完整的中文用户界面
- **优雅动画**: 流畅的状态切换动画
- **轻量级设计**: 最小化系统资源占用
- **后台运行**: 不占用 Dock 空间,专注菜单栏
2025-10-30 19:19:11 +08:00
- **SF Symbols 图标**: 使用原生 macOS 图标系统
2025-10-28 21:13:13 +08:00
### 🛡️ 可靠性
- **网络容错**: 完善的网络异常处理机制
- **内存管理**: 避免循环引用,及时释放资源
- **线程安全**: UI 更新确保在主线程执行
- **错误恢复**: 自动从临时网络故障中恢复
## 📋 安装要求
### 系统要求
2025-10-30 19:19:11 +08:00
- **操作系统**: macOS 13.1 或更高版本
2025-10-28 21:13:13 +08:00
- **架构支持**: Intel 和 Apple Silicon (M1/M2/M3/M4/M5)
### 开发环境
- **开发工具**: Xcode 16.2 或更高版本
- **Swift 版本**: Swift 5.0
2025-10-30 19:19:11 +08:00
- **部署目标**: macOS 13.1
2025-10-28 21:13:13 +08:00
### 网络要求
- 需要稳定的互联网连接
- 访问币安 API (`https://api.binance.com` ) 的网络权限
## 🚀 快速开始
2025-10-28 21:57:40 +08:00
### 直接运行
2025-10-28 21:13:13 +08:00
1. **克隆项目 **
```bash
2025-10-28 22:59:56 +08:00
git clone https://github.com/jiayouzl/Bitcoin-Monitoring.git
cd Bitcoin-Monitoring
2025-10-28 21:13:13 +08:00
```
2. **在 Xcode 中打开 **
```bash
open "Bitcoin Monitoring.xcodeproj"
```
3. **运行应用 **
- 在 Xcode 中选择 "Bitcoin Monitoring" scheme
2025-10-28 22:59:56 +08:00
- 点击运行按钮或使用快捷键: `Cmd+R`
2025-10-28 21:13:13 +08:00
2025-10-30 14:49:58 +08:00
### 构建命令
```bash
# 构建项目
xcodebuild -project "Bitcoin Monitoring.xcodeproj" -scheme "Bitcoin Monitoring" -configuration Debug build
# 归档应用
xcodebuild -project "Bitcoin Monitoring.xcodeproj" -scheme "Bitcoin Monitoring" -configuration Release archive
# 清理构建缓存
xcodebuild -project "Bitcoin Monitoring.xcodeproj" -scheme "Bitcoin Monitoring" clean
```
2025-10-28 21:13:13 +08:00
## 📖 使用说明
### 基本操作
1. **启动应用 **
2025-10-29 21:17:54 +08:00
- 应用启动后自动在菜单栏显示默认币种 (BTC) 图标
2025-10-28 22:59:56 +08:00
- 首次启动会显示 "加载中...." 状态
2025-10-28 21:13:13 +08:00
2. **查看价格 **
2025-10-29 21:17:54 +08:00
- 菜单栏实时显示当前选中币种的 USDT 价格
2025-10-28 21:13:13 +08:00
- 格式:`$价格` (例如: `$43,250.50` )
2025-10-29 21:17:54 +08:00
3. **切换币种 **
- 点击菜单栏图标 → 币种选择 → 选择想要的币种
- 支持 BTC/ETH/BNB/SOL/DOGE 五种主流币种
2025-10-30 14:49:58 +08:00
4. **复制价格 **
2025-10-30 19:19:11 +08:00
- **Option + 左键点击** 币种名称可快速复制当前价格到剪贴板
2025-10-30 14:49:58 +08:00
- 价格格式为 `$XXX.XX` ,可直接粘贴使用
5. **交互菜单 **
2025-10-28 21:13:13 +08:00
- 点击菜单栏图标显示详细菜单
- 查看更多信息并执行操作
### 菜单功能
| 功能 | 描述 | 快捷键 |
|------|------|--------|
2025-10-29 21:17:54 +08:00
| 价格信息 | 显示当前选中币种的价格和状态 | - |
2025-10-30 14:49:58 +08:00
| 快速复制 | Option+点击币种名称复制价格 | `Option+点击` |
| 复制价格 | 一键复制当前价格到剪贴板 | - |
2025-10-29 21:17:54 +08:00
| 币种选择 | 切换监控的币种 (BTC/ETH/BNB/SOL/DOGE) | - |
2025-10-28 21:13:13 +08:00
| 错误信息 | 显示网络错误详情 (如有) | - |
| 更新时间 | 显示上次成功更新时间 | - |
| 刷新价格 | 手动获取最新价格 | `Cmd+R` |
2025-10-29 14:41:38 +08:00
| 刷新设置 | 设置刷新的间隔 | - |
2025-10-30 19:19:11 +08:00
| 开机启动 | 设置开机自动启动APP | - |
2025-10-29 14:41:38 +08:00
| GitHub | 打开仓库查询更新 | - |
2025-10-28 21:13:13 +08:00
| 关于 | 查看应用信息和版本 | - |
| 退出 | 完全退出应用 | `Cmd+Q` |
### 状态说明
| 状态 | 显示 | 说明 |
|------|------|------|
| 加载中 | `加载中...` | 首次启动,正在获取数据 |
| 更新中 | `更新中...` | 正在获取最新价格 |
| 错误 | `错误` | 网络连接或 API 异常 |
| 正常 | `$价格` | 成功显示当前价格 |
2025-10-30 14:49:58 +08:00
### 💡 使用技巧
- **快速复制**: 按住 `Option` 键点击币种名称可立即复制当前价格
- **切换币种**: 直接点击币种名称即可切换菜单栏显示的币种
- **手动刷新**: 使用 `Cmd+R` 快捷键立即更新价格数据
- **配置持久化**: 更改的刷新间隔和币种选择会自动保存,重启应用后保持设置
- **错误恢复**: 网络异常时应用会自动重试,无需手动干预
2025-10-28 21:13:13 +08:00
## 🏗️ 技术架构
### 设计模式
- **MVVM 架构**: SwiftUI + ObservableObject 模式
- **Combine 框架**: 响应式数据流和事件处理
- **依赖注入**: 服务层分离和松耦合设计
- **观察者模式**: 价格变化的响应式更新
2025-10-30 14:49:58 +08:00
- **策略模式**: 可配置的刷新间隔选项
2025-10-28 21:13:13 +08:00
### 并发处理
```swift
// 主线程 UI 更新
@MainActor
class BTCMenuBarApp: ObservableObject
// 异步网络请求
func fetchPrice() async throws -> Double
// Combine 响应式流
priceManager.$currentPrice
.receive(on: DispatchQueue.main)
.sink { [weak self] price in
self?.updateMenuBarTitle(price: price)
}
```
## 🌐 API 集成
### 币安 API 端点
2025-10-29 21:17:54 +08:00
应用支持多种币种的价格查询:
2025-10-28 21:13:13 +08:00
```http
2025-10-29 21:17:54 +08:00
GET https://api.binance.com/api/v3/ticker/price?symbol={SYMBOL}
2025-10-28 21:13:13 +08:00
```
2025-10-29 21:17:54 +08:00
### 支持的交易对
| 币种 | 交易对符号 | 显示名称 |
|------|------------|----------|
| Bitcoin | BTCUSDT | BTC/USDT |
| Ethereum | ETHUSDT | ETH/USDT |
| BNB | BNBUSDT | BNB/USDT |
| Solana | SOLUSDT | SOL/USDT |
| Dogecoin | DOGEUSDT | DOGE/USDT |
2025-10-28 21:13:13 +08:00
### 请求参数
| 参数 | 类型 | 必需 | 描述 |
|------|------|------|------|
2025-10-29 21:17:54 +08:00
| symbol | String | 是 | 交易对符号 (如: BTCUSDT, ETHUSDT, BNBUSDT, SOLUSDT, DOGEUSDT) |
2025-10-28 21:13:13 +08:00
### 响应格式
```json
{
"symbol": "BTCUSDT",
"price": "43250.50"
}
```
### 错误处理策略
1. **网络连接失败 **
- 自动重试机制 (最多3次)
- 递增延迟策略 (1秒, 2秒, 4秒)
- 用户友好的错误提示
2. **API 服务器错误 **
- HTTP 状态码检查
- 服务器响应验证
- 优雅降级处理
3. **数据解析异常 **
- JSON 格式验证
- 数据类型检查
- 价格格式验证
4. **无效价格格式 **
- 数值范围检查
- 格式规范化
- 异常值过滤
## 🔧 故障排除
### 常见问题
#### 1. 应用无法启动
**问题**: 双击应用图标无反应
**解决方案**:
```bash
# 检查系统完整性
xattr -d com.apple.quarantine "/Applications/Bitcoin Monitoring.app"
# 或者在系统偏好设置中允许应用运行
# 系统偏好设置 → 安全性与隐私 → 通用
```
#### 2. 网络连接失败
**问题**: 显示"错误"状态,无法获取价格
**诊断步骤**:
1. 检查网络连接
```bash
ping api.binance.com
```
2. 验证 API 可用性
```bash
2025-10-30 13:37:41 +08:00
# 测试同币种 API 的可用性
2025-10-28 21:13:13 +08:00
curl "https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT"
```
3. 检查防火墙设置
```bash
# 确保允许出站 HTTPS 连接
```
## 🤝 贡献指南
我们欢迎所有形式的贡献!请阅读以下指南:
### 贡献方式
1. **报告 Bug ** : 在 Issues 中提交详细的 Bug 报告
2. **功能建议 ** : 提出新功能的想法和建议
3. **代码贡献 ** : 提交 Pull Request 改进代码
4. **文档完善 ** : 改进 README 和代码注释
## 📄 许可证
本项目采用 **GNU General Public License v3.0 ** 许可证。
### 完整许可证文本
详见 [LICENSE ](LICENSE ) 文件。
## 👨💻 作者
**Mark**
- **GitHub**: [@jiayouzl ](https://github.com/jiayouzl/ )
- **项目主页**: [https://github.com/jiayouzl/Bitcoin-Monitoring ](https://github.com/jiayouzl/Bitcoin-Monitoring )
2025-10-30 13:37:41 +08:00
## ⭐ Star History
2025-10-30 20:25:15 +08:00
[](https://www.star-history.com/#jiayouzl/Bitcoin -Monitoring&type=date&legend=top-left)
2025-10-31 07:07:06 +08:00
---