fix: Windows encoding (UTF-8 BOM + CRLF) and macOS Gatekeeper

- Windows bat files: UTF-8 BOM + CRLF + English text to avoid garbled Chinese in cmd.exe
- macOS scripts: xattr -rd com.apple.quarantine to fix "unverified developer" popup
- New install scripts: Mac-安装并启动.command, Windows-安装并启动.bat
  (extract tar.gz to local disk then launch)
This commit is contained in:
dongsheng123132
2026-03-10 18:43:58 +08:00
parent fc725247d1
commit 6f7af5fa49
5 changed files with 266 additions and 88 deletions

View File

@@ -92,6 +92,14 @@ export OPENCLAW_CONFIG_PATH="$PORTABLE_CONFIG_PATH"
mkdir -p "$PORTABLE_STATE_DIR"
# 移除 macOS 隔离标记(解决"无法验证开发者"弹窗)
if xattr -l "$NODE_BIN" 2>/dev/null | grep -q "com.apple.quarantine"; then
echo -e " ${YELLOW}正在移除 macOS 安全限制...${NC}"
xattr -rd com.apple.quarantine "$UCLAW_DIR" 2>/dev/null || true
echo -e " ${GREEN}已移除${NC}"
echo ""
fi
# 检查依赖
if [ ! -d "$OPENCLAW_DIR/node_modules" ]; then
echo -e " ${YELLOW}首次运行,正在安装依赖...${NC}"

View File

@@ -39,6 +39,11 @@ export OPENCLAW_CONFIG_PATH="$PORTABLE_CONFIG_PATH"
mkdir -p "$PORTABLE_STATE_DIR"
# 移除 macOS 隔离标记(解决"无法验证开发者"弹窗)
if xattr -l "$NODE_BIN" 2>/dev/null | grep -q "com.apple.quarantine"; then
xattr -rd com.apple.quarantine "$UCLAW_DIR" 2>/dev/null || true
fi
# 检查安装状态
check_status() {
HAS_MODULES="no"

View File

@@ -0,0 +1,86 @@
#!/bin/bash
# ============================================================
# U-Claw 虾盘 - macOS 一键安装并启动
# 从 U 盘解压到电脑,然后启动 OpenClaw
# ============================================================
GREEN='\033[0;32m'
CYAN='\033[0;36m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m'
clear
echo ""
echo -e "${CYAN}"
echo " ╔══════════════════════════════════════╗"
echo " ║ U-Claw 虾盘 v1.1 ║"
echo " ║ 一键安装并启动 (macOS) ║"
echo " ╚══════════════════════════════════════╝"
echo -e "${NC}"
USB_DIR="$(cd "$(dirname "$0")" && pwd)"
ARCHIVE="$USB_DIR/U-Claw.tar.gz"
INSTALL_DIR="$HOME/U-Claw"
# 移除 macOS 隔离标记(解决"无法验证开发者"弹窗)
xattr -rd com.apple.quarantine "$USB_DIR" 2>/dev/null || true
# 检查压缩包
if [ ! -f "$ARCHIVE" ]; then
echo -e " ${RED}错误: 找不到 U-Claw.tar.gz${NC}"
echo " 请确保此脚本和压缩包在同一目录"
read -p " 按回车键退出..."
exit 1
fi
# 检查是否已安装
if [ -d "$INSTALL_DIR/openclaw/node_modules" ]; then
echo -e " ${GREEN}检测到已安装的 U-Claw${NC}"
echo " 位置: $INSTALL_DIR"
echo ""
echo -e " ${YELLOW}[1] 直接启动(跳过解压)${NC}"
echo " [2] 重新安装(覆盖现有)"
echo ""
read -p " 请选择 [1/2默认1]: " choice
choice="${choice:-1}"
if [ "$choice" = "2" ]; then
echo ""
echo -e " ${YELLOW}正在重新安装...${NC}"
rm -rf "$INSTALL_DIR"
else
echo ""
echo -e " ${CYAN}跳过解压,直接启动...${NC}"
fi
fi
# 解压(如果需要)
if [ ! -d "$INSTALL_DIR/openclaw/node_modules" ]; then
echo ""
echo -e " ${CYAN}正在解压 U-Claw 到 $INSTALL_DIR ...${NC}"
echo " 这可能需要 30-60 秒,请稍等..."
echo ""
mkdir -p "$HOME"
cd "$HOME"
tar xzf "$ARCHIVE"
if [ $? -ne 0 ]; then
echo -e " ${RED}解压失败!${NC}"
read -p " 按回车键退出..."
exit 1
fi
echo -e " ${GREEN}解压完成!${NC}"
echo ""
fi
# 删除 Windows 相关文件(可选,不影响运行)
# rm -f "$INSTALL_DIR"/Windows-*.bat 2>/dev/null
# 启动 OpenClaw
echo -e " ${CYAN}正在启动 OpenClaw...${NC}"
echo ""
cd "$INSTALL_DIR"
exec bash "$INSTALL_DIR/Mac-从U盘启动.command"

View File

@@ -1,14 +1,14 @@
@echo off
@echo off
chcp 65001 >nul 2>&1
title U-Claw 虾盘 - OpenClaw 一键启动
title U-Claw - OpenClaw Launcher
echo.
echo ╔══════════════════════════════════════╗
echo U-Claw 虾盘 v1.1
echo OpenClaw 一键启动 (Windows)
echo ╚══════════════════════════════════════╝
echo ========================================
echo U-Claw v1.1
echo OpenClaw One-Click Launcher (Windows)
echo ========================================
echo.
echo 推荐场景:老电脑 / 临时电脑 / 不想改本机环境
echo Recommended: temporary PC / no local install
echo.
set "UCLAW_DIR=%~dp0"
@@ -27,32 +27,32 @@ set "OPENCLAW_CONFIG_PATH=%PORTABLE_CONFIG_PATH%"
if not exist "%PORTABLE_STATE_DIR%" mkdir "%PORTABLE_STATE_DIR%"
if not exist "%NODE_BIN%" (
echo [错误] 找不到 Node.js 运行环境
echo 请确保 runtime\node-win-x64 目录完整
echo [ERROR] Node.js not found
echo Please ensure runtime\node-win-x64 directory is complete
echo.
pause
exit /b 1
)
for /f "tokens=*" %%v in ('"%NODE_BIN%" --version') do set NODE_VER=%%v
echo Node.js 版本: %NODE_VER%
echo Node.js: %NODE_VER%
echo.
set "PATH=%NODE_DIR%;%NODE_DIR%\node_modules\.bin;%PATH%"
if not exist "%OPENCLAW_DIR%\node_modules" (
echo 首次运行,正在安装依赖...
echo (使用淘宝镜像,请稍等)
echo First run - installing dependencies...
echo Using China mirror, please wait...
echo.
cd /d "%OPENCLAW_DIR%"
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
echo.
echo 依赖安装完成!
echo Dependencies installed!
echo.
)
if not exist "%OPENCLAW_DIR%\dist" (
echo 首次运行,正在构建...
echo First run - building...
cd /d "%OPENCLAW_DIR%"
call "%NPM_BIN%" run build
echo.
@@ -60,29 +60,29 @@ if not exist "%OPENCLAW_DIR%\dist" (
cd /d "%OPENCLAW_DIR%"
REM 首次运行:自动写入最小配置(跳过 onboard
REM First run: auto-create minimal config (skip onboard)
if not exist "%PORTABLE_CONFIG_PATH%" (
echo 首次运行,正在初始化配置...
echo First run - initializing config...
if not exist "%PORTABLE_STATE_DIR%" mkdir "%PORTABLE_STATE_DIR%"
echo {"gateway":{"mode":"local","auth":{"token":"uclaw"}}} > "%PORTABLE_CONFIG_PATH%"
echo 配置已初始化
echo Config initialized
echo.
)
echo 正在启动 OpenClaw...
echo 此窗口不要关闭,关闭后服务会停止。
echo Starting OpenClaw...
echo DO NOT close this window!
echo.
echo ────────────────────────────────────
echo 启动后浏览器会自动打开控制台
echo 首次使用请在控制台中配置:
echo 1. 设置 AI 模型(DeepSeek / Kimi / 通义千问)
echo 2. 接入聊天平台QQ / 飞书 / 钉钉)
echo ────────────────────────────────────
echo ----------------------------------------
echo Browser will open automatically.
echo First time setup in web console:
echo 1. Choose AI model (DeepSeek / Kimi / Qwen)
echo 2. Connect chat platform (QQ / Feishu / DingTalk)
echo ----------------------------------------
echo.
start "" http://127.0.0.1:18789/#token=uclaw
"%NODE_BIN%" openclaw.mjs gateway run --allow-unconfigured --force
echo.
echo OpenClaw 已退出。拔掉 U 盘后,本次便携运行就会结束。
echo OpenClaw stopped. You can safely remove the USB drive.
pause

View File

@@ -0,0 +1,79 @@
@echo off
chcp 65001 >nul 2>&1
title U-Claw - Install and Launch
echo.
echo ========================================
echo U-Claw v1.1
echo Install and Launch (Windows)
echo ========================================
echo.
set "USB_DIR=%~dp0"
set "ARCHIVE=%USB_DIR%U-Claw.tar.gz"
set "INSTALL_DIR=%USERPROFILE%\U-Claw"
REM Check archive
if not exist "%ARCHIVE%" (
echo [ERROR] U-Claw.tar.gz not found
echo Please ensure this script and the archive are in the same directory
echo.
pause
exit /b 1
)
REM Check if already installed
if exist "%INSTALL_DIR%\openclaw\node_modules" (
echo U-Claw already installed at: %INSTALL_DIR%
echo.
echo [1] Launch directly (skip extract)
echo [2] Reinstall (overwrite)
echo.
set /p choice=" Choose [1/2, default 1]: "
if "%choice%"=="2" (
echo.
echo Reinstalling...
rmdir /s /q "%INSTALL_DIR%" >nul 2>&1
) else (
echo.
echo Launching...
goto :start
)
)
REM Extract
echo.
echo Extracting U-Claw to %INSTALL_DIR% ...
echo This may take 1-2 minutes...
echo.
where tar >nul 2>&1
if %errorlevel%==0 (
cd /d "%USERPROFILE%"
tar xzf "%ARCHIVE%"
if %errorlevel% neq 0 (
echo Extract failed! Please extract U-Claw.tar.gz manually
echo using 7-Zip or WinRAR to %USERPROFILE%
pause
exit /b 1
)
) else (
echo tar command not available on this Windows version
echo Please extract U-Claw.tar.gz manually using 7-Zip or WinRAR
echo Extract to: %USERPROFILE%
echo.
echo Then run: %INSTALL_DIR%\Windows-从U盘启动.bat
pause
exit /b 1
)
echo Extract complete!
echo.
:start
REM Launch OpenClaw
echo Starting OpenClaw...
echo.
cd /d "%INSTALL_DIR%"
call "%INSTALL_DIR%\Windows-从U盘启动.bat"