Current version
If you don’t like or don’t have the time for tinkering, we have:
-
An Upplay 1.8.0 fat (x86_64+arm64) binary version built on Mac OS Ventura using Qt 6.7.3 upplay-1.8.1-20250115-e86437ab-webengine.dmg
It should run on ARM macs, but I did not test because I don’t have one.
Note
|
The ARM-based Mac computers will absolutely refuse to run unsigned code (unlike the Intel Macs which protest but yield to user insistence). I can’t sign the Upplay bundle, but happily enough, it appears that you can do it yourself with the following commands (the second one gets rid of the helpful proposition to move the app to the Trash): codesign -s - -f --deep /path/to/upplay.app xattr -rd com.apple.quarantine /path/to/upplay.app Thanks to Recoll user Che Kon for finding this out. |
Note
|
I have a report that upplay sometimes crashes on first execution when there are several screens connected. The current workaround is to only keep one screen and run upplay once and exit, then re-connect the screens. Further executions run fine with multiple screens connected. Thanks to Juan Pablo for finding the workaround ! Hopefully I’ll find a way to fix this… |
Older versions - A contributed "universal" 1.7.2 x86_64/arm64 version: upplay-1.7.2-arm+x64-contrib.dmg
Building
Two possibilities for building:
-
Use Macports or Homebrew: npupnp, libupnpp and upplay build just fine, using Qt 5/6 and other tools from the ports (and using the regular build scripts). Check the linux build instructions.
-
Use a more native approach, using Qt creator and the .pro files of each project (in the macos directories for npupnp and libupnpp, and the default upplay one). Details follow.
Building without a ports tree
Install Qt with Qt Creator, and XCode (see the Qt docs for this).
Extract and build libmicrohttpd 1.0.1. The regular configure/make method bundled with the lib source "just works":
./configure --without-gnutls --disable-tools --disable-examples make CFLAGS='-arch x86_64 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=11.0'
The CFLAGS is set so that a fat binary is built (not the default), and to use the same environment that QCreator will use. You may have to adjust it a little (start a Qcreator compile and check the flags).
The Upplay qmake .pro uses a static link for libmicrohttpd. The rest of the necessary libs (e.g. expat, libcurl) are bundled with MacOS.
Extract the source for libnpupnp, libupnppp, and upplay in the same directory where you extracted libmicrohttpd.
-
Copy libnpupnp-x.y.z/macos/autoconfig-macos.h to libnpupnp-x.y.z/autoconfig.h
-
Copy libnpupnp-x.y.z/macos/upnpconfig-macos.h to libnpupnp-x.y.z/inc/upnpconfig.h
-
Copy libupnpp-n.m.p/macos/config-macos.h to libupnpp-n.m.p/libupnpp/config.h
Start QtCreator and open libnpupnp-x.y.z/macos/qmk/libnpupnp.pro, libupnpp-n.m.p/macos/qmk/libupnpp.pro and upplay-t.u.v/upplay.pro, then build the three projects. There will almost certainly be some paths to adjust inside the '.pro' files.
Finally, if needed, generate a .dmg distribution, using the macos/make-upplay-dmg.sh script.