Приложение запускается только в OSX где было собрано
Собрал Qt приложение (статикой) на OSX 10.15.7, на выходе получил увесистый Application.app (около 30Мб), который замечательно работает в той системе, где я его собрал. При попытке запустить это приложение в другой OSX (тоже 10.15.7), появляется окошко с сообщением "Не удаётся открыть программу Application.app".
Расковырял Application.app и обнаружил, что /Contents/MacOS/Application не имеет chmod +x. Добавил права на запуск, запустил в терминале. Приложение выплёвывает одну строчку: Operation not permitted.
Приложение при запуске обращается в сеть и пишет на диск. Есть мысли, что надо прописать какие-то права в Info.plist. Сейчас он выглядит так:
<?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>NSPrincipalClass</key>
<string>NSApplication</string>
<key>CFBundleIconFile</key>
<string>app.icns</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleGetInfoString</key>
<string>Copyright FooBar</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>
<string>Application</string>
<key>CFBundleIdentifier</key>
<string>foo.bar.application</string>
<key>NOTE</key>
<string>Copyright FooBar</string>
<key>LSUIElement</key>
<string>1</string>
</dict>
</plist>
Причем в Linux и Windows приложение отлично собирается и работает. Что я делаю не так?
Ответы (1 шт):
Это какая-то магия. Со сборкой всё в порядке: дело не в qt, компиляторах или Info.plist.
После сборки я упаковывал Application.app в zip и перекидывал сам себе через Telegram. Вот в этом и проблема: почему-то после передачи через tg у бинарника внутри app пропадают пермишны на запуск, а даже при возврате +x, бинарник отказывается запускаться с сообщением: Operation not permitted. Два раза у меня получилось реанимировать такой бинарник через райтклик "открыть с помощью Терминал", но затем все последующие бинарники, переданные таким образом, начисто отказываются запускаться.
Если же кинуть архив с app на сайт, скачать его оттуда и запустить, то ось ругнётся на неизвестного разработчика, но запустит программу.
Может кто-то расскажет мне что это за магия. Кто ломает бинарники? Тг или макось?