## Description
This PR fixes installation instability on Apple Silicon (M1/M2/M3) Macs caused by the "Rosetta Trap".
The Problem:
When a terminal runs under Rosetta, scripts using `uname -m` incorrectly detect Intel. This leads to wrong binary downloads and Homebrew path issues.
The Fix:
1. scripts/postinstall.js: Added check for sysctl.proc_translated.
2. apps/macos/.../CLIInstaller.swift: Added native Swift guard.
3. scripts/check-env.sh: Added diagnostic utility.
## AI/Vibe-Coded 🤖
- [x] AI-Assisted: Marked in title/description.
- [x] Testing Level: Fully Tested (Verified on M1 environment with check-env.sh).
- [x] Transparency: Prompts derived from installation_debugging.md analysis.
- [x] I understand what this code does
|
||
|---|---|---|
| .. | ||
| Icon.icon | ||
| Sources | ||
| Tests/ClawdbotIPCTests | ||
| Package.resolved | ||
| Package.swift | ||
| README.md | ||
Clawdbot macOS app (dev + signing)
Quick dev run
# from repo root
scripts/restart-mac.sh
Options:
scripts/restart-mac.sh --no-sign # fastest dev; ad-hoc signing (TCC permissions do not stick)
scripts/restart-mac.sh --sign # force code signing (requires cert)
Packaging flow
scripts/package-mac-app.sh
Creates dist/Clawdbot.app and signs it via scripts/codesign-mac-app.sh.
Signing behavior
Auto-selects identity (first match):
- Developer ID Application
- Apple Distribution
- Apple Development
- first available identity
If none found:
- errors by default
- set
ALLOW_ADHOC_SIGNING=1orSIGN_IDENTITY="-"to ad-hoc sign
Team ID audit (Sparkle mismatch guard)
After signing, we read the app bundle Team ID and compare every Mach-O inside the app. If any embedded binary has a different Team ID, signing fails.
Skip the audit:
SKIP_TEAM_ID_CHECK=1 scripts/package-mac-app.sh
Library validation workaround (dev only)
If Sparkle Team ID mismatch blocks loading (common with Apple Development certs), opt in:
DISABLE_LIBRARY_VALIDATION=1 scripts/package-mac-app.sh
This adds com.apple.security.cs.disable-library-validation to app entitlements.
Use for local dev only; keep off for release builds.
Useful env flags
SIGN_IDENTITY="Apple Development: Your Name (TEAMID)"ALLOW_ADHOC_SIGNING=1(ad-hoc, TCC permissions do not persist)CODESIGN_TIMESTAMP=off(offline debug)DISABLE_LIBRARY_VALIDATION=1(dev-only Sparkle workaround)SKIP_TEAM_ID_CHECK=1(bypass audit)