#!/bin/bash # 构建期重签 PacketTunnel 内嵌的 Libbox.framework 为当前签名身份(Developer ID)。 # 原因:Libbox 是 gomobile xcframework,内部二进制是 adhoc/linker-signed,Xcode 的 # CodeSignOnCopy 不会替换它 → 公证会拒。本脚本在 sysext 被 Xcode 封签之前重签 Libbox, # 使其 Developer ID + 带时间戳,避免事后手动重签(那会破坏框架对扩展的校验)。 set -e LIBBOX="${CODESIGNING_FOLDER_PATH}/Contents/Frameworks/Libbox.framework" [ -d "$LIBBOX" ] || { echo "sign_libbox: 未找到 $LIBBOX,跳过"; exit 0; } [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" ] || { echo "sign_libbox: 无签名身份,跳过"; exit 0; } echo "sign_libbox: 用 ${EXPANDED_CODE_SIGN_IDENTITY_NAME:-$EXPANDED_CODE_SIGN_IDENTITY} 重签 Libbox" /usr/bin/codesign --force --options runtime --timestamp -s "${EXPANDED_CODE_SIGN_IDENTITY}" "$LIBBOX/Versions/A/Libbox" /usr/bin/codesign --force --options runtime --timestamp -s "${EXPANDED_CODE_SIGN_IDENTITY}" "$LIBBOX" echo "sign_libbox: 完成"