Installing 64bit USBJTAGNT on macOS

Posted: 
Thursday, May 14, 2020 - 20:45

It appears that development for the traditional build of USBJTAGNT ended late in 2019, and only the 64bit build is being regularly updated.

As is usual with the USBJTAGNT updates the new macOS 64bit install was a hassle to get working. I'm still using Mojave (10.14.6) so ymmv if you've updated to Catalina.

The update has changed the app to a single bundle application instead of the old setup on folders and executable.

The problem here is that while the developer has included the required libraries in the application bundle they have not been correctly linked - at least under 10.14 - so you get an error when you launch the app. Unfortunately the developer doesn't seem to think the fact the macOS build requires users be command line gurus to even run the app is in any way a problem...

Getting the app running

The least messy way I've found to get the app running is to make symbolic links - low level aliases - to places the OS actually looks for the libraries.

Open up the Terminal app in the Utilities folder and then copy and paste the following commands into the terminal. You'll need to hit enter after pasting to execute the commands.

Note: The old version of USBJTAGNT will not start once you've done the following. The main issue is that both apps use libusb-1.0.0.dylib but the old app requires a 32bit library, the new version uses a 64bit library.

Create a link to the USB library:

ln -s /Applications/USBJTAGNT.app/Contents/Frameworks/libusb-1.0.0.dylib /usr/local/lib/libusb-1.0.0.dylib

And then to the QT Frameworks:

ln -s /Applications/USBJTAGNT.app/Contents/Frameworks/QtWidgets.framework ~/Library/Frameworks/QtWidgets.framework
ln -s /Applications/USBJTAGNT.app/Contents/Frameworks/QtGui.framework ~/Library/Frameworks/QtGui.framework
ln -s /Applications/USBJTAGNT.app/Contents/Frameworks/QtCore.framework ~/Library/Frameworks/QtCore.framework
ln -s /Applications/USBJTAGNT.app/Contents/Frameworks/QtNetwork.framework ~/Library/Frameworks/QtNetwork.framework
ln -s /Applications/USBJTAGNT.app/Contents/Frameworks/QtSvg.framework ~/Library/Frameworks/QtSvg.framework
ln -s /Applications/USBJTAGNT.app/Contents/Frameworks/QtPrintSupport.framework ~/Library/Frameworks/QtPrintSupport.framework

Assuming no errors this should give you a functioning USBJTAGNT application.

Using links rather than copying should future proof updates if the framework versions for QT change. You shouldn't need to repeat this when the app is updated.

I'll add details of installing the debrick scripts shortly.