Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. (SOLVED) Deploy application on MAC OS
QtWS25 Last Chance

(SOLVED) Deploy application on MAC OS

Scheduled Pinned Locked Moved General and Desktop
9 Posts 2 Posters 2.2k Views
  • 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.
  • N Offline
    N Offline
    nando76
    wrote on last edited by
    #1

    Hi,
    i have a problem trying to deploy my Qt5 app on Mac.

    First of all some information about the app. It uses Qt 5.2.x + sqlite + another statically linked lib.
    Everything runs fine on the developer machine.

    I wrote a script to make deployment easier. This script copies the .app directory of the app to another place and
    then manually copies the database folder into myApp.app/Contents + the libqca.2.dylib into the Frameworks folder.

    when i run otool -L i see (as expected) that all the libs are showing to the $QTDIR/lib
    @ /development/Qt/5.2.1/5.2.1/clang_64/lib/libqca.2.dylib (compatibility version 2.0.0, current version 2.1.0)
    /development/Qt/5.2.1/5.2.1/clang_64/lib/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets (compatibility version 5.2.0, current version 5.2.1)
    /development/Qt/5.2.1/5.2.1/clang_64/lib/QtQuick.framework/Versions/5/QtQuick (compatibility version 5.2.0, current version 5.2.1)
    /development/Qt/5.2.1/5.2.1/clang_64/lib/QtQml.framework/Versions/5/QtQml (compatibility version 5.2.0, current version 5.2.1)

    CUT OUT OTHER QT LIBS HERE

    /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)@

    then after running macdeployt

    the same otool -L looks like that:

    @ @executable_path/../Frameworks/libqca.2.dylib (compatibility version 2.0.0, current version 2.1.0)
    @executable_path/../Frameworks/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets (compatibility version 5.2.0, current version 5.2.1)
    @executable_path/../Frameworks/QtQuick.framework/Versions/5/QtQuick (compatibility version 5.2.0, current version 5.2.1)
    @executable_path/../Frameworks/QtQml.framework/Versions/5/QtQml (compatibility version 5.2.0, current version 5.2.1)

    CUT OUT OTHER QT LIBS HERE

    /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)@

    So it seems everything has been fixed correctly by macdeployqt.

    But when i copy the bundle to a non developer machine and start my app. It comes up..connects to sqlite...
    but when accessing the first method from the external libqca it crashes.

    @Exception Type: EXC_BAD_ACCESS (SIGSEGV)
    Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000

    VM Regions Near 0:
    -->
    __TEXT 0000000100000000-00000001003c7000 [ 3868K] r-x/rwx SM=COW /Users/USER/*/MyApp.app/Contents/MacOS/eLogbook

    Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
    0 libqca.2.dylib 0x00000001004c6f79 QCA::PublicKey::verifyMessage(QCA::MemoryRegion const&, QByteArray const&, QCA::SignatureAlgorithm, QCA::SignatureFormat) + 105
    1 com.yourcompany.eLogbook 0x00000001001a94fc EasyLicer::RequestKey::verify(EasyLicer::ActivationKey const&, EasyLicer::LicensorPubKey const&) + 300

    @

    The console output is:
    @10/05/14 22:52:23,984 ReportCrash[5549]: Attempting to read data: Called memoryAtAddress: 0x10465b690, which is in an unmappable portion of [0x0 -> 0xffffffffffffffff] in PID# 5548.@@

    Very strange. Problem seems to be with the libqca.2.dylib library.
    But when i move the libqca.2.dylib away for testing, the app does not start and complains about missing exactly this lib.

    This is the second day i try to get rid of thid stuff. Maybe somebody has a hint or can help me. Would be really cool.

    Greetings
    Nando

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi,

      Did you also put in there libqca dependencies ?

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • N Offline
        N Offline
        nando76
        wrote on last edited by
        #3

        Hi.
        [quote author="SGaist" date="1399759706"]Hi,

        Did you also put in there libqca dependencies ?[/quote]

        i think so.
        when i call otool -L on the libqca which is in Frameworks of the bundel i get:

        @otool -L ../Frameworks/libqca.2.dylib
        ../Frameworks/libqca.2.dylib:
        @executable_path/../Frameworks/libqca.2.dylib (compatibility version 2.0.0, current version 2.1.0)
        @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore (compatibility version 5.2.0, current version 5.2.1)
        /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 157.0.0)
        /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 55471.14.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.14.0)
        @

        1 Reply Last reply
        0
        • N Offline
          N Offline
          nando76
          wrote on last edited by
          #4

          just for clearance:
          i did not put the
          @/System/@
          and @/usr/lib@

          libs into the bundle.....

          1 Reply Last reply
          0
          • SGaistS Offline
            SGaistS Offline
            SGaist
            Lifetime Qt Champion
            wrote on last edited by
            #5

            And that's the right thing to do, these are system libraries that should not be put in the bundle.

            I don't remember, does qca also use plugins ?

            Interested in AI ? www.idiap.ch
            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

            1 Reply Last reply
            0
            • N Offline
              N Offline
              nando76
              wrote on last edited by
              #6

              [quote author="SGaist" date="1399761472"]And that's the right thing to do, these are system libraries that should not be put in the bundle.

              I don't remember, does qca also use plugins ?[/quote]

              yes it uses the crypto plugin. i put the crypto plugin folder
              into the PlugIns folder beside the other plugins.

              The content of the crypto folder is :
              @-rwxr-xr-x 1 nando staff 61380 May 11 00:41 libqca-cyrus-sasl.so
              -rwxr-xr-x 1 nando staff 113644 May 11 00:41 libqca-cyrus-sasl_debug.so
              -rwxr-xr-x 1 nando staff 38748 May 11 00:41 libqca-logger.so
              -rwxr-xr-x 1 nando staff 79840 May 11 00:41 libqca-logger_debug.so
              -rwxr-xr-x 1 nando staff 366724 May 11 00:41 libqca-ossl.so
              -rwxr-xr-x 1 nando staff 648420 May 11 00:41 libqca-ossl_debug.so
              -rwxr-xr-x 1 nando staff 126024 May 11 00:41 libqca-softstore.so
              -rwxr-xr-x 1 nando staff 251168 May 11 00:41 libqca-softstore_debug.so@

              Do i also need to check all the .so libs with otool ?
              For me it is not really clear what is the difference betweend these dylib and .so on mac.....

              1 Reply Last reply
              0
              • N Offline
                N Offline
                nando76
                wrote on last edited by
                #7

                Ahhh maby that is the point:

                i checked the libqca-ossl.so and got:
                @libqca-ossl.so:
                /development/Qt/5.2.1/5.2.1/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.2.0, current version 5.2.1)
                /development/Qt/5.2.1/5.2.1/clang_64/lib/libqca.2.dylib (compatibility version 2.0.0, current version 2.1.0)
                /usr/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 50.0.0)
                /usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 50.0.0)
                /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 157.0.0)
                /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 55471.14.1)
                /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
                /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)@

                so here macdeploy did not the trick.... i will change that manually and then try again...

                1 Reply Last reply
                0
                • N Offline
                  N Offline
                  nando76
                  wrote on last edited by
                  #8

                  Hi,
                  that was the problem!!!!!!

                  Thank you very much!
                  i fixed it by manually do:
                  @install_name_tool -change $QTDIR/lib/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore $TARGET_DIR/eLogbook.app/Contents/PlugIns/crypto/libqca-ossl.so
                  #install_name_tool -id @executable_path/../Frameworks/libqca.2.dylib $TARGET_DIR/eLogbook.app/Contents/PlugIns/crypto/libqca-ossl.so
                  install_name_tool -change $QTDIR/lib/libqca.2.dylib @executable_path/../Frameworks/libqca.2.dylib $TARGET_DIR/eLogbook.app/Contents/PlugIns/crypto/libqca-ossl.so

                  @

                  1 Reply Last reply
                  0
                  • SGaistS Offline
                    SGaistS Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on last edited by
                    #9

                    Great !

                    You're welcome !

                    Happy coding :)

                    Interested in AI ? www.idiap.ch
                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                    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