Я уже некоторое время пытаюсь отладить проблему с нашим электронным приложением, но это становится довольно загадкой.
Проблема: периодически при использовании ярлыка выхода ( cmd + Q ), пользовательский интерфейс приложения успешно исчезает, но он остается в строке меню (mac) / попытке уведомления (победа) и отображает шарик смерти при наведении курсора.
И мне нужно перейти к монитору активности, чтобыфактически принудительно закрыть его приложение не отвечает
Это происходит только с упакованным производственным приложением, а не в режиме разработки.При просмотре журналов кажется, что все события выхода завершены правильно.
app.on('window-all-closed', () => {
log.info('All windows closed');
if (process.platform != 'darwin') {
app.quit();
}
});
// Logs to help nail down quit failures
app.on('will-quit', () => log.info('App will quit'));
app.on('quit', () => log.info('App is quitting'));
app.on('before-quit', async () => {
log.info('Attempting to quit app');
}
tail of log.log
[2019-02-04 14:29:34.543] [info] electron: message received: windows-info
[2019-02-04 14:29:35.831] [info] Attempting to quit app
[2019-02-04 14:29:35.919] [info] stopping mouse tracking
[2019-02-04 14:29:36.073] [info] App will quit
[2019-02-04 14:29:36.079] [info] App is quitting
[2019-02-04 14:29:36.127] [info] ? mac binary: main.swift:49 : sendPayload(messageToSend:): {"type":"will-close-expectedly"}
[2019-02-04 14:29:36.128] [info] electron: message received: will-close-expectedly
[2019-02-04 14:29:36.130] [info] daemon binary /Applications/Loom.app/Contents/Resources/app.asar.unpacked/dist/binaries/loom-mac-recorderproduction exited
[2019-02-04 14:29:37.555] [error] No menubar present
[2019-02-04 14:29:37.676] [error] No menubar present
[2019-02-04 14:29:39.537] [error] No menubar present
[2019-02-04 14:29:39.675] [error] No menubar present
[2019-02-04 14:29:41.653] [error] No menubar present
[2019-02-04 14:29:41.790] [error] No menubar present
Как видно из журнала, все события выхода завершаютсяв правильном порядке, но приложение все еще остается в меню Mac.Интересная вещь, которая случается, является [error] No menubar present
.Это появляется всякий раз, когда я пытаюсь нажать на иконку в строке меню.Он должен выбросить, когда пытается скрыть меню приложения.Это вопрос меню: https://github.com/maxogden/menubar.
Вот как выглядит журнал успешного завершения
019-02-04 14:52:36.722] [info] Attempting to quit app
[2019-02-04 14:52:36.740] [info] stopping mouse tracking
[2019-02-04 14:52:36.868] [info] App will quit
[2019-02-04 14:52:36.874] [info] App is quitting
[2019-02-04 14:52:36.887] [info] ? mac binary: main.swift:49 : sendPayload(messageToSend:): {"type":"will-close-expectedly"}
[2019-02-04 14:52:36.889] [info] daemon binary /Applications/LoomStaging.app/Contents/Resources/app.asar.unpacked/dist/binaries/loom-mac-recorderstaging exited
Можно ли как-то разобраться в том, что заставляет приложение зависать, так какКажется, что нет никаких ошибок в основном процессе, только это призрачное состояние, когда все элементы пользовательского интерфейса исчезли, но процесс застрял.Есть ли способ глубже вникнуть в то, что происходит / где он зависает.
Еще один интересный момент заключается в том, что всякий раз, когда мы выполняем quitAndInstall при обновлении (используя электронный построитель), если вышеупомянутая строка меню hidden
, тогда почти всегда мы попадаем в это странное состояние зависания, но когда строка меню видна и мы запускаем quitAndInstall, она работает нормально.