iOS App 在 Mac 上无法运行的 FairPlay 修复
在 Apple Silicon Mac 上运行 iOS App 时,遇到一个很奇怪的问题:同一个 App,当前 Apple ID 打不开,换另一个 Apple ID 却可以正常运行。
这类问题一开始很容易怀疑是 App 没有启用 Mac 兼容性,或者是 SDK、系统版本兼容问题。但如果同一个 App 只换 Apple ID 就能运行,基本可以把方向收敛到账户授权层面。
日志线索
重新登录 App Store、清理缓存都没有效果后,通过 log stream 抓实时日志,看到关键线索:
1 | fairplayStatus: -42005 |
这里的重点是 fairplayStatus: -42005。它指向本地 FairPlay DRM 授权数据异常,可能是密钥、证书或账户授权状态损坏。
修复方法
可以清除本地 FairPlay 授权数据,然后重启,让系统重新生成:
1 | killall -9 appstoreagent storeaccountd fairplayd |
重启后,系统会重新建立 FairPlay 授权数据。我的情况是执行后问题恢复正常。
总结
如果 iOS App 在 Mac 上无法运行,而且同一个 App 换 Apple ID 后可以打开,可以优先排查 FairPlay 授权状态。
fairplayStatus: -42005 是一个很关键的诊断信号。相比反复重装 App 或重新登录 App Store,直接看 appstoreagent、storeaccountd、fairplayd 相关日志会更快定位问题。
这个问题是通过 QClaw 协助定位并解决的。