Closed codehearted closed 3 years ago
I just went ahead and tested 2.14.0 to see if it had the same issue. It does not. It's only been a few minutes, but so far 2.14.0 seems to work as well as 2.13.4 did. I'm switching to 2.14.0 for now instead.
Update: After using it for more than an hour I can confirm 2.14.0 works well, exports files that print, etc.
2.14.1 upgraded opencv which introduced some new stuff that may not compatible with emulation, from the logs you sent i can't see it loaded so maybe is that. To access logs, go to UVtools -> Help -> Open settings folder. Is there a errors.log?
I also can send a alternative libcvextern to you try replace the original and test
Lets try this by multiple trys:
Try to run
If fail try to:
If it fail try to:
I had exactly the same issue as OP with v2.14.1. Followed the steps outlined above - first the step with libcvextern.dylib, and then the following two steps when that didn't work. No difference though - still crashes upon opening. I'm running it on an M1 machine by the way - noticed OP was running on an M1 mac as well, so maybe relevant.
My build v2.14.0 was compiled on Monjave x64 and v2.14.1 was compiled on Catalina x64... But my guess is something new on the opencv that is missing... It works under my VM but is x64... I have no way to compile nor test under M1
Try put the x64/libcvextern.dylib into UVtools/Contents/MacOS Should not fix but worth the try
Tried the x64/libcvextern.dylib - no difference unfortunately, still crashes on opening!
Ok i compile it under Monjave and send the libs to test out
I also have the bigsur libs. Try same process with this files: https://we.tl/t-gnRgLCiU8K
Sorry, no luck! Tested with - from bigsur archive 1) libcvextern.dylib (not working) 2) libusb-1.0.0.dylib (not working) 3) libcvextern.dylib from x64 dir (not working)
ok, so did a bit of digging...
Went through all the files that had changed since 12.14.0 and stuck them into 12.14.1 one by one.
If I took the libcvextern.dylib from 12.14.0 release and put it into the 12.14.1 executable then everything works correctly...
The libcvextern in the 12.14.0 release is quite a bit smaller than the ones you've linked to above, so maybe it's much older? It's dated 5th March and is 43,672,084 bytes (sorry, not sure how to find out the version of a dylib!)
libcvextern.dylib: v2.14.0 = OpenCV 4.5.1 v2.14.1 = OpenCV 4.5.2
Is some dependency that changed on opencv452 that mac refuse to load or have in compability mode. It will be hard to know what is.
While old library works with new uvtools, it can give problems on flip operations.
It work fine on Catalina and bigsur x64
Just throwing it out there that I'm happy to test any native m1 version you experiment with - that might 100% fix the problem :)
Native UVtools on M1 will require .NET 6.0: https://github.com/sn4k3/UVtools/issues/187
Ah ok, that's a shame! I was going to offer to compile native m1 opencv4.5.2 for you, but guess that won't help at all if it needs .net v6 :/
Yeah, but will be welcome when i upgrade to .NET 6.0
Just tried your first set of solutions and got the same results as rfield19 (from the https://we.tl/t-mhVUQVBFFu) libraries, and decided it is a safe assumption I would get the same results on the second set (the Big Sur libraries at https://we.tl/t-gnRgLCiU8K -- please let me know if you'd like a second set of tests on those) so I haven't tried them yet. I did go ahead and try the copying libcvextern (only) from 2.14.0 to 2.14.1 as rfield19 said worked for them, and it worked for me as well. Would that lose any functionality?
Also, although the Settings menu item in File works fine, "Open Settings Folder" in the Help menu does not seem to do anything. I hope that helps.
Would that lose any functionality?
Only if you start to play with Flip function... Other than that is safe
Try this monjave build.
Remove old things you put on uvtools before. Start by x64 folder dylib into uvtools contents
No difference with new files unfortunately - doesn't load. With a fresh download of 2.14.1 I tried the dylib in the x64 dir, the one in the root dir, and then all files from the root dir.
with libusb included right? Is there a way to run terminal in emulated way? x64?
that was with libusb included also, yes. I'm not aware of any way of running an emulated terminal apart from inside a vm, but that's probably not a good option!
edit: actually I'm not even sure it would work inside a vm anyway - as parallels can only run arm versions of windows iirc.
I mean, run terminal/console in Rosetta 2 Emulation Mode
Perhaps an old version of iterm might run in rosetta2 mode - not sure.
Lets try natively to see.
Open a terminal on UVtools content folder, and try these commands:
otool -L libcvextern.dylib
otool -L UVtools
OK, I've downloaded an old version of iterm2 - v 3.3.1.2 and it seems to be running under rosetta2 (I've got an app called silicon info running in the taskbar that tells me what it's running as).
If I type otool -L /Applications/UVtools.app/Contents/MacOS/libcvextern.dylib then (same output on both arm and x64 terminals) - I get
/Applications/UVtools.app/Contents/MacOS/libcvextern.dylib (architecture x86_64): @rpath/libcvextern.dylib (compatibility version 0.0.0, current version 0.0.0) /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0) /System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation (compatibility version 1.0.0, current version 2.0.0) /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1265.9.0) /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0) /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0) /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 23.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.250.1) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1671.60.107) /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11) /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.4) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1575.17.0) /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1575.17.0) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
and if I do otool -L /Applications/UVtools.app/ then I get:
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool-classic: can't map file: /Applications/UVtools.app (Invalid argument)
and if I do otool -L /Applications/UVtools.app/ then I get:
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool-classic: can't map file: /Applications/UVtools.app (Invalid argument)
Yes, must be: otool -L /Applications/UVtools.app/Contents/MacOS/UVtools
Can you run the otool on the working libcvextern.dylib (from previous version)
OK, that's better!
otool -L /Applications/UVtools.app/Contents/MacOS/UVtools
/Applications/UVtools.app/Contents/MacOS/UVtools: /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 800.7.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.0.0)
on the default 2.14.1 app )no changes) I get
otool -L /Applications/UVtools.app/Contents/MacOS/libcvextern.dylib @rpath/libcvextern.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/local/opt/libusb/lib/libusb-1.0.0.dylib (compatibility version 4.0.0, current version 4.0.0) /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0) /System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation (compatibility version 1.0.0, current version 2.0.0) /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1463.2.1) /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0) /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0) /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 23.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.60.1) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2022.20.117) /usr/local/opt/tesseract/lib/libtesseract.4.dylib (compatibility version 5.0.0, current version 5.1.0) /usr/local/opt/leptonica/lib/liblept.5.dylib (compatibility version 6.0.0, current version 6.4.0) /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 904.4.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1770.255.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1770.255.0) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
On the 2.14.1 app but with the 2.14.0 libcvextern.dylib copied into it, I get:
/Applications/UVtools.app/Contents/MacOS/libcvextern.dylib (architecture x86_64): @rpath/libcvextern.dylib (compatibility version 0.0.0, current version 0.0.0) /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0) /System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation (compatibility version 1.0.0, current version 2.0.0) /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1265.9.0) /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0) /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0) /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 23.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.250.1) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1671.60.107) /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11) /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.4) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1575.17.0) /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1575.17.0) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
Ok so the diffs are: https://www.diffchecker.com/aXry9pU7
Can you confirm if such blue highlight libraries exists on your mac?
The only one that is present from the blue highlighted entries is line 17 on 2.14.0 (the coretext entry).
The others don't exist.
For 2.14.1 there's no /usr/local/opt directory on the mac at all, just /usr/local
Ok try another command:
objdump -r --dylibs-used /Applications/UVtools.app/Contents/MacOS/UVtools
objdump -r --dylibs-used /Applications/UVtools.app/Contents/MacOS/UVtools
/Applications/UVtools.app/Contents/MacOS/UVtools: file format mach-o 64-bit x86-64
objdump -r --dylibs-used /Applications/UVtools.app/Contents/MacOS/libcvextern.dylib
?
(this is on 2.14.1 app with the 2.14.0 libcvextern.dylib inserted)
/Applications/UVtools.app/Contents/MacOS/libcvextern.dylib: @rpath/libcvextern.dylib (compatibility version 0.0.0, current version 0.0.0) /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0) /System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation (compatibility version 1.0.0, current version 2.0.0) /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1265.9.0) /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0) /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0) /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 23.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.250.1) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1671.60.107) /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11) /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.4) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1575.17.0) /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1575.17.0) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
Oh, and if I do the same command on the default 2.14.1 app, unmodified, then I only get:
objdump -r --dylibs-used /Applications/UVtools.app/Contents/MacOS/libcvextern.dylib
/Applications/UVtools.app/Contents/MacOS/libcvextern.dylib: file format mach-o 64-bit x86-64
Getting hard to debug :( Problem with otool, i think it always shows dependencies, whatever they are or not in the system. I need to dig into this...
Sure, happy to try anything at this end if it helps. I'm not a good programmer, but I'm enthusiastic !
In the end i think what is missing are the :
As libusb is present on the build, but libtesseract and liblep not...
I'd just like to chime in here that I'm running an macOS Catalina (10.15.7) with an Intel Mac and any version above 2.14.0 instantly crashes for me too.
Confirming the problem on MacBook Pro (13-inch, 2018, Four Thunderbolt 3 Ports) macOS Big Sur 11.4 Latest working version is UVtools 2.14.0 All subsequent versions 2.14.1 - 2.14.3 crash at startup by mistake.
Just for info, the same earlier 'band-aid' solution works for 2.14.3 ; if one copies the libcvextern.dylib from 2.14.0 into the new 2.14.3 version then it runs.
I was able to compile it without the libtesseract. Please try by replace only this libcvextern.dylib: https://we.tl/t-1YCIcYlXRu
I was able to compile it without the libtesseract. Please try by replace only this libcvextern.dylib: https://we.tl/t-1YCIcYlXRu
Sorry, copied in the new dylib and same result - crashes while loading. Let me know if you want anything testing whilst the new file is in place.
Sorry, copied in the new dylib and same result - crashes while loading. Let me know if you want anything testing whilst the new file is in place.
Dam... Tried with libusb also?
Yes, first attempt just with libcvextern, second attempt with both libcvextern and libusb. Must be really frustrating :/
I've got a new bit of info for you though - might help!
This is what I get when using the new dylibs with objdump -r --dylibs-used /Applications/UVtools.app/Contents/MacOS/libcvextern.dylib
objc[76371]: Class AMSupportURLConnectionDelegate is implemented in both /usr/lib/libauthinstall.dylib (0x1eee6ec10) and /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x117fbc2b8). One of the two will be used. Which one is undefined. objc[76371]: Class AMSupportURLSession is implemented in both /usr/lib/libauthinstall.dylib (0x1eee6ec60) and /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x117fbc308). One of the two will be used. Which one is undefined.
/Applications/UVtools.app/Contents/MacOS/libcvextern.dylib: @rpath/libcvextern.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libusb-1.0.0.dylib (compatibility version 4.0.0, current version 4.0.0) /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0) /System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation (compatibility version 1.0.0, current version 2.0.0) /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1265.9.0) /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0) /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0) /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 23.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.250.1) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1671.60.107) /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11) /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.4) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1575.17.0) /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1575.17.0) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
can you try download the osx legacy package and try there instead?
How do I run the legacy package? It's just a zip file that unzips to a directory rather than an app.
If I run 'extracted dir'/UVtools exec then it just whinges about 'developer cannot be verified' for every single file it tries to access!
Dam even worse xD
I think after install libusb it worked for me...
brew install libusb
System
Describe the bug
I had been using UVtools 2.13.4 without issue for a while now, but was hoping for a feature that would allow me to delete layers at the bottom to remove islands just slightly above the build plate, so figured I would roll the dice and upgrade when I noticed that 2.14.1 was available today. I used the "automatic upgrade" feature, which seemed rather manual since it just opened the web page to download the new release, downloaded 2.14.1, replaced the old one, and opened it, and it crashed on open (never displayed a GUI - just an OS crash log). Tried it again, crashed again. Every single time. Right clicking to open changed nothing. I tried the old version, it still works fine. So I'm going back to the old version.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
It does not crash and runs as normal
Screenshots
It's just your standard "Problem Report for Avalonia Application" for the title, and "Avalonia Application quit unexpectedly." below that, "Click Reopen to open the application again. This report will be sent to Apple automatically." Really not worth a screenshot. There is a lot of info in the crash log, which would not be captured adequately in a screenshot in any case, which I'll paste below.
Files
Not Applicable.
Exceptions Log file
I'm not sure where this AppData folder would be, I didn't see it inside the UVtools application package folder or in my user/Library/Application Support folder (no UVtools folder there) or the system Application Support. I'm guessing it didn't get launched enough to write anything anyway, but I'd be interested to know where exactly that log gets written on a Mac, if someone knows.
However there is a large crash log as I mentioned above, generated by the OS. I'll put that in Additional Context since no one would want to try to scroll past it to read anything else.
Additional context
Here's that crash log: