工程(ci远端化·修复): Godot安装改整bundle形态——官方签名封bundle Info.plist,抽裸二进制被taskgated判Code Signature Invalid SIGKILL(实证:codesign invalid Info.plist+bundle形态rc=0); 装/usr/local/lib/Godot_ci.app+/usr/local/bin/godot包装转发; Pillow安装加-H修sudo -u的HOME污染(缓存误写调用者目录)
This commit is contained in:
1 parent
c35b0ecf4f
commit
e154479532
1 file changed
+14
-6
+14
-6
@@ -80,7 +80,9 @@ PYEOF
|
||||
log "自动登录已配置:开机直接进入 ${CI_USER} 图形会话(日常使用=快速用户切换到本人账户)"
|
||||
fi
|
||||
|
||||
# ── 3. Godot macOS 版 → /usr/local/bin/godot ──
|
||||
# ── 3. Godot macOS 版 → 完整 .app 装 /usr/local/lib + /usr/local/bin/godot 包装转发 ──
|
||||
# 纪律:官方签名封 bundle 的 Info.plist——从 .app 抽裸二进制会被 taskgated 判
|
||||
# 「Code Signature Invalid」SIGKILL(2026-11-03 实证),必须整 bundle 安装保持签名校验路径。
|
||||
if /usr/local/bin/godot --version >/dev/null 2>&1 && /usr/local/bin/godot --version 2>/dev/null | grep -q "$GODOT_VER"; then
|
||||
log "Godot ${GODOT_VER} 已在位,跳过"
|
||||
else
|
||||
@@ -88,7 +90,7 @@ else
|
||||
SRC_ZIP="/Users/${INVOKER}/godot-linux/Godot_v${GODOT_VER}-stable_macos.universal.zip"
|
||||
if [ -n "$GODOT_ZIP" ] && [ -s "$GODOT_ZIP" ]; then
|
||||
ZIP="$GODOT_ZIP"; log "使用本地 zip: $ZIP"
|
||||
elif [ -s "$SRC_ZIP" ]; then
|
||||
elif [ -z "$GODOT_ZIP" ] && [ -s "$SRC_ZIP" ]; then
|
||||
ZIP="$SRC_ZIP"; log "复用已下载 zip: $ZIP"
|
||||
else
|
||||
ZIP="$(mktemp "${TMPDIR:-/tmp}/godot_mac_XXXXXX")" # macOS BSD mktemp 禁 X 后带后缀
|
||||
@@ -106,8 +108,14 @@ else
|
||||
TMPD="$(mktemp -d)"
|
||||
unzip -tq "$ZIP" >/dev/null # 双保险:本地复用的 zip 同样验结构
|
||||
unzip -q -o "$ZIP" -d "$TMPD"
|
||||
install -m 0755 "${TMPD}/Godot.app/Contents/MacOS/Godot" /usr/local/bin/godot
|
||||
xattr -dr com.apple.quarantine /usr/local/bin/godot 2>/dev/null || true
|
||||
rm -rf "/usr/local/lib/Godot_ci.app"
|
||||
cp -R "${TMPD}/Godot.app" "/usr/local/lib/Godot_ci.app"
|
||||
xattr -dr com.apple.quarantine "/usr/local/lib/Godot_ci.app" 2>/dev/null || true
|
||||
cat > /usr/local/bin/godot <<'EOF'
|
||||
#!/bin/bash
|
||||
exec /usr/local/lib/Godot_ci.app/Contents/MacOS/Godot "$@"
|
||||
EOF
|
||||
chmod 0755 /usr/local/bin/godot
|
||||
rm -rf "$TMPD"
|
||||
log "Godot 已装:$(/usr/local/bin/godot --version 2>/dev/null | head -1)"
|
||||
fi
|
||||
@@ -142,8 +150,8 @@ fi
|
||||
if sudo -u "$CI_USER" python3 -c "import PIL" >/dev/null 2>&1; then
|
||||
log "Pillow 已在位(ci-runner),跳过"
|
||||
else
|
||||
log "为 ci-runner 安装 Pillow(阿里源)"
|
||||
sudo -u "$CI_USER" python3 -m pip install --user pillow \
|
||||
log "为 ci-runner 安装 Pillow(阿里源;-H 修 HOME——sudo -u 默认保留调用者 HOME 会写错缓存目录)"
|
||||
sudo -H -u "$CI_USER" python3 -m pip install --user pillow \
|
||||
-i https://mirrors.aliyun.com/pypi/simple/ --quiet \
|
||||
|| die "Pillow 安装失败"
|
||||
fi
|
||||
|
||||
Reference in new issue
Block a user