6

I wrote a cross platform application and I distributed it successfully for Windows and Linux (and tested them on "clean" virtual systems, with no other additional software and/or libraries installed).

I have already compiled my application on my Mac computer, but I don't know if my application will work on other Mac computers.

I don't have two Macs, also, (as far as I know) it's difficult to install Mac OS X on a virtual machine with "legal" discs or without having to perform a process similar to building a Hackintosh, this means that I cannot test my app on a virtual machine (in VirtualBox).

So may question would be: Is there any way of making sure that my application will actually run on other Mac systems (without the need of using another computer)?

As an additional note, I wrote my application by using the Qt framework.

2

You can use a VM running on your Mac. I've done this with Parallels: http://kb.parallels.com/en/112121

If I understand correctly, you have a Mac on which you have compiled the app but you want a clean environment to test deployment. So if you set up a VM on that same Mac that you compiled on, you will have a clean OSX to test with.

  • Thank you very much! As a side comment, I also found a CLI utility that will setup your application bundle for you. It's called "macdeployqt" and it can be found in the "bin" folder in the path where you installed Qt. – Alex Spataru Nov 28 '13 at 23:35
2

I came up with this problem last week and I got my information from this source:

You can check what other libraries your application links to using the otool:

otool -L plugandpaint.app/Contents/MacOs/plugandpaint

Here is what the output looks like for a Qt application example:

plugandpaint.app/Contents/MacOS/plugandpaint:
/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
        (compatibility version 2.0.0, current version 128.0.0)
/System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime
        (compatibility version 1.0.0, current version 10.0.0)
/usr/lib/libz.1.dylib
        (compatibility version 1.0.0, current version 1.2.3)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
        (compatibility version 1.0.0, current version 22.0.0)
/usr/lib/libstdc++.6.dylib
        (compatibility version 7.0.0, current version 7.3.0)
/usr/lib/libgcc_s.1.dylib
        (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libmx.A.dylib
        (compatibility version 1.0.0, current version 92.0.0)
/usr/lib/libSystem.B.dylib
        (compatibility version 1.0.0, current version 88.0.0)

If you see Qt libraries in the output, it probably means that you have both dynamic and static Qt libraries installed on your machine.

I don't take credit for this answer, I'm just a pointer to the source of information.

I use macdeployqt for my applications.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.