[Solved]Deploy windows created application on Mac



  • Hello experts,

    I have developed a Qt application on win7.
    Debugger :qt 4.8.1 for desktop - MSVC 2010 (Qt SDK).

    I have the debug and release folders.
    Now I need to create an installer for the mac os.

    Please let me know, how can I create an installer for mac on windows computer system?

    I have read some previous posts and the answered console type solution is very hard for me (Sorry for being so newbie).

    Any suggestion appreciated.

    Thanks in advance
    Zain



  • That will not work this way, you must compile on a Mac. While cross compiling is technically possible (in theory), you lack of the Mac libraries.



  • Thanks for the reply.
    I have compiled the program on mac.
    I am now using 'BitRockInstallBuilder' for deploying the application. The application works well on my system when I install by the installer created by 'BitRockInstallBuilder'. but it does not work on other mac machine. Some Files missing:

    So I put the requested file(QWebkit,QtGui etc) and then create the package...Still the same. It is asking for the files which I've already put with the folder where my executable file resides. It also shows some path where It can not find the files.

    What I think is, it should work when the files are present in the same folder of executable file.

    The same thing working on Windows7. I just put the files in the same folder of exe and created the installer. It worked .

    Why it is not working on MAC.. Please help..

    Any suggestion appreciated.

    Thanks

    Zain


  • Moderators

    I am not a mac user, but I think macs usually do not use windows-type installers... You just copy the application bundle wherever you like and are done with it.



  • @Tobias,
    I have done this already, because it worked on windows so I thought that the same should work on Macs as well.

    So I compiled my application on Mac (Chosen the release kind of debugger (4.8.1 gcc release)).
    It created the release folder on my system(same as mscv-2010 release debugger does on windows),

    I try to run the Mac executable file in this folder it worked fine on my system , obviously because Qt is installed, Then I Copied the folder and took it to other Mac machine but it didn't run there it asked for the files mentioned in previous reply(QtWebkit).

    (It is like the same as windows) but It worked when I copied the dlls in the application release folder on windows,same should work on Mac as well.

    Perhaps I copied wrong files to this folder, but I copied these from the same folder of the debugger.

    Please help its urgent.
    Any suggestion appreciated

    Thanks
    Zain



  • I guess your App bundle is lacking of the dynamically linked Qt libraries (AKA frameworks in Mac-speak).

    "Deploying an Application on Mac OS X":http://doc.qt.nokia.com/latest/deployment.html should be a good read, especially the paragraph Frameworks.

    If you still feel the need to create an installer instead of a simple Bundle.app, Apple "has one for free":https://developer.apple.com/library/mac/#documentation/developertools/conceptual/PackageMakerUserGuide/Introduction/Introduction.html (free as in you need the free version of a Apple developer account).


  • Moderators

    You should also consider taking a look at "macdeployqt":http://qt-project.org/doc/qt-4.8/deployment-mac.html tool bundled with every Qt release (in bin folder).


  • Moderators

    bq. (It is like the same as windows) but It worked when I copied the dlls in the application release folder on windows,same should work on Mac as well.

    I doubt that. I am not aware of any OS looking for libraries next to binaries with the exception of windows of course. I am afraid you will need to read up on how the Mac works when you want to distribute your software to Mac users. They are way more picky than windows users in my experience (and rightly so:).



  • @ sierdzio,
    I am new to mac so I don't know how to use the 'macdeployqt'.
    I double clicked on it (in bin folder). It opened a terminal window. It shows some text and at the end [Process complete] is written, I am unable type any thing in this terminal window.

    Please can you tell me how to use this
    Thanks
    Zain


  • Moderators

    You need to run it from terminal, not by double clicking. Open Terminal (it's a mac app) cd to the dir where your application resides and then run:
    @
    macdeployqt your.app
    @

    It's good to add -verbose=2, too, as this tool does not quit on errors - they have to be found in the verbose log by hand.



  • @ sierdzio,

    Thanks a lot for your efforts..finally its done ...

    Thank you all... I found this forum best of all..really good people..

    Zain


  • Moderators

    haha, thanks. Pleased to hear it works for you.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.