From 88bcafed979fbe55a662cc468984e84ec5b36158 Mon Sep 17 00:00:00 2001 From: Long Yixing <1169942595@qq.com> Date: Mon, 30 Dec 2024 09:24:22 +0800 Subject: [PATCH] Modify the build macos script (#6374) --- .github/workflows/build-osx.yml | 17 ++++---- package-osx.sh | 69 +++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 8 deletions(-) create mode 100755 package-osx.sh diff --git a/.github/workflows/build-osx.yml b/.github/workflows/build-osx.yml index 35f58bae..f2635519 100644 --- a/.github/workflows/build-osx.yml +++ b/.github/workflows/build-osx.yml @@ -41,18 +41,19 @@ jobs: path: | ${{ github.workspace }}/v2rayN/Release/macos* - # release zip archive - - name: Package release zip archive + # release osx package + - name: Package osx if: github.event.inputs.release_tag != '' - run: | - chmod 755 package-release-zip.sh - ./package-release-zip.sh $OutputArch $OutputPath64 - ./package-release-zip.sh $OutputArchArm $OutputPathArm64 + run: | + brew install create-dmg + chmod 755 package-osx.sh + ./package-osx.sh $OutputArch $OutputPath64 ${{ github.event.inputs.release_tag }} + ./package-osx.sh $OutputArchArm $OutputPathArm64 ${{ github.event.inputs.release_tag }} - - name: Upload zip archive to release + - name: Upload dmg to release uses: svenstaro/upload-release-action@v2 if: github.event.inputs.release_tag != '' with: - file: ${{ github.workspace }}/v2rayN*.zip + file: ${{ github.workspace }}/v2rayN*.dmg tag: ${{ github.event.inputs.release_tag }} file_glob: true \ No newline at end of file diff --git a/package-osx.sh b/package-osx.sh new file mode 100755 index 00000000..d656b91f --- /dev/null +++ b/package-osx.sh @@ -0,0 +1,69 @@ +#!/bin/bash + +Arch="$1" +OutputPath="$2" +Version="$3" + +FileName="v2rayN-${Arch}.zip" +wget -nv -O $FileName "https://github.com/2dust/v2rayN-core-bin/raw/refs/heads/master/$FileName" +7z x $FileName +cp -rf v2rayN-${Arch}/* $OutputPath + +PackagePath="v2rayN-Package-${Arch}" +mkdir -p "$PackagePath/v2rayN.app/Contents/Resources" +cp -rf "$OutputPath" "$PackagePath/v2rayN.app/Contents/MacOS" +chmod +x "$PackagePath/v2rayN.app/Contents/MacOS/v2rayN" + +mkdir -p "$PackagePath/icons.iconset" +sips -z 16 16 "$PackagePath/v2rayN.app/Contents/MacOS/v2rayN.png" --out "$PackagePath/icons.iconset/icon_16x16.png" +sips -z 32 32 "$PackagePath/v2rayN.app/Contents/MacOS/v2rayN.png" --out "$PackagePath/icons.iconset/icon_16x16@2x.png" +sips -z 32 32 "$PackagePath/v2rayN.app/Contents/MacOS/v2rayN.png" --out "$PackagePath/icons.iconset/icon_32x32.png" +sips -z 64 64 "$PackagePath/v2rayN.app/Contents/MacOS/v2rayN.png" --out "$PackagePath/icons.iconset/icon_32x32@2x.png" +sips -z 128 128 "$PackagePath/v2rayN.app/Contents/MacOS/v2rayN.png" --out "$PackagePath/icons.iconset/icon_128x128.png" +sips -z 256 256 "$PackagePath/v2rayN.app/Contents/MacOS/v2rayN.png" --out "$PackagePath/icons.iconset/icon_128x128@2x.png" +sips -z 256 256 "$PackagePath/v2rayN.app/Contents/MacOS/v2rayN.png" --out "$PackagePath/icons.iconset/icon_256x256.png" +sips -z 512 512 "$PackagePath/v2rayN.app/Contents/MacOS/v2rayN.png" --out "$PackagePath/icons.iconset/icon_256x256@2x.png" +sips -z 512 512 "$PackagePath/v2rayN.app/Contents/MacOS/v2rayN.png" --out "$PackagePath/icons.iconset/icon_512x512.png" +sips -z 1024 1024 "$PackagePath/v2rayN.app/Contents/MacOS/v2rayN.png" --out "$PackagePath/icons.iconset/icon_512x512@2x.png" +iconutil -c icns "$PackagePath/icons.iconset" -o "$PackagePath/v2rayN.app/Contents/Resources/AppIcon.icns" + +cat >"$PackagePath/v2rayN.app/Contents/Info.plist" <<-EOF + + + + + CFBundleDevelopmentRegion + English + CFBundleDisplayName + v2rayN + CFBundleExecutable + v2rayN + CFBundleIconFile + AppIcon + CFBundleIconName + AppIcon + CFBundleIdentifier + v2rayN.desktop + CFBundleName + v2rayN + CFBundlePackageType + APPL + CFBundleShortVersionString + ${Version} + CSResourcesFileMapped + + NSHighResolutionCapable + + + +EOF + +create-dmg \ + --volname "v2rayN Installer" \ + --window-size 700 420 \ + --icon-size 100 \ + --icon "v2rayN.app" 160 185 \ + --hide-extension "v2rayN.app" \ + --app-drop-link 500 185 \ + "v2rayN-${Arch}.dmg" \ + "$PackagePath/v2rayN.app" \ No newline at end of file