#!/bin/zsh # 启动实验室副本并注入 ViewPanel。 # 用 LaunchServices(open -n)启动,这样进程有启动时间,REA 的运行时 UI 观测才认。 set -e HERE="$(cd "$(dirname "$0")" && pwd)" LAB="$HERE/../spine-lab" [[ -f "$HERE/build/inject.dylib" ]] || { echo "先跑 ./build.sh" >&2; exit 1; } # 先关掉旧的实验室实例,避免测试时越开越多。 for pid in $(/bin/ps -eo pid,command | grep "$LAB/Spine.app/Contents/MacOS/Spine" | grep -v grep | awk '{print $1}'); do kill "$pid" 2>/dev/null && echo "关掉旧实例 pid=$pid" done sleep 2 echo "注入器 : $HERE/build/inject.dylib" echo "面板类 : $HERE/build/classes" echo "日志 : /tmp/spine-viewpanel.log" # 可选:把工程文件一起打开(第一个参数) PROJECT_ARGS=() if [[ -n "$1" ]]; then PROJECT_ARGS=(--args "$1") echo "工程 : $1" fi open -n \ --env "DYLD_INSERT_LIBRARIES=$HERE/build/inject.dylib" \ --env "SPINE_VIEWPANEL_CLASSES=$HERE/build/classes" \ --env "SPINE_VIEWPANEL_MAIN=com/spineview/SceneScan" \ --env "SPINE_USER_HOME=$LAB/home" \ "$LAB/Spine.app" "${PROJECT_ARGS[@]}"