Daily Stock Analysis macOS 启动故障 SOP

Daily Stock Analysis macOS 启动故障 SOP

适用场景:
macOS 上 Daily Stock Analysis.app 无法启动,出现:

RBSRequestErrorDomain Code=5 "Launch failed."
NSPOSIXErrorDomain Code=163
"Launchd job spawn failed"

或者 App 内提示:

Health check aborted: backend exited with code 255

一、第一步:去除 macOS 隔离属性

打开终端执行:

APP="/Applications/Daily Stock Analysis.app"

xattr -dr com.apple.quarantine "$APP"

然后尝试:

open "$APP"

如果正常启动

处理结束。

如果仍然无法启动

继续第二步。


二、确认是 Backend 启动失败

执行:

find "$APP/Contents" -type f -perm -111 -print

对于 Daily Stock Analysis,Backend 通常位于:

$APP/Contents/Resources/backend/stock_analysis/stock_analysis

直接运行:

"$APP/Contents/Resources/backend/stock_analysis/stock_analysis"

这是整个 SOP 最关键的一步。

不要继续反复执行 xattr,直接运行 backend 可以看到真正的底层错误。


三、判断是否为 Code Signature 问题

如果看到类似:

[PYI-xxxxx:ERROR] Failed to load Python shared library

并且进一步出现:

missing code signature

例如:

missing code signature in
.../_internal/Python.framework/Versions/3.12/Python

则确认:

PyInstaller 内置 Python.framework 的 Code Signature 缺失或失效。


四、修复 Python.framework 签名

执行以下命令

codesign --force --deep --sign - \
"$APP/Contents/Resources/backend/stock_analysis/_internal/Python.framework"

其中:

--force

强制重新签名。

--deep

递归处理 Framework 内部组件。

--sign -

使用 macOS ad-hoc signature,不需要 Apple Developer 证书。


五、重新启动 App

签名完成后:

open "$APP"

如果 App 正常打开:

SOP 执行结束。

本次实际验证就是在这一步解决的。


六、如果仍然无法启动

只有在第四步无效时,才继续扩大签名范围。

1. 给整个 backend 签名

codesign --force --deep --sign - \
"$APP/Contents/Resources/backend/stock_analysis"

然后测试:

"$APP/Contents/Resources/backend/stock_analysis/stock_analysis"

如果 backend 正常,再:

open "$APP"

2. 最后才考虑给整个 App 签名

codesign --force --deep --sign - "$APP"

然后:

xattr -dr com.apple.quarantine "$APP"
open "$APP"

注意:不要一开始就给整个 App 重新签名。
本次实际情况证明,只签 Python.framework 就已经足够。


七、故障判断速查表

现象 判断 处理
App cannot be opened 可能是 Gatekeeper xattr
Launch failed App 内部启动失败 运行 backend
Code=163 launchd 无法正常 spawn 检查 backend
backend exited with code 255 Backend 自身启动失败 直接运行 backend
Failed to load Python shared library PyInstaller Python 加载失败 检查 Python.framework
missing code signature Python.framework 签名缺失/失效 给 Python.framework codesign
bad CPU type in executable ARM/x86 架构不匹配 检查 arm64/x64
Library not loaded 动态库依赖问题 检查 dylib
Permission denied 执行权限问题 chmod +x

八、最终精简版 SOP

以后遇到同样问题,实际上记住下面这套就够了:

APP="/Applications/Daily Stock Analysis.app"

# ① 去除隔离属性
xattr -dr com.apple.quarantine "$APP"

# ② 尝试启动
open "$APP"

如果出现:

backend exited with code 255

就:

# ③ 直接运行 Backend
"$APP/Contents/Resources/backend/stock_analysis/stock_analysis"

如果出现:

Failed to load Python shared library
missing code signature

就:

# ④ 修复内置 Python.framework 签名
codesign --force --deep --sign - \
"$APP/Contents/Resources/backend/stock_analysis/_internal/Python.framework"

最后:

# ⑤ 启动
open "$APP"

核心口诀

Launch failed → 找 Backend → 直接运行 → 看到 missing code signature → 签 Python.framework → 启动。

这次故障的最小有效修复就是第四步,不需要重装 App,也不需要重新签整个 App。

posted @ 2026-10-13 14:00  刘俊涛的博客  阅读(30)  评论(1)    收藏  举报