v1.8.0 #429
23
.github/workflows/electron-build.yml
vendored
23
.github/workflows/electron-build.yml
vendored
@@ -169,22 +169,21 @@ jobs:
|
|||||||
echo "Imported certificates:"
|
echo "Imported certificates:"
|
||||||
security find-identity -v -p codesigning $KEYCHAIN_PATH
|
security find-identity -v -p codesigning $KEYCHAIN_PATH
|
||||||
|
|
||||||
- name: Set version for build
|
|
||||||
if: steps.check_certs.outputs.has_certs == 'true'
|
|
||||||
run: |
|
|
||||||
# Get current version and extract major.minor
|
|
||||||
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
||||||
MAJOR_MINOR=$(echo $CURRENT_VERSION | cut -d. -f1-2)
|
|
||||||
NEW_VERSION="${MAJOR_MINOR}.${{ github.run_number }}"
|
|
||||||
|
|
||||||
npm version $NEW_VERSION --no-git-tag-version
|
|
||||||
echo "✅ Version set to: $NEW_VERSION"
|
|
||||||
|
|
||||||
- name: Build macOS App Store Package
|
- name: Build macOS App Store Package
|
||||||
if: steps.check_certs.outputs.has_certs == 'true'
|
if: steps.check_certs.outputs.has_certs == 'true'
|
||||||
env:
|
env:
|
||||||
ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES: true
|
ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES: true
|
||||||
run: npm run build:mac
|
run: |
|
||||||
|
# Get current version and extract major.minor
|
||||||
|
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
||||||
|
MAJOR_MINOR=$(echo $CURRENT_VERSION | cut -d. -f1-2)
|
||||||
|
BUILD_VERSION="${MAJOR_MINOR}.${{ github.run_number }}"
|
||||||
|
|
||||||
|
echo "✅ Package version: $CURRENT_VERSION (unchanged)"
|
||||||
|
echo "✅ Build version for Apple: $BUILD_VERSION"
|
||||||
|
|
||||||
|
# Build with custom buildVersion without modifying package.json
|
||||||
|
npm run build && electron-builder --mac --universal --config.buildVersion="$BUILD_VERSION"
|
||||||
|
|
||||||
- name: List release directory
|
- name: List release directory
|
||||||
if: steps.check_certs.outputs.has_certs == 'true'
|
if: steps.check_certs.outputs.has_certs == 'true'
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
"arch": "universal"
|
"arch": "universal"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"icon": "public/icon.icns",
|
"icon": "public/icon-mac.png",
|
||||||
"category": "public.app-category.developer-tools",
|
"category": "public.app-category.developer-tools",
|
||||||
"hardenedRuntime": true,
|
"hardenedRuntime": true,
|
||||||
"gatekeeperAssess": false,
|
"gatekeeperAssess": false,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
const { app, BrowserWindow, shell, ipcMain, dialog } = require("electron");
|
const { app, BrowserWindow, shell, ipcMain, dialog, Menu } = require("electron");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
const os = require("os");
|
const os = require("os");
|
||||||
@@ -462,7 +462,68 @@ ipcMain.handle("test-server-connection", async (event, serverUrl) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function createMenu() {
|
||||||
|
if (process.platform === "darwin") {
|
||||||
|
const template = [
|
||||||
|
{
|
||||||
|
label: app.name,
|
||||||
|
submenu: [
|
||||||
|
{ role: "about" },
|
||||||
|
{ type: "separator" },
|
||||||
|
{ role: "services" },
|
||||||
|
{ type: "separator" },
|
||||||
|
{ role: "hide" },
|
||||||
|
{ role: "hideOthers" },
|
||||||
|
{ role: "unhide" },
|
||||||
|
{ type: "separator" },
|
||||||
|
{ role: "quit" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Edit",
|
||||||
|
submenu: [
|
||||||
|
{ role: "undo" },
|
||||||
|
{ role: "redo" },
|
||||||
|
{ type: "separator" },
|
||||||
|
{ role: "cut" },
|
||||||
|
{ role: "copy" },
|
||||||
|
{ role: "paste" },
|
||||||
|
{ role: "selectAll" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "View",
|
||||||
|
submenu: [
|
||||||
|
{ role: "reload" },
|
||||||
|
{ role: "forceReload" },
|
||||||
|
{ role: "toggleDevTools" },
|
||||||
|
{ type: "separator" },
|
||||||
|
{ role: "resetZoom" },
|
||||||
|
{ role: "zoomIn" },
|
||||||
|
{ role: "zoomOut" },
|
||||||
|
{ type: "separator" },
|
||||||
|
{ role: "togglefullscreen" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Window",
|
||||||
|
submenu: [
|
||||||
|
{ role: "minimize" },
|
||||||
|
{ role: "zoom" },
|
||||||
|
{ type: "separator" },
|
||||||
|
{ role: "front" },
|
||||||
|
{ type: "separator" },
|
||||||
|
{ role: "window" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const menu = Menu.buildFromTemplate(template);
|
||||||
|
Menu.setApplicationMenu(menu);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
app.whenReady().then(() => {
|
app.whenReady().then(() => {
|
||||||
|
createMenu();
|
||||||
createWindow();
|
createWindow();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
BIN
public/icon-mac.png
Normal file
BIN
public/icon-mac.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
BIN
public/icon.icns
BIN
public/icon.icns
Binary file not shown.
Reference in New Issue
Block a user