Название: Стартует "не оттуда" Отправлено: Igors от Январь 27, 2020, 18:32 Добрый день
Может какая-то новая "фишка" (OSX 10.14.3). У меня все запускается, у заказчика нет. CrashLog пишет Цитировать Dyld Error Message: Пути настроены "от себя", конечно если app файл попал в /private/var/folders - то фреймворка не найдет и не запустится. Но КАК он там оказался? Юзер никак не мог - он копировал приложение со всеми файлами, о существовании /private/var/folders он не подозревает. И что за * в пути т.еLibrary not loaded: @executable_path/../../../My Resources/GStreamer.framework/Versions/1.0/GStreamer Referenced from: /private/var/folders/*/MyApp.app/Contents/MacOS/MyApp Reason: image not found" Цитировать /private/var/folders/* Что сие значит?Спасибо Название: Re: Стартует "не оттуда" Отправлено: Авварон от Январь 27, 2020, 19:06 otool -L на MyApp в студию
Название: Re: Стартует "не оттуда" Отправлено: kambala от Январь 27, 2020, 21:23 @executable_path/../../.. аж на 3 уровня от исполняемого файла указывает, как-то далеко
Название: Re: Стартует "не оттуда" Отправлено: Igors от Январь 28, 2020, 09:00 otool -L на MyApp в студию Не вопрос, посмотрим на тот же путьЦитировать /Users/igor/Desktop/MyApp/MyApp.app/Contents/MacOS/MyApp: @executable_path/libQt5Core.dylib (compatibility version 5.12.0, current version 5.12.1) @executable_path/libQt5Gui.dylib (compatibility version 5.12.0, current version 5.12.1) @executable_path/libQt5Widgets.dylib (compatibility version 5.12.0, current version 5.12.1) @executable_path/libQt5OpenGL.dylib (compatibility version 5.12.0, current version 5.12.1) @executable_path/libQt5Designer.dylib (compatibility version 5.12.0, current version 5.12.1) @executable_path/libQt5Multimedia.dylib (compatibility version 5.12.0, current version 5.12.1) @executable_path/libQt5Network.dylib (compatibility version 5.12.0, current version 5.12.1) @executable_path/libQt5PrintSupport.dylib (compatibility version 5.12.0, current version 5.12.1) /System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.10) @executable_path/SuperPro (compatibility version 1.0.0, current version 1.0.0) @executable_path/../../../My Resources/GStreamer.framework/Versions/1.0/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 23.0.0) @executable_path/../../../My Resources/GStreamer.framework/Versions/1.0/GStreamer (compatibility version 0.0.0, current version 0.0.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1555.10.0) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.4) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1670.0.0) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 50.1.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1555.10.0) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 933.0.0) @executable_path/../../.. аж на 3 уровня от исполняемого файла указывает, как-то далеко Структура такаяЦитировать MyApp (folder) Ну вот и получается на 3 уровня от исполняемого файла что сидит в bundle.MyApp.app (bundle) My Resources (folder) GStreamer.framework (folder) Да, и на моей машине все бычит. Название: Re: Стартует "не оттуда" Отправлено: kambala от Январь 28, 2020, 10:29 а, My Resources не в пакете приложения лежит, тогда понятно :)
а юзер случайно не прямо из архива пытается приложение запустить? /private/var/folders/* — это скорее всего временная папка. Например, в нее мог извлечься только MyApp.app, без My Resources. у меня 10.14.6, могу протестировать. Название: Re: Стартует "не оттуда" Отправлено: Igors от Январь 28, 2020, 11:53 а, My Resources не в пакете приложения лежит, тогда понятно :) Ну да, его еще др приложения юзают для видео и дра юзер случайно не прямо из архива пытается приложение запустить? /private/var/folders/* — это скорее всего временная папка. Например, в нее мог извлечься только MyApp.app, без My Resources. Нет, погуглил - этот фолдер типа "священной коровы", его удалять не могиу меня 10.14.6, могу протестировать. Не могу, проект коммерческий. Но за предложение спасибоДа, и забыл сказать - когда юзер запускает из Terminal - все норм Название: Re: Стартует "не оттуда" Отправлено: kambala от Январь 28, 2020, 12:23 а юзер случайно не прямо из архива пытается приложение запустить? /private/var/folders/* — это скорее всего временная папка. Например, в нее мог извлечься только MyApp.app, без My Resources. Нет, погуглил - этот фолдер типа "священной коровы", его удалять не могиприложение подписано? если нет, может GateKeeper виноват? если из терминала запустить через Код: open /path/to/MyApp.app Название: Re: Стартует "не оттуда" Отправлено: Igors от Январь 29, 2020, 16:23 приложение подписано? если нет, может GateKeeper виноват? Еще нет (занимаются товарищи). Да, скорее всего там собака и порылась. Вот намек (https://support.mokastudio.com/support/solutions/articles/6000184826-macos-sierra-10-12-app-translocation-gatekeeper-path-randomization)Юзер говорит: сначала запустите на своей машине, потом зипуйте. Откуда он это взял - хз, ну ладно, бум так "пробывать" Совсем забросил ОС, чувствую себя несведущим :) Название: Re: Стартует "не оттуда" Отправлено: Igors от Февраль 01, 2020, 08:53 Так, ну предложение юзера не оправдалось - все равно у него не стартует. А вот фокус с xattr (ссылка выше) работает. Конечно только у него, у меня bundle (app) никакого xattr не имеет. Наверно OSX ставит этот атрибут когда вытаскивает из zip'a.
Может сделать маленькое приложение чтобы избавить от возни с terminal'ом? Тогда вопрос - а как в командную строку передать это злосчастное "sudo"? Название: Re: Стартует "не оттуда" Отправлено: kambala от Февраль 01, 2020, 20:37 да, это GateKeeper добавляет к «непроверенным» приложениям.
можно не в командную строку добавлять sudo, а просто запросить повышение привилегий для маленького приложения у системы. Название: Re: Стартует "не оттуда" Отправлено: Igors от Февраль 03, 2020, 14:00 можно не в командную строку добавлять sudo, а просто запросить повышение привилегий для маленького приложения у системы. Расскажите как (для меня командная строка всегда была врагом народа :))Передача sudo - актуально, как я понял, повышение все равно через Terminal, и объяснять каждому (а они любят что-то набирать еще меньше) - запарюсь Название: Re: Стартует "не оттуда" Отправлено: kambala от Февраль 03, 2020, 16:57 нет, зачем именно через командную строку? можно же выполнить любую операцию и через какой-нибудь NSTask, а то и вовсе вызвать напрямую removexattr() (или какая там функция подходит).
повышение привилегий: https://developer.apple.com/library/archive/documentation/Security/Conceptual/authorization_concepts/02authconcepts/authconcepts.html (сам такой код не писал) или даже еще проще: просто создать скрипт, который все сам выполнит, и дать ему расширение .command (можно мышкой дважды кликнуть для запуска). что-то типа такого: Код юзеру только надо будет ввести свой пароль и всё. Название: Re: Стартует "не оттуда" Отправлено: Igors от Февраль 05, 2020, 10:28 или даже еще проще: просто создать скрипт, который все сам выполнит, и дать ему расширение .command (можно мышкой дважды кликнуть для запуска). что-то типа такого: Да, привлекательно. А можно здесь как-нибудь пискнуть типа "file not found" (а то хз сработало или нет). СпвсибоКод юзеру только надо будет ввести свой пароль и всё. Название: Re: Стартует "не оттуда" Отправлено: kambala от Февраль 05, 2020, 11:35 так он и сам пискнет:
Код: $ xattr -r -d com.apple.quarantine ./asd Код
Название: Re: Стартует "не оттуда" Отправлено: Igors от Февраль 06, 2020, 08:56 Спасибо, бум пробывать
|