常见问题与排查
App 显示「本版待印」——我的数据呢?
两个常见原因:
- **健康权限。**iOS 从不告诉 App「读」权限给没给——被拒绝和「没数据」长得 一模一样。去 健康 → 头像 → 隐私 → App → Courier 打开类别开关。 (编辑部 → 数据源有直达链接。)
- **Apple 健康里没数据。**睡眠需要来源(Apple Watch 或写入健康的睡眠 App);iOS 模拟器基本没有健康数据——请用真机。
运动到了但没有路线?/ 为什么有条运动一直「等着」?
GPS 轨迹往往比运动概要晚一点到达 Apple 健康。Courier 有意让户外运动停在 awaitingRoute,等轨迹到齐再发,而不是发出残缺记录。若轨迹迟迟不来(比如 被误判成户外的室内运动,或手表根本没录),条目会转入待处理,由你手动 发行。
后台发行不是立刻的,坏了吗?
没坏——iOS 会节流后台投递。几分钟到一小时左右都正常;最坏要等你下次打开 App。要保证马上发出:打开 App,或跑立即发行快捷指令。见 发行与同步。
重试会在我的服务器上留重复吗?
只要服务器尊重 Idempotency-Key 头(或按 data.id upsert)就不会。自动 重试与手动重发复用同一个键;刻意的「再发一份」才轮换键(id#2、id#3 ……)。见发行与同步。
能用纯 HTTP 吗?
真实端点要求 https://(iOS App Transport Security)。开发调试允许 http://localhost / 局域网地址。
我的端点想要另一种 payload 结构。
这正是JavaScript 转换脚本的用途——返回任意 字符串或 JSON 结构。若只是想加几个固定字段,订户上的 Body 参数不写码 就能做到。
在哪看发送失败的原因?
编辑部 → 发行台账记录每次尝试,含 HTTP 状态与响应摘要。转换脚本的报错也在 那里,附脚本的错误信息。
小组件是实时的吗?
App 每次读取或发行数据(含后台同步)都会刷新它,另有 30 分钟兜底。显示 陈旧?打开一次 App。见小组件。
我的数据在什么云里吗?
Courier 不放任何云。无账号、无开发者服务器、无 CloudKit。仅有的网络去向是 你配置的端点(以及你若选用的转写服务)。见 隐私政策。
怎么换新 iPhone?
旧机:编辑部 → 配置备份 → 导出;新机导入,然后为每个订户重输密钥(密钥 永不离开钥匙串)。批注可在批注存档里导出 JSON。
别的问题。
带上编辑部页脚的版本号,来提 issue: github.com/Xheldon/Export-Data-From-Apple/issues。