Solved Unable to run QtWebEngine application from /Applications folder on OSX 10.11.2
-
Hello all,
I'm having trouble running my Qt 5.5.1_2 app from the
/Applications
folder. I've created a Release version of the app using xcode'sProduct > Build For > Profiling
. The .app package was then bundled with Frameworks and plugins using/usr/local/Cellar/qt5/5.5.1_2/bin/macdeployqt pt.app -executable=pt.app/Contents/MacOS/pt
.At this point, if I try to run the app using the command line inside the original folder, everything works ok. However, if I copy the .app bundle to
/Applications
and attempt to run it from there, I get errors or crashes.If I run from the command line inside the
/Applications
folder, I get the following error:dyld: Library not loaded: @executable_path/../../../../../../../QtCore.framework/QtCore Referenced from: /Applications/pt.app/Contents/Frameworks/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/MacOS/QtWebEngineProcess Reason: image not found
If I run by double clicking the package, it crashes (crash log at the bottom).
Here is the otool output for the build folder version:
pt.app/Contents/MacOS/pt: @loader_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtGui.framework/Versions/5/QtGui (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtCore.framework/Versions/5/QtCore (compatibility version 5.5.0, current version 5.5.1) /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) @loader_path/../Frameworks/QtNetwork.framework/Versions/5/QtNetwork (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtWebEngineWidgets.framework/Versions/5/QtWebEngineWidgets (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtWebEngine.framework/Versions/5/QtWebEngine (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtQuick.framework/Versions/5/QtQuick (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtQml.framework/Versions/5/QtQml (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtSerialPort.framework/Versions/5/QtSerialPort (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtWebChannel.framework/Versions/5/QtWebChannel (compatibility version 5.5.0, current version 5.5.1) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 104.1.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.0.0)
Here is the otool (otool -L /Applications/pt.app/Contents/MacOS/pt) output for the Application folder version:
/Applications/pt.app/Contents/MacOS/pt: @loader_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtGui.framework/Versions/5/QtGui (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtCore.framework/Versions/5/QtCore (compatibility version 5.5.0, current version 5.5.1) /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) @loader_path/../Frameworks/QtNetwork.framework/Versions/5/QtNetwork (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtWebEngineWidgets.framework/Versions/5/QtWebEngineWidgets (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtWebEngine.framework/Versions/5/QtWebEngine (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtQuick.framework/Versions/5/QtQuick (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtQml.framework/Versions/5/QtQml (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtSerialPort.framework/Versions/5/QtSerialPort (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtWebChannel.framework/Versions/5/QtWebChannel (compatibility version 5.5.0, current version 5.5.1) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 104.1.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.0.0)
Crash stack:
Date/Time: 2016-02-17 16:32:55.822 -0500 OS Version: Mac OS X 10.11.2 (15C50) Report Version: 11 Anonymous UUID: 9419D0A2-DB32-56B7-A1B7-8FDFEA4F9DCB Sleep/Wake UUID: D9F39846-1638-4DAC-8756-257A33BD2644 Time Awake Since Boot: 2200000 seconds Time Since Wake: 5800 seconds System Integrity Protection: enabled Crashed Thread: 0 CrBrowserMain Dispatch queue: com.apple.main-thread Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000018 Exception Note: EXC_CORPSE_NOTIFY VM Regions Near 0x18: --> __TEXT 0000000105a5d000-0000000105a73000 [ 88K] r-x/rwx SM=COW /Applications/pt.app/Contents/MacOS/pt Thread 0 Crashed:: CrBrowserMain Dispatch queue: com.apple.main-thread 0 org.qt-project.Qt.QtWebEngineCore 0x000000010858b62f 0x107571000 + 16885295 1 org.qt-project.Qt.QtWebEngineCore 0x000000010759f71f QtWebEngineCore::WebContentsAdapter::browserAccessible() + 49 2 org.qt-project.QtWebEngineWidgets 0x0000000106d3972f 0x106d28000 + 71471 3 libqcocoa.dylib 0x000000010ac97fbb QCocoaAccessible::unignoredChildren(QAccessibleInterface*) + 27 4 libqcocoa.dylib 0x000000010ac95537 -[QMacAccessibilityElement accessibilityAttributeValue:] + 471 5 com.apple.AppKit 0x00007fff836db164 NSAccessibilityGetObjectForAttributeUsingLegacyAPI + 392 6 com.apple.AppKit 0x00007fff836d97d8 _NSAccessibilityEntryPointValueForAttribute + 1879 7 com.apple.AppKit 0x00007fff836d899e NSAccessibilityChildren + 41 8 com.apple.AppKit 0x00007fff836d8934 NSAccessibilityUnignoredChildrenForOnlyChild + 73 9 libqcocoa.dylib 0x000000010ac80005 -[QNSView(QNSViewAccessibility) accessibilityAttributeValue:] + 101 10 com.apple.AppKit 0x00007fff836db164 NSAccessibilityGetObjectForAttributeUsingLegacyAPI + 392 11 com.apple.AppKit 0x00007fff836da562 NSAccessibilityGetObjectValueForAttribute + 1273 12 com.apple.AppKit 0x00007fff836d9bfa -[NSAccessibilityAttributeAccessorInfo getAttributeValue:forObject:] + 58 13 com.apple.AppKit 0x00007fff836d9504 _NSAccessibilityEntryPointValueForAttribute + 1155 14 com.apple.AppKit 0x00007fff836d899e NSAccessibilityChildren + 41 15 com.apple.AppKit 0x00007fff836dc094 NSAccessibilityUnignoredChildren + 205 16 com.apple.AppKit 0x00007fff836db164 NSAccessibilityGetObjectForAttributeUsingLegacyAPI + 392 17 com.apple.AppKit 0x00007fff836da562 NSAccessibilityGetObjectValueForAttribute + 1273 18 com.apple.AppKit 0x00007fff836d9bfa -[NSAccessibilityAttributeAccessorInfo getAttributeValue:forObject:] + 58 19 com.apple.AppKit 0x00007fff836d9504 _NSAccessibilityEntryPointValueForAttribute + 1155 20 com.apple.AppKit 0x00007fff836d899e NSAccessibilityChildren + 41 21 com.apple.AppKit 0x00007fff83914186 -[NSView(NSViewAccessibility) _accessibilityBasicHitTest:] + 120 22 com.apple.AppKit 0x00007fff839140f4 -[NSView(NSViewAccessibility) accessibilityHitTest:] + 22 23 com.apple.AppKit 0x00007fff83e411cb -[NSWindow(NSWindowAccessibility) accessibilityHitTest:] + 514 24 com.apple.AppKit 0x00007fff83a90620 -[NSApplication(NSApplicationAccessibility) accessibilityHitTest:] + 282 25 com.apple.AppKit 0x00007fff83a72473 CopyElementAtPosition + 294 26 com.apple.HIServices 0x00007fff85c31afb _AXXMIGCopyElementAtPosition + 294 27 com.apple.HIServices 0x00007fff85c3a9da _XCopyElementAtPosition + 388 28 com.apple.HIServices 0x00007fff85c13dad mshMIGPerform + 199 29 com.apple.CoreFoundation 0x00007fff8eca0839 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 41 30 com.apple.CoreFoundation 0x00007fff8eca07a9 __CFRunLoopDoSource1 + 473 31 com.apple.CoreFoundation 0x00007fff8ec91e1b __CFRunLoopRun + 2171 32 com.apple.CoreFoundation 0x00007fff8ec91338 CFRunLoopRunSpecific + 296 33 com.apple.HIToolbox 0x00007fff8f729935 RunCurrentEventLoopInMode + 235 34 com.apple.HIToolbox 0x00007fff8f72976f ReceiveNextEventCommon + 432 35 com.apple.HIToolbox 0x00007fff8f7295af _BlockUntilNextEventMatchingListInModeWithFilter + 71 36 com.apple.AppKit 0x00007fff836bd0ee _DPSNextEvent + 1067 37 com.apple.AppKit 0x00007fff83a89943 -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454 38 com.apple.AppKit 0x00007fff839c0196 +[NSWindow(NSWindowResizing) _mouseHysteresisCheck:withExpiration:andDistance:finalMouseLocation:] + 467 39 com.apple.AppKit 0x00007fff838747c3 -[NSWindow(NSWindowResizing) _hitTestWithHysteresisCheck:forEvent:allowWindowDragging:] + 308 40 com.apple.AppKit 0x00007fff83e28b69 -[NSWindow _handleMouseDownEvent:isDelayedEvent:] + 1790 41 com.apple.AppKit 0x00007fff83e2afad -[NSWindow _reallySendEvent:isDelayedEvent:] + 212 42 com.apple.AppKit 0x00007fff83783735 -[NSWindow sendEvent:] + 517 43 libqcocoa.dylib 0x000000010ac6e6d7 -[QNSWindow superSendEvent:] + 39 44 libqcocoa.dylib 0x000000010ac6e080 -[QNSWindowHelper handleWindowEvent:] + 432 45 com.apple.AppKit 0x00007fff8377fe49 -[NSApplication sendEvent:] + 2540 46 libqcocoa.dylib 0x000000010ac8581e -[QNSApplication sendEvent:] + 78 47 com.apple.AppKit 0x00007fff836b303a -[NSApplication run] + 796 48 libqcocoa.dylib 0x000000010ac822df QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 2191 49 org.qt-project.QtCore 0x0000000106825c1c QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 412 50 org.qt-project.QtCore 0x0000000106828a95 QCoreApplication::exec() + 341 51 MyApp.pt 0x0000000105a62be4 0x105a5d000 + 23524 52 libdyld.dylib 0x00007fff9228b5ad start + 1 Thread 0 crashed with X86 Thread State (64-bit): rax: 0x0000000000000000 rbx: 0x0000000000000000 rcx: 0x00007fc9f3b00620 rdx: 0x0000000000000084 rdi: 0x0000000000000000 rsi: 0x0000000000000001 rbp: 0x00007fff5a19e8c0 rsp: 0x00007fff5a19e8b0 r8: 0x00007fc9f3b00620 r9: 0x00000000000000c1 r10: 0x0000000100000003 r11: 0x00000000000000c0 r12: 0x00007fff72142fb0 r13: 0x00007fc9f15ad960 r14: 0x00007fc9f15ad960 r15: 0x00007fc9f1588fb0 rip: 0x000000010858b62f rfl: 0x0000000000010202 cr2: 0x0000000000000018 Logical CPU: 0 Error Code: 0x00000004 Trap Number: 14 ... More here but cutoff by forum post limit. External Modification Summary: Calls made by other processes targeting this process: task_for_pid: 1 thread_create: 0 thread_set_state: 0 Calls made by this process: task_for_pid: 0 thread_create: 0 thread_set_state: 0 Calls made by all processes on this machine: task_for_pid: 6237540 thread_create: 0 thread_set_state: 8388 VM Region Summary: ReadOnly portion of Libraries: Total=303.7M resident=0K(0%) swapped_out_or_unallocated=303.7M(100%) Writable regions: Total=526.2M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=526.2M(100%) VIRTUAL REGION REGION TYPE SIZE COUNT (non-coalesced) =========== ======= ======= Accelerate.framework 128K 2 Activity Tracing 2048K 2 CG backing stores 40.6M 6 CG image 184K 14 CG shared images 336K 9 CoreAnimation 88K 15 CoreUI image data 2260K 13 CoreUI image file 192K 3 Dispatch continuations 16.0M 2 Foundation 4K 2 Kernel Alloc Once 8K 3 MALLOC 294.1M 50 MALLOC guard page 32K 7 Memory Tag 242 12K 2 Memory Tag 255 547.7M 26 Memory Tag 255 (reserved) 140K 5 reserved VM address space (unallocated) OpenCL 8K 2 OpenGL GLSL 256K 4 Process Corpse Info 2048K 2 STACK GUARD 56.1M 31 Stack 149.0M 33 VM_ALLOCATE 144K 13 __DATA 21.7M 229 __GLSLBUILTINS 2588K 2 __IMAGE 528K 2 __LINKEDIT 97.4M 24 __TEXT 206.3M 234 __UNICODE 552K 2 mapped file 61.9M 17 shared memory 16.3M 10 =========== ======= ======= TOTAL 1.5G 736 TOTAL, minus reserved VM space 1.5G 736 Model: MacBookPro11,4, BootROM MBP114.0172.B07, 4 processors, Intel Core i7, 2.2 GHz, 16 GB, SMC 2.29f24 Graphics: Intel Iris Pro, Intel Iris Pro, Built-In Memory Module: BANK 0/DIMM0, 8 GB, DDR3, 1600 MHz, 0x802C, 0x31364B544631473634485A2D314736453120 Memory Module: BANK 1/DIMM0, 8 GB, DDR3, 1600 MHz, 0x802C, 0x31364B544631473634485A2D314736453120 AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x152), Broadcom BCM43xx 1.0 (7.21.94.136.1a1) Bluetooth: Version 4.4.3f4 16616, 3 services, 27 devices, 1 incoming serial ports Network Service: Wi-Fi, AirPort, en0 Serial ATA Device: APPLE SSD SM0256G, 251 GB USB Device: USB 3.0 Bus USB Device: Apple Internal Keyboard / Trackpad USB Device: Bluetooth USB Host Controller Thunderbolt Bus: MacBook Pro, Apple Inc., 27.1
-
Quick update:
If I drag the unmodified .app bundle to /Applications first, then run
/usr/local/Cellar/qt5/5.5.1_2/bin/macdeployqt /Applications/my.app -executable=/Applications/my.app/Contents/MacOS/pt
(with or without -dmg), the paths are re-written correctly. Is this a bug? Shouldn't the@loader_path
always be relative to where the current executable actually is? Currently this implies that /Applications is the also the build folder!Any suggestions?
-
Hi,
Why do you need to pass the -executable parameter ?
-
Thank you for replying so quickly.
When I run
/usr/local/Cellar/qt5/5.5.1_2/bin/macdeployqt my.app/
without the-executable=
arg, and then try to run the executable with./my.app/Contents/MacOS/my
, I get the following error (basically -executable allowed the app to run in at least some context):dyld: Library not loaded: @executable_path/../Frameworks/QtQuick.framework/Versions/5/QtQuick Referenced from: /Users/pavela/Development/my_app/pt/Release/my.app/Contents/Frameworks/QtWebEngineCore.framework/Versions/5/QtWebEngineCore Reason: image not found
If I copy the app bundle to
/Applications
and attempt to run it with/Applications/my.app/Contents/MacOS/my
, I get:dyld: Library not loaded: @executable_path/../../../../../../../QtCore.framework/QtCore Referenced from: /Applications/my.app/Contents/Frameworks/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/MacOS/QtWebEngineProcess Reason: image not found
otool -L seems to give a correct output:
@executable_path/../Frameworks/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets (compatibility version 5.5.0, current version 5.5.1) @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.5.0, current version 5.5.1) @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui (compatibility version 5.5.0, current version 5.5.1) @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore (compatibility version 5.5.0, current version 5.5.1) /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) @executable_path/../Frameworks/QtWebKit.framework/Versions/5/QtWebKit (compatibility version 5.5.0, current version 5.5.1) @executable_path/../Frameworks/QtNetwork.framework/Versions/5/QtNetwork (compatibility version 5.5.0, current version 5.5.1) @executable_path/../Frameworks/QtWebEngineWidgets.framework/Versions/5/QtWebEngineWidgets (compatibility version 5.5.0, current version 5.5.1) @executable_path/../Frameworks/QtWebEngine.framework/Versions/5/QtWebEngine (compatibility version 5.5.0, current version 5.5.1) @executable_path/../Frameworks/QtQuick.framework/Versions/5/QtQuick (compatibility version 5.5.0, current version 5.5.1) @executable_path/../Frameworks/QtQml.framework/Versions/5/QtQml (compatibility version 5.5.0, current version 5.5.1) @executable_path/../Frameworks/QtSerialPort.framework/Versions/5/QtSerialPort (compatibility version 5.5.0, current version 5.5.1) @executable_path/../Frameworks/QtWebChannel.framework/Versions/5/QtWebChannel (compatibility version 5.5.0, current version 5.5.1) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 104.1.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.0.0)
What exactly is @executable_path evaluating to here?
-
Are you really using both QtWebkit and QtWebEngine in your application ?
-
Sorry for the late reply. No, I don't need QWebKit or QWebKitWidgets. They were automatically bundled in with
qmake -spec macx-xcode
. I removed them from the linked frameworks and the general framework list. Unfortunately the problem is still the same. Anything that gets built outside of/Applications
or I build without the-executable=
path means that I can't run the application at all (without executable) or can't run it outside of the build folder.I'm happy to provide any required output for any specific combination of bundling options.
Any ideas?
P.S. When I run the bundle (without QWebKit, etc) from
/Applications
that was not built in that folder, I still get:dyld: Library not loaded: @executable_path/../../../../../../../QtCore.framework/QtCore Referenced from: /Applications/MyApp.app/Contents/Frameworks/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/MacOS/QtWebEngineProcess Reason: image not found
and
/Applications/MyApp.app/Contents/MacOS/MyApp: @loader_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtGui.framework/Versions/5/QtGui (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtCore.framework/Versions/5/QtCore (compatibility version 5.5.0, current version 5.5.1) /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) @loader_path/../Frameworks/QtNetwork.framework/Versions/5/QtNetwork (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtWebEngineWidgets.framework/Versions/5/QtWebEngineWidgets (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtWebEngine.framework/Versions/5/QtWebEngine (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtQuick.framework/Versions/5/QtQuick (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtQml.framework/Versions/5/QtQml (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtSerialPort.framework/Versions/5/QtSerialPort (compatibility version 5.5.0, current version 5.5.1) @loader_path/../Frameworks/QtWebChannel.framework/Versions/5/QtWebChannel (compatibility version 5.5.0, current version 5.5.1) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 104.1.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.0.0)
-
Can you check if you have the same thing happening with a more recent version of Qt e.g. 5.6RC ?
-
@pavel_abr: like @SGaist, I am surprised at how you run
macdeployqt
. Whenever I use it (i.e. not often since I prefer to deploy my application myself using various CMake macros of mine), I do something like:$ cd /path/to/my/application $ macdeployqt my_application.app
-