Application on MacOS not producing a .app gile so I can create a shippable executable
-
Folks,
If I understand correctly (and I might not) you need a .app file which should appear in the build directory of any application you successfully build on MacOS so you can create and stand alone executable to ship.
I've tried this on an old Intel Mac running 10.12.6 and an M1 Mac, both using Qt 5.6.3 and neither produce the .app file that enables me to run macdeployqt. I've done this kind of thing on Linux and Windows before, just not MacOS.
Qt 5.6.3 says you want xcode 5,0, but that won't run on Mac OS 10.12.6 so I installed xcode 9.2 which is the only version it seems to work with.
On both the M1 Mac and the Intel Mac the app runs in Qt creator but there's no .app file.
Am I wrong about macdeployqt needing the .app? If not, how can I make Qt creator produce this file please?
Thanks
-
@DiBosco said in Application on MacOS not producing a .app gile so I can create a shippable executable:
Qt 5.6.3
Why do you use such an old Qt version?
-
Hi,
How is your project configured ?
Do you happen to have something likeCONFIG -= app_bundle
?
If not, seeing the outdated version of Qt you are using you might have to write the oppositeCONFIG += app_bundle
. -
@SGaist said in Application on MacOS not producing a .app gile so I can create a shippable executable:
Hi,
How is your project configured ?
Do you happen to have something likeCONFIG -= app_bundle
?
If not, seeing the outdated version of Qt you are using you might have to write the oppositeCONFIG += app_bundle
.Adding the +app_bundle makes no difference, sadly. I had tried that on the M1 Mac, should have mentioned that. I should also have said there is no -app_bundle.
Do I have this right: the build is in build-MV01SW03-Desktop_Qt_5_6_3_clang_64bit-Release. On Linux and Windows' equivalent directory there is an executable in it. The MV01SW03.app file (folder?) should also be there on Mac?
-
@DiBosco said in Application on MacOS not producing a .app gile so I can create a shippable executable:
Adding the +app_bundle makes no difference
Did you rerun qmake after chaning the pro file? Better to do a complete rebuild: delete build folder, run qmake and build
-
@jsulm said in Application on MacOS not producing a .app gile so I can create a shippable executable:
@DiBosco said in Application on MacOS not producing a .app gile so I can create a shippable executable:
Adding the +app_bundle makes no difference
Did you rerun qmake after chaning the pro file? Better to do a complete rebuild: delete build folder, run qmake and build
Yes. :) (I'm not quite THAT green around the gills! :D )
-
Is it possible this is a system-wide issue?
I created an hello world app on the Mac (rather than using one that was originally created on Linux) and that also doesn't create the .app file.
I had hours and hours of "fun" getting Qt even working on Mac OS (even more than the palava you go through on Windows to get it going) and I suppose it's possible something is wrong there. The original installer told me I needed xcode 5, but of course that won't run on this version of Mac OS) and I had to uninstall stuff and resinstall in a specific order to even get it to run Qt at all.
I can't use Qt6 because this program uses Qextserial port and we need to run 5.6.3 because of the licence situation. This all works on Windows with some effort as long as you use mingw, and with total ease and grace on Linux, it's just MacOS it's being a total pain with.
Could there be some global file in MacOS that tells it not to create the .app file for example?
-
I doubt it's xcode, because with the latest xcode on my M1 Macbook and 5.6.3 it doesn't produce the .app file (which I have tried with and without CONFIG +app_bundle). Pro file is:
#------------------------------------------------- # # Project created by QtCreator 2024-09-02T14:56:42 # #------------------------------------------------- QT += core gui CONFIG += static QT += widgets greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = MV01SW03 TEMPLATE = app include(qextserialport/src/qextserialport.pri) SOURCES += main.cpp \ mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui
-
I can't debug this on my end (no access to static qt, much less such an old version).
app_bundle
is default on macOS, so specifying it explicitly should alter nothing.- have you tried to play with the
DESTDIR
variable to verify if anything is being copied over? - I noticed you left out any DEPENPATH and LIBS, so I presume they just work? At any rate, this should not have any influence.
- verify that Xcode-select outputs all the right things you would expect it?
And finally, I'd try to run qmake manually from the terminal, looking for any suspicious/ unusual output.
I am sorry I can't be more specific but what you do is rather unusual setup.
- have you tried to play with the
-
I think the static thing is a red herring because I tried creating a non-static hello world up on both Macs using the standard template and it still does nothing in terms of a .app being generated. In this particular instance STATIC being in the pro file is because because it was built on Windows as a static app and put back on to svn like that, I tried taking that out on the Mac and it made no difference.
I haven't touched DESTDIR directory, is this one of the build environment settings in Creator?
In terms of DEPENPATH and LIBS, I've not touched them, and actually, not sure what they relate to either.
I know nothing about Xcode-select or what it should do. I don't really know what Xcode is, I general don't use Macs other than for making music, I do development on Linux mainly and Windows when I am forced to and it is 95% embedded stuff I do; so I know C well and can knock up very simple GUIs for things like production test, debugging etc which although I write on Linux 99% of the time, it gets recompiled on Windows because it's all for engineery stuff for production and engineers very, very rarely use Macs.
This particular app is a Noddy program to update a binary file in a unit in the field by squirting out ASCII serial data to a bootloader I wrote for an embedded system. It has nothing but MainWindow.cpp and its associated file (and main.cpp). It's real Mickey Mouse stuff.
I'm so used to working on Linux where everything just works straight from repository installs that I've probably done something stupid on the installs on both Mac systems. I do remember about seven years ago I created a stand alone app for Mac using Qt on my old Intel Macbook, but I can remember absolutely nothing whatsoever about how I did it and at the time I likely just installed the latest verion of Qt and I suppose I must have installed Xcode - whatever that is - but I have zero recollection of what I did.
The one thing I could do at this point is delete 5.6.3 from the M1 Mac, install the latest version of Qt and see if that creates the app file, but as we have to build against 5.6.3 for licence reasons I'm not really sure that helps.
I did run qmake from the command line and it worked fine. I think what fell over was make install because it couldn't find make at which point I either gave up or got distracted trying something else.
Really appreciate you trying to help, thank you, Artur.
-
@DiBosco said in Application on MacOS not producing a .app gile so I can create a shippable executable:
The one thing I could do at this point is delete 5.6.3 from the M1 Mac, install the latest version of Qt and see if that creates the app file, but as we have to build against 5.6.3 for licence reasons I'm not really sure that helps.
Unless I am mistaken you can just download and install using online installer into a different folder and it should not interfere. should not
Xcode is Apple SDK, think of it as all the
-dev
packages in Linux plus toolkits (compilers, debuggers, whatnot). It is essential.So, give it a go - if it still fails to build a proper .app on the fresh Qt we know it's something we can probably fix with a means to reproduce errors and hopefully that could fix your main issue. If on the other hand it works just fine... We'll see.
-
If you are locked to that old version of Qt, you might want to consider virtualization and run an older version of macOS + Xcode that was officially supported by that version of Qt.
That said, as other pointed out, a static Qt version on macOS is really unusual. This platform rather uses frameworks and dynamic libraries in their bundles. -
@SGaist said in Application on MacOS not producing a .app gile so I can create a shippable executable:
That said, as other pointed out, a static Qt version on macOS is really unusual. This platform rather uses frameworks and dynamic libraries in their bundles.
As I said in my previous post, the static thing is a red herring. Whether it is built dynamic or static, I get the the same lack of .app.
I'll try the latest version on the M1 Mac and see what happens next week, have run out of time this week to try it.
-
OK, I ended up with unexpected spare time this evening so installed the latest version of Qt and it still doesn't produce a .app file.
At least with this latest version I can click on the executable from the build directory and it runs, with 5.6.3 I get a crash report that gives some Rosetta data.
-
-
@artwaw said in Application on MacOS not producing a .app gile so I can create a shippable executable:
@DiBosco said in Application on MacOS not producing a .app gile so I can create a shippable executable:
I can click on the executable from the build directory
So doesn't produce the .app but does produce executable? Just plain binary?
Yes, that's right.
This is, for clarity, on the M1 Mac. The 5.6.3 program executable crashes, the latest version 6.something exectutable runs if you click on it in the build directory.
Also for clarity, this is just an hello world program I've tried it with, written from scratch.
-
@artwaw said in Application on MacOS not producing a .app gile so I can create a shippable executable:
@DiBosco what if you try the default GUI widgets application template from the creator?
That's what I tried when I made my hello world app.