Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. Mac OS Deployment - libqcoca.dylib

Mac OS Deployment - libqcoca.dylib

Scheduled Pinned Locked Moved Unsolved Installation and Deployment
5 Posts 2 Posters 3.4k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ModelTechM Offline
    ModelTechM Offline
    ModelTech
    wrote on last edited by ModelTech
    #1

    With moderate success, I have been trying to create a distributable app for MacOS of my application. I have used the explanation on http://doc.qt.io/qt-5/osx-deployment.html. I believe that I have finally managed to create an .app package with my libraries properly in place and with the correct references to other packages when I run the otool as described at this link (although, I still have to do the plugins). Nevertheless, the application crashes (even before deployment on any other Mac) when started and the report includes an interesting piece that I have put below. As far as I understand from this dump, there appears to be a dependence on a library called lib1coca.dylib.

    Libraries/QtXml
           0x10a6cd000 -        0x10a81bfff +libqcocoa.dylib (0) <C3142FD2-18F6-3B72-A20D-9C3CC2048576> /Users/USER/*/libqcocoa.dylib
           0x10a860000 -        0x10ac71ff7 +org.qt-project.QtGui (5.9 - 5.9.1) <425B6D3F-7724-348D-9827-43F97508414B> /Users/USER/*/QtGui.framework/Versions/5/QtGui
           0x10ad65000 -        0x10b23efff +org.qt-project.QtCore (5.9 - 5.9.1) <81B162CC-7629-337B-AC44-45B7ABD609B6> /Users/USER/*/QtCore.framework/Versions/5/QtCore
           0x10b2ee000 -        0x10b31afff +org.qt-project.QtPrintSupport (5.9 - 5.9.1) <0598E3BB-24DF-3BE8-B49D-27EE2F30DA42> /
    

    When I run the otool for te QtXml library, I do not see any reference to libqcoca.dylib and I also don't see it in the other Qt libraries that I have include (QtCore, QtXml, QtGui, QtWidgets):

    otool -L QtXml
    QtXml:
    	@executable_path/../Libraries/QtXml (compatibility version 5.9.0, current version 5.9.1)
    	@executable_path/../Libraries/QtCore (compatibility version 5.9.0, current version 5.9.1)
    	/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0)
    	/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
    	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)
    	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
    

    I have two questions:

    • Where can I find the libqcoca.dylib in the Qt installation?
    • Does anyone have an idea what to do when I have found it?
    1 Reply Last reply
    0
    • ModelTechM Offline
      ModelTechM Offline
      ModelTech
      wrote on last edited by
      #2

      Well, I found a solution, but this was far from obvious from the explanations on the Qt website...

      I have located the libqcocoa.dylib to be present in Qt/5.9.1/clang_64/lib/plugins/platforms and had to copy it to my.app/Contents/plugins/platforms and additionally modify the references to the Qt installed libraries to use the ones in my package (using the install_name_tool) and also have the QtPrintSupport plugin in my set of Qt libraries (next to QtCore, QtXml, QtGui and QtWidgets). A big puzzle but now that I have solved it. Next are to have my own plugins in the package...

      1 Reply Last reply
      0
      • ModelTechM Offline
        ModelTechM Offline
        ModelTech
        wrote on last edited by ModelTech
        #3

        Hmm, now I that I want my own dynamically loaded plugins to work, I do not know where to put them so that they are automatically loaded. They should be at the default location as I didn't change any setting or the like. So, what is this default location?? It is not Contents/MacOS/plugins, Contents/plugins/plugins and also not Contents/plugins. Any help is appreciated!

        1 Reply Last reply
        0
        • P Offline
          P Offline
          patrik08
          wrote on last edited by patrik08
          #4

          Qmake e Make its all....
          insert a script in your pro file
          sample..

          #!/bin/bash
          pwd
          echo Copying QT libraries...
          macdeployqt  Namemy.app
          

          in pro file:

          # bug 5.9  static lib not run PRE make a dummy ap to try if go tu run patch
          QMAKE_PRE_LINK += ./prebuild.sh
          QMAKE_POST_LINK += ./prebuild.sh
          

          before build or after
          or use a small hook app
          sample https://github.com/pehohlva/QCLD2/tree/master/hook

          In qt4 was a long way sample:
          https://raw.githubusercontent.com/pehohlva/xhtml_edit_qedit_base/master/mac_bundle/grep.sh

          In qt5 only on terminal:
          macdeployqt yourappname.app

          after bundle is ok..

          or
          macdeployqt yourappname.app -dmg

          and you have a ready zipped bundle ..
          macdeployqt take all plugin... used or not...

          1 Reply Last reply
          0
          • ModelTechM Offline
            ModelTechM Offline
            ModelTech
            wrote on last edited by ModelTech
            #5

            Have tried macdeployqt already several times, but:

            ~/Qt/5.9.1/clang_64/bin/macdeployqt dfm.app/
            ERROR: no file at "/usr/lib/libdfmcore.1.dylib"
            

            And this shows that it does not find my core library. Nethertheless, my .pro file has the following lines:

            win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../build/core/release -ldfmcore
            else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../build/core/debug -ldfmcore
            else:unix:CONFIG(release, debug|release): LIBS += -L$$PWD/../build/release/core -ldfmcore
            else:unix:CONFIG(debug, debug|release): LIBS += -L$$PWD/../build/debug/core -ldfmcore
            

            The application runs perfectly fine from Qt Creator.

            1 Reply Last reply
            0

            • Login

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved