[Crash][macOS 10.15.8] dyld: Symbol not found: _OBJC_CLASS_$_IOUSBHostCIDeviceStateMachine on legacy-macos-10.13 build (v1.14.0)
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 38.2k
- Forks
- 4.6k
- Avg merge
- 19d 15h
- Merged PRs (30d)
- 1
Description
Operating system
macOS
System version
10.15.8
Installation type
Original sing-box Command Line
If you are using a graphical client, please provide the version of the client.
No response
Version
it crashes, but the version is 1.14.0
Description
sing-box v1.14.0 (legacy-macos-10.13 build) crashes immediately on startup on macOS 10.15.8 (Catalina), before even reading any configuration. Downgrading to v1.13.21 fixes the issue completely with the same system and same config — no other changes were made.
Environment
- sing-box version: 1.14.0
- Build/artifact:
sing-box-1.14.0-darwin-amd64-legacy-macos-10.13.tar.gz(downloaded from SourceForge mirror) - OS: macOS 10.15.8 (Catalina)
- Architecture: amd64
- Installation type: standalone binary (downloaded manually via curl, not via Homebrew)
Expected behavior
sing-box version should print the version string without crashing, consistent with previous releases.
Additional notes
- Downgrading to v1.13.21 (same legacy build family, same system, same config) resolves the issue completely — no crash, works as expected.
- The referenced symbol
_OBJC_CLASS_$_IOUSBHostCIDeviceStateMachinebelongs toIOUSBHost.framework, which suggests the v1.14.0 legacy-macos-10.13 binary may have been built/linked against a newer macOS SDK than the one it claims to target (10.13+), causing an ObjC class lookup failure on older systems like 10.15.8. - This strongly suggests a regression introduced between v1.13.21 and v1.14.0 in how the legacy macOS build is compiled/linked, rather than a config or environment issue on my end.
Would be happy to provide
otool -Loutput of the binary- Additional system info if needed
Reproduction
- Download
sing-box-1.14.0-darwin-amd64-legacy-macos-10.13.tar.gz - Extract and place the
sing-boxbinary in/usr/local/bin/ - Run:
sing-box version - Binary crashes immediately with the error below — this happens even before any config file is loaded.
Logs
dyld: Symbol not found: _OBJC_CLASS_$_IOUSBHostCIDeviceStateMachine
Referenced from: /usr/local/bin/sing-box
Expected in: /System/Library/Frameworks/IOUSBHost.framework/Versions/A/IOUSBHost
in /usr/local/bin/sing-box
Abort trap: 6
Supporter
- I am a sponsor
Integrity requirements
- I confirm that I have read the documentation, understand the meaning of all the configuration items I wrote, and did not pile up seemingly useful options or default values.
- I confirm that I have provided the server and client configuration files and process that can be reproduced locally, instead of a complicated client configuration file that has been stripped of sensitive data.
- I confirm that I have provided the simplest configuration that can be used to reproduce the error I reported, instead of depending on remote servers, TUN, graphical interface clients, or other closed-source software.
- I confirm that I have provided the complete configuration files and logs, rather than just providing parts I think are useful out of confidence in my own intelligence.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing the v1.14.0 and v1.13.21 legacy macOS binaries, using otool -L as offered in the issue to inspect their framework dependencies. Reproduce with sing-box version on macOS 10.15.8 and investigate the legacy-macos-10.13 build configuration. Done means the v1.14.0 legacy binary starts without the missing IOUSBHost symbol crash.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, macos
- Domain
- build-system, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100