From f920dd9f80762e0b6f32a5601927820e350d5dc7 Mon Sep 17 00:00:00 2001
From: AkiraFukushima
Date: Thu, 18 Mar 2021 01:12:31 +0900
Subject: [PATCH] refs #2244 Build universal package for MAS build using
electron/universal
---
appStore.sh | 2 +-
package.json | 3 ++-
packages/universal.js | 14 ++++++++++++++
yarn.lock | 2 +-
4 files changed, 18 insertions(+), 3 deletions(-)
create mode 100644 packages/universal.js
diff --git a/appStore.sh b/appStore.sh
index e37f6ddf..3427be6f 100755
--- a/appStore.sh
+++ b/appStore.sh
@@ -3,7 +3,7 @@
# Name of your app.
APP="Whalebird"
# The path of your app to sign.
-APP_PATH="./packages/Whalebird-mas-x64/Whalebird.app"
+APP_PATH="./packages/Whalebird-mas-universal/Whalebird.app"
# The path to the location you want to put the signed package.
RESULT_PATH="./packages/$APP.pkg"
# The name of certificates you requested.
diff --git a/package.json b/package.json
index 957678ee..b3de6014 100644
--- a/package.json
+++ b/package.json
@@ -31,7 +31,7 @@
"build:linux": "yarn run build && yarn run package:linux",
"build:win32": "yarn run build && yarn run package:win32",
"build:win64": "yarn run build && yarn run package:win64",
- "build:mas": "yarn run build:clean && yarn run pack && electron-packager ./ 'Whalebird' --platform=mas --arch=x64 --electron-version=11.2.3 --asar.unpackDir='build/sounds' --out=packages --ignore='^/src' --ignore='^/.electron-vue' --ignore='^/.envrc' --ignore='^/packages' --ignore='^/plist' --ignore='^/static' --ignore='^/whalebird.db' --ignore='^/screenshot.png' --prune=true --icon=./build/icons/icon.icns --overwrite --app-bundle-id=org.whalebird.desktop --app-version=$npm_package_config_appVersion --build-version=$npm_package_config_buildVersion --extend-info='./plist/team.plist' --osx-sign --app-category-type=public.app-category.social-networking",
+ "build:mas": "yarn run build:clean && yarn run pack && electron-packager ./ 'Whalebird' --platform=mas --arch=x64 --arch=arm64 --electron-version=11.2.3 --asar.unpackDir='build/sounds' --out=packages --ignore='^/src' --ignore='^/.electron-vue' --ignore='^/.envrc' --ignore='^/packages' --ignore='^/plist' --ignore='^/static' --ignore='^/whalebird.db' --ignore='^/screenshot.png' --prune=true --icon=./build/icons/icon.icns --overwrite --app-bundle-id=org.whalebird.desktop --app-version=$npm_package_config_appVersion --build-version=$npm_package_config_buildVersion --extend-info='./plist/team.plist' --app-category-type=public.app-category.social-networking && node ./packages/universal.js",
"package:mac": "electron-builder --mac",
"package:linux": "electron-builder --linux",
"package:win32": "electron-builder --win --ia32",
@@ -217,6 +217,7 @@
"@babel/plugin-transform-runtime": "^7.12.15",
"@babel/preset-env": "^7.12.16",
"@babel/runtime": "7.12.13",
+ "@electron/universal": "^1.0.4",
"@mapbox/stylelint-processor-arbitrary-tags": "^0.3.0",
"@types/auto-launch": "^5.0.1",
"@types/electron-json-storage": "^4.0.0",
diff --git a/packages/universal.js b/packages/universal.js
new file mode 100644
index 00000000..10cd5a6d
--- /dev/null
+++ b/packages/universal.js
@@ -0,0 +1,14 @@
+const { makeUniversalApp } = require('@electron/universal')
+const path = require('path')
+
+const x64AppPath = path.resolve(__dirname, './Whalebird-mas-x64/Whalebird.app')
+const arm64AppPath = path.resolve(__dirname, './Whalebird-mas-arm64/Whalebird.app')
+const universalAppPath = path.resolve(__dirname, './Whalebird-mas-universal/Whalebird.app')
+
+;(async () => {
+ await makeUniversalApp({
+ x64AppPath: x64AppPath,
+ arm64AppPath: arm64AppPath,
+ outAppPath: universalAppPath
+ })
+})()
diff --git a/yarn.lock b/yarn.lock
index ef7caf5b..7701b488 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -881,7 +881,7 @@
global-agent "^2.0.2"
global-tunnel-ng "^2.7.1"
-"@electron/universal@1.0.4":
+"@electron/universal@1.0.4", "@electron/universal@^1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.4.tgz#231ac246c39d45b80e159bd21c3f9027dcaa10f5"
integrity sha512-ajZoumi4XwqwmZe8YVhu4XGkZBCPyWZsVCQONPTIe9TUlleSN+dic3YpXlaWcilx/HOzTdldTKtabNTeI0gDoA==