一个基于 SwiftUI 的 macOS 菜单栏应用,用于实时监控黄金价格(沪金99 + 伦敦金现货)。
- 菜单栏实时显示当前选中标的价格
- 同时监控两个标的:
gds_AU9999(沪金99)hf_XAU(伦敦金现货)
- 30 秒自动刷新 + 手动刷新
- 失败自动回退(主接口失败后使用 WebView DOM 回退抓取)
- 涨跌颜色区分(涨红、跌绿、平灰)
- Swift 6
- SwiftUI (
MenuBarExtra) URLSession+ 正则解析(主抓取)WKWebView脚本注入(DOM 回退抓取)- XCTest
- macOS 13+
- Xcode 16.4+(或等效 Swift toolchain)
swift runswift test./scripts/package_release.sh默认会在 dist/ 产出:
Gold.appGold-<version>.zipGold-<version>.dmgGold-<version>.pkg
可选环境变量:
VERSION=1.0.1 BUNDLE_ID=com.yourcompany.gold ./scripts/package_release.sh签名(可选):
SIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" \
PKG_SIGN_IDENTITY="Developer ID Installer: Your Name (TEAMID)" \
./scripts/package_release.sh未签名包在其他机器上可能触发 Gatekeeper 告警。
Sources/Gold/
App/ # 菜单栏 UI + ViewModel
Model/ # 数据模型、错误、日志协议
Service/ # 抓取器、解析器、聚合服务
Utils/ # 格式化工具
Tests/GoldTests/
# 解析与服务流程测试
scripts/
package_release.sh # 打包脚本
- 数据源:新浪财经行情接口/页面
- 本项目仅用于学习与信息展示,不构成投资建议
- 第三方数据源可能变更或限流,请理性使用
本项目采用 MIT License。