build(scripts): build-libbox apple 按平台分发产物,避免覆盖另一端 Frameworks

只编某一平台时(apple macos / apple ios),产出的 xcframework 只含该平台 slice,
不能覆盖到另一平台的 client/*/Frameworks(否则那端 build 缺 slice)。改为:
空(全 Apple)→ macos+ios 都放;macos→只 macos;ios→只 ios。
本次 iOS 打包已验证只部署到 client/ios/Frameworks。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-07-01 09:37:09 +08:00
parent 37c1724b67
commit 002eea7562
+9 -2
View File
@@ -65,8 +65,15 @@ if [ "$TARGET" = "apple" ]; then
go run ./cmd/internal/build_libbox -target apple
fi
echo "✅ 产物: $WORK/sing-box/Libbox.xcframework"
# 部署到工程引用位置(client/{macos,ios}/Frameworks/Libbox.xcframework,均 gitignore)。
for fw in "$REPO_ROOT/client/macos/Frameworks" "$REPO_ROOT/client/ios/Frameworks"; do
# 按 PLATFORM 部署到工程引用位置(均 gitignore)。⚠️ 只编某一平台时,产出的 xcframework
# 只含该平台 slice,**不能**覆盖到另一平台的 Frameworks(否则那端 build 缺 slice)。
# 空(全 Apple)→ macos + ios 都放;macos→只 macos;ios→只 ios。
case "$PLATFORM" in
macos) fws=("$REPO_ROOT/client/macos/Frameworks") ;;
ios) fws=("$REPO_ROOT/client/ios/Frameworks") ;;
*) fws=("$REPO_ROOT/client/macos/Frameworks" "$REPO_ROOT/client/ios/Frameworks") ;;
esac
for fw in "${fws[@]}"; do
mkdir -p "$fw"
rm -rf "$fw/Libbox.xcframework"
cp -R "$WORK/sing-box/Libbox.xcframework" "$fw/"