diff --git a/UnionPatcher.Gui.MacOS/Info.plist b/UnionPatcher.Gui.MacOS/Info.plist
new file mode 100755
index 0000000..883a4ac
--- /dev/null
+++ b/UnionPatcher.Gui.MacOS/Info.plist
@@ -0,0 +1,34 @@
+
+
+
+
+ CFBundleIdentifier
+ com.lbpunion.unionpatcher
+ NSHumanReadableCopyright
+ Copyright LBP Union 2024©
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1
+ CFBundleDevelopmentRegion
+ en
+ CFBundleIconFile
+ Icon.icns
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundlePackageType
+ APPL
+ CFBundleSignature
+ ????
+ NSPrincipalClass
+ NSApplication
+ CFBundleName
+ UnionPatcher
+ CFBundleExecutable
+ LBPUnion.UnionPatcher.Gui.MacOS
+ LSMinimumSystemVersion
+ 10.14
+ NSRequiresAquaSystemAppearance
+ False
+
+
diff --git a/UnionPatcher.Gui.MacOS/UnionPatcher.Gui.MacOS.csproj b/UnionPatcher.Gui.MacOS/UnionPatcher.Gui.MacOS.csproj
index ca56ad9..e4eb4d3 100644
--- a/UnionPatcher.Gui.MacOS/UnionPatcher.Gui.MacOS.csproj
+++ b/UnionPatcher.Gui.MacOS/UnionPatcher.Gui.MacOS.csproj
@@ -7,6 +7,8 @@
LBPUnion.UnionPatcher.Gui.MacOS
LBPUnion.UnionPatcher.Gui.MacOS
Icon64.ico
+ true
+ true
diff --git a/build-all.sh b/build-all.sh
index daf126a..d9a116c 100755
--- a/build-all.sh
+++ b/build-all.sh
@@ -1,4 +1,4 @@
-mkdir -p builds;
+mkdir -p builds
#dotnet clean;
dotnet publish -c Windows -r win-x64 --self-contained
@@ -13,19 +13,19 @@ dotnet publish -c MacOS -r osx-arm64 --self-contained
# $1: Name.zip
# $2: Path to zip
function createBuild() {
- currentDirectory=$(pwd)
- cd $2 || return 1;
-
- zip -r "$1" *;
- cd $currentDirectory || return 1;
- mv "$2/$1" builds/
+ currentDirectory=$(pwd)
+ cd $2 || return 1
+
+ zip -r "$1" *
+ cd $currentDirectory || return 1
+ mv "$2/$1" builds/
}
-createBuild "UnionPatcher-Windows-x64.zip" "UnionPatcher.Gui.Windows/bin/Release/net6.0-windows/win-x64/publish/"
+createBuild "UnionPatcher-Windows-x64.zip" "UnionPatcher.Gui.Windows/bin/Release/net8.0-windows/win-x64/publish/"
-createBuild "UnionPatcher-Linux-x64.zip" "UnionPatcher.Gui.Linux/bin/Release/net6.0/linux-x64/publish/"
-createBuild "UnionPatcher-Linux-arm.zip" "UnionPatcher.Gui.Linux/bin/Release/net6.0/linux-arm/publish/"
-createBuild "UnionPatcher-Linux-arm64.zip" "UnionPatcher.Gui.Linux/bin/Release/net6.0/linux-arm64/publish/"
+createBuild "UnionPatcher-Linux-x64.zip" "UnionPatcher.Gui.Linux/bin/Release/net8.0/linux-x64/publish/"
+createBuild "UnionPatcher-Linux-arm.zip" "UnionPatcher.Gui.Linux/bin/Release/net8.0/linux-arm/publish/"
+createBuild "UnionPatcher-Linux-arm64.zip" "UnionPatcher.Gui.Linux/bin/Release/net8.0/linux-arm64/publish/"
-createBuild "UnionPatcher-macOS-x64.zip" "UnionPatcher.Gui.MacOS/bin/Release/net6.0/osx-x64/publish/"
-createBuild "UnionPatcher-macOS-arm64.zip" "UnionPatcher.Gui.MacOS/bin/Release/net6.0/osx-arm64/publish/"
\ No newline at end of file
+# CODESIGN_IDENTITY is the certificate that you want to use for codesigning for mac, if not present then will not be signed
+./build-mac.sh $CODESIGN_IDENTITY
diff --git a/build-mac.sh b/build-mac.sh
new file mode 100755
index 0000000..4e22f6e
--- /dev/null
+++ b/build-mac.sh
@@ -0,0 +1,21 @@
+# Script to build UnionPatcher for mac, builds a universal binary, and zips it up. also codesigns if $1 is specified
+
+dotnet clean
+dotnet publish UnionPatcher.Gui.MacOS --configuration Release /p:Platform="Any CPU" --self-contained -o macbuild
+dotnet publish UnionPatcher.Gui.MacOS --configuration Release /p:Platform="Any CPU" --arch x64 --self-contained -o macbuildx86
+
+rm -rf macbuilduniversal
+mkdir macbuilduniversal
+cp -r macbuild/UnionPatcher.Gui.MacOS.app macbuilduniversal/UnionPatcher.app
+cp UnionPatcher.Gui.MacOS/Info.plist macbuilduniversal/UnionPatcher.app/Contents/Info.plist
+rm -rf macbuilduniversal/UnionPatcher.app/Contents/MacOS/scetool/linux*
+rm -rf macbuilduniversal/UnionPatcher.app/Contents/MacOS/scetool/win*
+
+lipo -create -output macbuilduniversal/UnionPatcher.app/Contents/MacOS/LBPUnion.UnionPatcher.Gui.MacOS macbuildx86/LBPUnion.UnionPatcher.Gui.MacOS macbuild/LBPUnion.UnionPatcher.Gui.MacOS
+touch macbuilduniversal/UnionPatcher.app
+
+if [ -z ${1+x} ]; then
+ codesign -f --deep -s "$1" macbuilduniversal/UnionPatcher.app
+fi
+cd macbuilduniversal
+zip -r UnionPatcher-macOS-universal.zip UnionPatcher.app