Приложение Qt для Mac не запускается

#macos #download #launch #macos-mojave

#macos #Скачать #запуск #macos-mojave

Вопрос:

Я работаю над приложением, написанным на Qt для среды macOS. Для создания сборки релиза я настроил внешний сервер.

Я вижу это:

После создания сборки, если я загружаю и устанавливаю приложение в папке Applications, при его открытии сначала я вижу всплывающее окно с вопросом, уверен ли я, что открою приложение, загруженное из Интернета (Gatekeeper), поэтому я нажимаю Открыть, а затем приложение умирает.

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

Проверяя атрибуты файла приложения, я вижу, что в нем есть com.apple.quarantine. Если удалить его вручную, с помощью xattr -dr com.apple.quarantine приложение откроется без каких-либо проблем

Есть идеи о том, почему оно не запускается?? Заранее спасибо

Комментарии:

1. Версия Macos? Запускал macdeployqt?

2. macOS 10.14 Mojave. macqtdeploy был запущен, и он завершился без ошибок

Ответ №1:

У меня была такая же проблема с моим программным обеспечением, и я вызвал инцидент с разработчиком, который позволил найти основную причину:

При первом запуске с атрибутом карантина Gatekeeper передаст дополнительный аргумент командной строки. Из того, что я мог наблюдать, оно имеет вид:

 -psn_0_<some sequence of numbers>
  

например

 -psn_0_2445909
  

В этом случае Qt QCommandLineParser отклоняет неизвестные аргументы и вызовы exit(1); .

Таким образом, необходимо отфильтровать argc / argv и удалить этот фиктивный аргумент, прежде чем передавать их в Q{Core,Gui,}Application .