mirror of
https://github.com/BeyondDimension/SteamTools.git
synced 2026-10-17 05:30:48 +08:00
3038f72e49
↑ macos net8.0 build
97 lines
5.2 KiB
Bash
97 lines
5.2 KiB
Bash
#!/bin/bash
|
|
# 判断是否提供了 Build_Mode 参数
|
|
if [ -z "$1" ]; then
|
|
Build_Mode="any" # 如果没有提供参数,则设置默认值为 "any"
|
|
else
|
|
Build_Mode="$1"
|
|
fi
|
|
|
|
Base_Path="/Users/moxiansheng/Documents/GitHub/SteamTools"
|
|
App_Path="$Base_Path/src/BD.WTTS.Client.Avalonia.App"
|
|
Publish_Path="bin/Release/Publish/assemblies"
|
|
Plugins_Release_Path="bin/Release"
|
|
CodesignKey_Name="mossimo code"
|
|
App_Modules_Path="$App_Path/$Publish_Path/modules"
|
|
echo "编译主程序"
|
|
cd "$App_Path"
|
|
dotnet publish -c Release -p:PublishDir="$Publish_Path" -f net8.0-macos -p:CreatePackage=false -p:EnableCodeSigning=true -p:CodesignKey="$CodesignKey_Name"
|
|
|
|
rm -r "$App_Modules_Path"
|
|
mkdir -p "$App_Modules_Path"
|
|
echo "编译插件"
|
|
#复制插件
|
|
Copy_Plugins() {
|
|
local Plugins_Folder=$1
|
|
local Plugins_Folder_Name=$2
|
|
local Plugins_FileName=$3
|
|
mkdir -p "$App_Modules_Path/$Plugins_Folder_Name"
|
|
cp -r "$Plugins_Folder/$Plugins_FileName" "$App_Modules_Path/$Plugins_Folder_Name/$Plugins_FileName"
|
|
}
|
|
echo "编译加速插件"
|
|
Plugins_Accelerator_Path="$Base_Path/src/BD.WTTS.Client.Plugins.Accelerator"
|
|
cd "$Plugins_Accelerator_Path"
|
|
dotnet publish -c Release -p:PublishDir="$Publish_Path" -f net8.0-macos
|
|
Copy_Plugins "$Plugins_Release_Path/net8.0-macos" "Accelerator" "BD.WTTS.Client.Plugins.Accelerator.dll"
|
|
|
|
Plugins_Accelerator_ReverseProxy_Path="$Base_Path/src/BD.WTTS.Client.Plugins.Accelerator.ReverseProxy"
|
|
cd "$Plugins_Accelerator_ReverseProxy_Path"
|
|
# 根据 Build_Mode 执行不同逻辑
|
|
if [ "$Build_Mode" = "any" ]; then
|
|
dotnet publish -c Release -p:PublishDir="$Publish_Path/arm64" -f net8.0 -r osx-arm64 -p:PublishSingleFile=true --self-contained -p:EnableCodeSigning=true -p:CodesignKey="$CodesignKey_Name"
|
|
dotnet publish -c Release -p:PublishDir="$Publish_Path/x64" -f net8.0 -r osx-x64 -p:PublishSingleFile=true --self-contained -p:EnableCodeSigning=true -p:CodesignKey="$CodesignKey_Name"
|
|
lipo -create "$Publish_Path/arm64/Steam++.Accelerator" "$Publish_Path/x64/Steam++.Accelerator" -output "$Publish_Path/Steam++.Accelerator"
|
|
Copy_Plugins "$Publish_Path" "Accelerator" "Steam++.Accelerator"
|
|
elif [ "$Build_Mode" = "arm64" ]; then
|
|
dotnet publish -c Release -p:PublishDir="$Publish_Path/arm64" -f net8.0 -r osx-arm64 -p:PublishSingleFile=true --self-contained -p:EnableCodeSigning=true -p:CodesignKey="$CodesignKey_Name"
|
|
Copy_Plugins "$Publish_Path/arm64" "Accelerator" "Steam++.Accelerator"
|
|
elif [ "$Build_Mode" = "x64" ]; then
|
|
dotnet publish -c Release -p:PublishDir="$Publish_Path/x64" -f net8.0 -r osx-x64 -p:PublishSingleFile=true --self-contained -p:EnableCodeSigning=true -p:CodesignKey="$CodesignKey_Name"
|
|
Copy_Plugins "$Publish_Path/x64" "Accelerator" "Steam++.Accelerator"
|
|
fi
|
|
|
|
echo "编译令牌插件"
|
|
Plugins_Authenticator_Path="$Base_Path/src/BD.WTTS.Client.Plugins.Authenticator"
|
|
cd "$Plugins_Authenticator_Path"
|
|
dotnet publish -c Release -p:PublishDir="$Publish_Path" -f net8.0-macos -p:EnableCodeSigning=true -p:CodesignKey="$CodesignKey_Name"
|
|
Copy_Plugins "$Plugins_Release_Path/net8.0-macos" "Authenticator" "BD.WTTS.Client.Plugins.Authenticator.dll"
|
|
|
|
echo "编译账户插件"
|
|
Plugins_GameAccount_Path="$Base_Path/src/BD.WTTS.Client.Plugins.GameAccount"
|
|
cd "$Plugins_GameAccount_Path"
|
|
dotnet publish -c Release -p:PublishDir="$Publish_Path" -f net8.0-macos -p:EnableCodeSigning=true -p:CodesignKey="$CodesignKey_Name"
|
|
Copy_Plugins "$Plugins_Release_Path/net8.0-macos" "GameAccount" "BD.WTTS.Client.Plugins.GameAccount.dll"
|
|
|
|
echo "编译游戏库插件"
|
|
Plugins_GameList_Path="$Base_Path/src/BD.WTTS.Client.Plugins.GameList"
|
|
cd "$Plugins_GameList_Path"
|
|
dotnet publish -c Release -p:PublishDir="$Publish_Path" -f net8.0-macos -p:EnableCodeSigning=true -p:CodesignKey="$CodesignKey_Name"
|
|
Copy_Plugins "$Plugins_Release_Path/net8.0-macos" "GameList" "BD.WTTS.Client.Plugins.GameList.dll"
|
|
|
|
echo "复制插件到程序目录"
|
|
cd "$App_Path"
|
|
|
|
# 根据 Build_Mode 执行不同逻辑
|
|
if [ "$Build_Mode" = "any" ]; then
|
|
cp -r "$App_Modules_Path" "$Plugins_Release_Path/net8.0-macos/Steam++.app/Contents/MonoBundle"
|
|
elif [ "$Build_Mode" = "arm64" ]; then
|
|
cp -r "$App_Modules_Path" "$Plugins_Release_Path/net8.0-macos/osx-arm64/Steam++.app/Contents/MonoBundle"
|
|
cp -r "$Plugins_Release_Path/net8.0-macos/Steam++.app/Contents/Resources" "$Plugins_Release_Path/net8.0-macos/Steam++.app/Contents"
|
|
elif [ "$Build_Mode" = "x64" ]; then
|
|
cp -r "$App_Modules_Path" "$Plugins_Release_Path/net8.0-macos/osx-x64/Steam++.app/Contents/MonoBundle"
|
|
cp -r "$Plugins_Release_Path/net8.0-macos/Steam++.app/Contents/Resources" "$Plugins_Release_Path/net8.0-macos/Steam++.app/Contents"
|
|
fi
|
|
|
|
echo "代码签名重新手动签名"
|
|
App_Publish_Path="$App_Path/bin/Release/net8.0-macos/Steam++.app"
|
|
# #代码签名重新手动签名
|
|
codesign --remove-signature "$App_Publish_Path"
|
|
codesign --remove-signature "$App_Publish_Path/Contents/MacOS/Steam++"
|
|
dylibs=$(find "$App_Publish_Path/Contents/MonoBundle" -type f -name "*.dylib")
|
|
for dylib in $dylibs; do
|
|
codesign --remove-signature "$dylib"
|
|
codesign -f -s "$CodesignKey_Name" "$dylib"
|
|
done
|
|
codesign -f -s "$CodesignKey_Name" "$App_Publish_Path/Contents/MacOS/Steam++"
|
|
codesign -f -s "$CodesignKey_Name" "$App_Publish_Path"
|
|
sudo xattr -rd com.apple.quarantine "$App_Publish_Path"
|