Приложение Electron зависает при выходе, хотя все события успешно завершены - PullRequest
0 голосов
/ 05 февраля 2019

Я уже некоторое время пытаюсь отладить проблему с нашим электронным приложением, но это становится довольно загадкой.

Проблема: периодически при использовании ярлыка выхода ( 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, она работает нормально.

...