mirror of
https://github.com/shadowsocks/ShadowsocksX-NG.git
synced 2026-11-08 10:24:51 +00:00
SMAppService does not resolve relative ProgramArguments paths reliably when the app runs from DerivedData or other non-/Applications locations (launchd reports inferred program + partial import and rejects spawn with EX_CONFIG). The same binary and plist format work correctly when registered via launchctl bootstrap with an absolute path. Write the plist to ~/Library/LaunchAgents/ with the wrapper's absolute path and register via launchctl bootstrap. Keep SMAppService only for reading BTM approval status.