Я работаю над приложением, написанным на Qt для среды macOS. Чтобы создать сборку релиза, я настроил внешний сервер.
Я вижу это:
После создания сборки, если я загружаю и устанавливаю приложение в папку «Приложения», при его открытии сначала я вижу всплывающее окно с вопросом, уверен ли я, что открою приложение, загруженное из Интернета (привратник), поэтому я нажимаю «Открыть», а затем приложение умирает.
Приложение работает нормально, если я открываю его из командной строки в терминале.
Проверяя атрибуты файла приложения, я вижу, что он имеет com.apple.quarantine. Если удалить его вручную, с помощью xattr -dr приложение com.apple.quarantine открывается без проблем.
Есть идеи почему не запускается?? Спасибо заранее
MacOS 10.14 Мохаве. macqtdeploy был запущен и завершился без ошибок
У меня была такая же проблема с моим программным обеспечением, и я поднял инцидент с разработчиком, который позволил найти основную причину:
При первом запуске с атрибутом карантина Gatekeeper передаст дополнительный аргумент командной строки. Из того, что я мог наблюдать, он имеет форму:
-psn_0_<some sequence of numbers>
например
-psn_0_2445909
QCommandLineParser
Qt отклоняет неизвестные аргументы и в этом случае вызывает exit(1);
.
Таким образом, необходимо отфильтровать argc
/ argv
и удалить этот фиктивный аргумент перед передачей их в Q{Core,Gui,}Application
.
Версия для Макоса? Запустили macdeployqt?