findphone 是一个面向 macOS 命令行的蓝牙设备定位工具,用 Swift 编写。它通过蓝牙信号强度 RSSI 来帮助用户在附近范围内寻找 iPhone、iPad 等 Apple 手持设备,适用于“查找 Find My”不可用但设备仍在蓝牙范围内的场景。工具支持扫描附近设备、按名称追踪单个设备、列出已配对设备,并可用声音提示距离变化。
适用领域
macOS 工具 / 蓝牙 / BLE / 命令行工具 / 设备定位 / IT 运维 / 终端用户效率工具
配置难度
低到中等。普通 macOS 用户下载二进制后即可运行,但需要了解终端命令、蓝牙权限设置以及未签名二进制的 quarantine 处理;从源码构建则需要基本 Swift / Xcode Command Line Tools 使用经验。
商业价值
对企业 IT、学校、实验室和受管设备场景有实用价值,尤其是在 Find My 被禁用或不可用时,可作为低成本的近距离寻物工具。它不适合做商业级精准定位或资产追踪系统,但可作为内部运维工具、终端支持工具或蓝牙信号排查辅助工具使用。由于无明确许可证和未签名发布,若要在企业或商业产品中采用,需要先解决授权、代码审计、签名分发和安全合规问题。
01
技术亮点
- 无需依赖 Find My,可在其不可用时作为替代寻物方案
- 命令行使用简单,支持 survey、hunt、list 等模式
- 支持按设备名称进行大小写不敏感的追踪
- 支持 --sound 声音提示,靠近设备时点击频率会提高,适合不盯屏幕寻找
- 支持 --redact 隐私模式,可隐藏蓝牙地址和部分设备名称,便于录屏
- 使用多个信号来源综合判断:GATT RSSI、BLE advertisements、Classic link RSSI
- 作者对 macOS 蓝牙 RSSI 缓存机制有明确处理,避免误把重复缓存值当作新测量
- Swift 实现,无外部依赖,构建和部署较轻量
02
目标用户
- 使用 macOS 的开发者和高级用户
- 需要在办公室、教室、实验室中寻找 iPhone / iPad 的用户
- 企业 IT / MDM 管理员
- 无法使用 Find My 的受管设备用户
- 需要通过命令行排查蓝牙设备信号的技术人员
03
配置要求
- macOS 13 或更高版本
- 需要为运行该工具的终端应用授予蓝牙权限:System Settings > Privacy & Security > Bluetooth
- 目标设备必须开启蓝牙并处于可探测或可连接范围内
- 若从源码构建,需要安装 Xcode Command Line Tools 中的 Swift 工具链
- 无需第三方依赖
- 下载的 Release 二进制未签名,需要手动移除 macOS quarantine 属性
- 室内有效范围通常约 10-20 米,隔墙、金属柜、人体遮挡会显著影响信号
04
适用场景
- 在 Find My 被 MDM 禁用或不可用时,通过蓝牙信号寻找附近设备
- 在房间、办公室或实验室内定位遗失的 iPhone / iPad
- 通过 RSSI 趋势判断设备距离是变近还是变远
- 用 --sound 模式通过点击频率变化进行“听觉寻物”
- 列出 macOS 已配对蓝牙设备及地址用于排查
- 录屏演示时使用 --redact 隐藏蓝牙地址和部分设备名称
05
部署与配置
- 确认系统为 macOS 13 或更高版本
- 从 GitHub Releases 下载 findphone-macos-universal.tar.gz
- 解压文件:tar -xzf findphone-macos-universal.tar.gz
- 由于二进制未签名,执行:xattr -dr com.apple.quarantine findphone
- 运行帮助命令验证安装:./findphone --help
- 可选:将 findphone 移动到 PATH 中,例如 ~/bin/findphone
- 如需源码构建,安装 Xcode Command Line Tools 后执行:swift build -c release
- 源码构建后复制可执行文件:cp .build/release/findphone ~/bin/findphone
- 如需 universal arm64 + x86_64 构建,可执行:./scripts/build-universal.sh dist
06
风险与注意事项
- 项目未声明许可证,商业使用、分发或集成前需要谨慎确认授权
- Release 二进制未签名,用户需要手动解除 macOS quarantine,企业环境可能受安全策略限制
- 只能提供距离趋势,不能给出方向或精确位置
- 不能让设备响铃,无法替代 Find My 的完整功能
- 蓝牙 RSSI 容易受墙体、金属、人体、设备姿态影响,测量结果可能波动较大
- 只能查找蓝牙开启且在范围内的设备
- BLE 广播地址可能轮换,部分设备名称只在少量广播包中出现,发现过程可能不稳定
- --list 即使配合 --redact 也不适合公开录屏,因为仍需显示可用于选择目标的名称
- 需要终端蓝牙权限,权限缺失会导致无法正常工作
2026-08-07
第13名
新收录 · github_search
2026-08-06
第26名
新收录 · github_search