mirror of
https://github.com/netzbegruenung/jitsi-meet-electron.git
synced 2024-05-04 09:43:42 +02:00
Enhancements to make it more Mac App Store (mas) compatible
- disable the autoupdater if running as mas (was not working anyway, just logging an error on every start) - replace check via app.requestSingleInstanceLock() with LSMultipleInstancesProhibited in Info.plist due to https://github.com/electron/electron/issues/15958 - Quit the app also when all windows are closed to conform to macOS Human Interface Guidelines Comments from review: If the application is a single-window app, it might be appropriate to save data and quit the app when the main window is closed. - "asarUnpack": "**/*.node" to also sign the native addons when packaging - add the required mas-specific entitlements which include the app-sandbox key Signed-off-by: Christoph Settgast <csett86@web.de>
This commit is contained in:
parent
9b09a4bfa9
commit
5c49372e11
12
main.js
12
main.js
|
@ -162,7 +162,9 @@ function createJitsiMeetWindow() {
|
|||
setApplicationMenu();
|
||||
|
||||
// Check for Updates.
|
||||
autoUpdater.checkForUpdatesAndNotify();
|
||||
if (!process.mas) {
|
||||
autoUpdater.checkForUpdatesAndNotify();
|
||||
}
|
||||
|
||||
// Load the previous window state with fallback to defaults.
|
||||
const windowState = windowStateKeeper({
|
||||
|
@ -290,8 +292,9 @@ function handleProtocolCall(fullProtocolCall) {
|
|||
|
||||
/**
|
||||
* Force Single Instance Application.
|
||||
* Handle this on darwin via LSMultipleInstancesProhibited in Info.plist as below does not work on MAS
|
||||
*/
|
||||
const gotInstanceLock = app.requestSingleInstanceLock();
|
||||
const gotInstanceLock = process.platform === 'darwin' ? true : app.requestSingleInstanceLock();
|
||||
|
||||
if (!gotInstanceLock) {
|
||||
app.quit();
|
||||
|
@ -345,10 +348,7 @@ app.on('second-instance', (event, commandLine) => {
|
|||
});
|
||||
|
||||
app.on('window-all-closed', () => {
|
||||
// Don't quit the application on macOS.
|
||||
if (process.platform !== 'darwin') {
|
||||
app.quit();
|
||||
}
|
||||
app.quit();
|
||||
});
|
||||
|
||||
// remove so we can register each time as we run the app.
|
||||
|
|
|
@ -39,11 +39,18 @@
|
|||
"hardenedRuntime": true,
|
||||
"entitlements": "entitlements.mac.plist",
|
||||
"entitlementsInherit": "entitlements.mac.plist",
|
||||
"asarUnpack": "**/*.node",
|
||||
"extendInfo": {
|
||||
"NSCameraUsageDescription": "Jitsi Meet requires access to your camera in order to make video-calls.",
|
||||
"NSMicrophoneUsageDescription": "Jitsi Meet requires access to your microphone in order to make calls (audio/video)."
|
||||
"NSMicrophoneUsageDescription": "Jitsi Meet requires access to your microphone in order to make calls (audio/video).",
|
||||
"LSMultipleInstancesProhibited": true
|
||||
}
|
||||
},
|
||||
"mas": {
|
||||
"entitlements": "resources/entitlements.mas.plist",
|
||||
"entitlementsInherit": "resources/entitlements.mas.inherit.plist",
|
||||
"hardenedRuntime": false
|
||||
},
|
||||
"linux": {
|
||||
"artifactName": "jitsi-meet-${arch}.${ext}",
|
||||
"category": "VideoConference;AudioVideo;Audio;Video;Network",
|
||||
|
|
10
resources/entitlements.mas.inherit.plist
Normal file
10
resources/entitlements.mas.inherit.plist
Normal file
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.app-sandbox</key>
|
||||
<true/>
|
||||
<key>com.apple.security.inherit</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
16
resources/entitlements.mas.plist
Normal file
16
resources/entitlements.mas.plist
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.app-sandbox</key>
|
||||
<true/>
|
||||
<key>com.apple.security.network.client</key>
|
||||
<true/>
|
||||
<key>com.apple.security.device.camera</key>
|
||||
<true/>
|
||||
<key>com.apple.security.device.audio-input</key>
|
||||
<true/>
|
||||
<key>com.apple.security.device.microphone</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
Loading…
Reference in a new issue