Unsolved Deploy Qt4 Framework on Mac does not sign
-
You have a casing issue. It's
-L
not-l
that you should use. -
@SGaist thanks for the note
otool -L MyApp
...
MyApp:
@executable_path/../Frameworks/QtSql.framework/Versions/4/QtSql (compatibility version 4.8.0, current version 4.8.7)
@executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7)
@executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.7)
@executable_path/../Frameworks/QtNetwork.framework/Versions/4/QtNetwork (compatibility version 4.8.0, current version 4.8.7)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 104.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 913.0.0)
Sherif:MacOS sherifomran$
... -
That part looks good. Do the same with the Qt Frameworks and the OpenSSL related libraries.
-
@SGaist Sorry, i don't understand what you mean.
Do you mean, Should i restructure the following libraries in Frameworks folder?
libcrypto.1.0.0.dylib
libssl.1.0.0.dylib
or should i try to add the following libraries to the frameworks folder?
libstdc++.6.dylib
libSystem.B.dylib
libgcc_s.1.dylib
I don't know how to restructure the dylib file? -
Never put system libraries in your app bundle.
I meant check that all your frameworks also find their dependencies. e.g. QtNetwork will probably look after libssl and libcrypto if you rebuilt your Qt against them.
-
Here is the output of otool -L with libraries and frameworks inside the framework folder, i ve also a plugin folder, should i test it ?
For QTNetwork
Sherif:QtNetwork.framework sherifomran$ otool -L QtNetwork QtNetwork: @executable_path/../Frameworks/QtNetwork.framework/Versions/4/QtNetwork (compatibility version 4.8.0, current version 4.8.7) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5) /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration (compatibility version 1.0.0, current version 802.20.7) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1256.14.0) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 728.6.0) @executable_path/../Frameworks/libssl.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0) @executable_path/../Frameworks/libcrypto.1.0.0.dylib (compatibility version 1.0.0, current version 1.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)
For QtCore
Sherif:QtCore.framework sherifomran$ otool -L QtCore QtCore: @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 48.0.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1256.14.0) /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 57337.20.43) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 728.6.0)
QTGui
Sherif:QtGui.framework sherifomran$ otool -L QtGui QtGui: @executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.7) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 157.0.0) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1404.32.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) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 48.0.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1256.14.0) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 728.6.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1256.1.0) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0) Sherif:QtGui.framework sherifomran$
for QtSql
Sherif:QtSql.framework sherifomran$ otool -L QtSql QtSql: @executable_path/../Frameworks/QtSql.framework/Versions/4/QtSql (compatibility version 4.8.0, current version 4.8.7) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /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) Sherif:QtSql.framework sherifomran$
for LibCrypto
Sherif:Frameworks sherifomran$ otool -L libcrypto.1.0.0.dylib libcrypto.1.0.0.dylib: @executable_path/../Frameworks/libcrypto.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
For Libssl
Sherif:Frameworks sherifomran$ otool -L libssl.1.0.0.dylib libssl.1.0.0.dylib: @executable_path/../Frameworks/libssl.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0) @executable_path/../Frameworks/libcrypto.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
-
In that case do you have both libssl and libcrypto in the Frameworks folder ?
Yes, you should also check your plugins.
-
@SGaist
Yes i have libssl and libcrypto in the Frameworks
The following is plugin check, seems ok with all of them or do you notice something which i don't notice?Plugin Check
Sherif:PlugIns sherifomran$ cd accessible/ Sherif:accessible sherifomran$ ls libqtaccessiblewidgets.dylib Sherif:accessible sherifomran$ otool -L libqtaccessiblewidgets.dylib libqtaccessiblewidgets.dylib: /usr/local/opt/qt/plugins/accessible/libqtaccessiblewidgets.dylib (compatibility version 0.0.0, current version 0.0.0) @executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.7) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /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) Sherif:accessible sherifomran$
Sherif:PlugIns sherifomran$ otool -L bearer/libqcorewlanbearer.dylib bearer/libqcorewlanbearer.dylib: /usr/local/opt/qt/plugins/bearer/libqcorewlanbearer.dylib (compatibility version 0.0.0, current version 0.0.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1256.1.0) /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration (compatibility version 1.0.0, current version 802.20.7) /System/Library/Frameworks/CoreWLAN.framework/Versions/A/CoreWLAN (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 57337.20.43) @executable_path/../Frameworks/QtNetwork.framework/Versions/4/QtNetwork (compatibility version 4.8.0, current version 4.8.7) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /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) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1256.14.0) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0) Sherif:PlugIns sherifomran$ otool -L bearer/libqgenericbearer.dylib bearer/libqgenericbearer.dylib: /usr/local/opt/qt/plugins/bearer/libqgenericbearer.dylib (compatibility version 0.0.0, current version 0.0.0) @executable_path/../Frameworks/QtNetwork.framework/Versions/4/QtNetwork (compatibility version 4.8.0, current version 4.8.7) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /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) Sherif:PlugIns sherifomran$
Sherif:PlugIns sherifomran$ otool -L codecs/libq libqcncodecs.dylib libqjpcodecs.dylib libqkrcodecs.dylib libqtwcodecs.dylib Sherif:PlugIns sherifomran$ otool -L codecs/libqcncodecs.dylib codecs/libqcncodecs.dylib: /usr/local/opt/qt/plugins/codecs/libqcncodecs.dylib (compatibility version 0.0.0, current version 0.0.0) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /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) Sherif:PlugIns sherifomran$ otool -L codecs/libqjpcodecs.dylib codecs/libqjpcodecs.dylib: /usr/local/opt/qt/plugins/codecs/libqjpcodecs.dylib (compatibility version 0.0.0, current version 0.0.0) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /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) Sherif:PlugIns sherifomran$ otool -L codecs/libqkrcodecs.dylib codecs/libqkrcodecs.dylib: /usr/local/opt/qt/plugins/codecs/libqkrcodecs.dylib (compatibility version 0.0.0, current version 0.0.0) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /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) Sherif:PlugIns sherifomran$ otool -L codecs/libqtwcodecs.dylib codecs/libqtwcodecs.dylib: /usr/local/opt/qt/plugins/codecs/libqtwcodecs.dylib (compatibility version 0.0.0, current version 0.0.0) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /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) Sherif:PlugIns sherifomran$
Sherif:PlugIns sherifomran$ otool -L imageformats/libq libqgif.dylib libqjpeg.dylib libqtga.dylib libqico.dylib libqmng.dylib libqtiff.dylib Sherif:PlugIns sherifomran$ otool -L imageformats/*.dylib imageformats/libqgif.dylib: /usr/local/opt/qt/plugins/imageformats/libqgif.dylib (compatibility version 0.0.0, current version 0.0.0) @executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.7) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /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) imageformats/libqico.dylib: /usr/local/opt/qt/plugins/imageformats/libqico.dylib (compatibility version 0.0.0, current version 0.0.0) @executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.7) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /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) imageformats/libqjpeg.dylib: /usr/local/opt/qt/plugins/imageformats/libqjpeg.dylib (compatibility version 0.0.0, current version 0.0.0) @executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.7) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /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) imageformats/libqmng.dylib: /usr/local/opt/qt/plugins/imageformats/libqmng.dylib (compatibility version 0.0.0, current version 0.0.0) @executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.7) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5) /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) imageformats/libqtga.dylib: /usr/local/opt/qt/plugins/imageformats/libqtga.dylib (compatibility version 0.0.0, current version 0.0.0) @executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.7) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /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) imageformats/libqtiff.dylib: /usr/local/opt/qt/plugins/imageformats/libqtiff.dylib (compatibility version 0.0.0, current version 0.0.0) @executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.7) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5) /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) Sherif:PlugIns sherifomran$
Sherif:PlugIns sherifomran$ otool -L sqldrivers/libqsqlite.dylib sqldrivers/libqsqlite.dylib: /usr/local/opt/qt/plugins/sqldrivers/libqsqlite.dylib (compatibility version 0.0.0, current version 0.0.0) @executable_path/../Frameworks/QtSql.framework/Versions/4/QtSql (compatibility version 4.8.0, current version 4.8.7) @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7) /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) Sherif:PlugIns sherifomran$
-
IIRC, the id of your plugins should be updated to match where they are currently located.
-
This post is deleted! -
@SGaist what is IIRC?
-
IIRC = If I Recall Correctly
-
@SGaist
do you know how to update the id of the plugin? -
install_name_tool -id
-
@SGaist
I read about install_name_tool but confused between change and id
could you please give me example? -
install_name_tool -id /path/to/lib
-
I made the following to the libraries and frameworks except plugins
install_name_tool -id @executable_path/../Frameworks/libcrypto.1.0.0.dylib MyApp.app/Contents/Frameworks/libcrypto.1.0.0.dylib
when i give make codesign it still fails
-
@SherifOmran said:
codesign] Error 1
Stupid question, but can you actually codesign something else ?
-
@sandy.martel23
Very good, it is not studpid question, I tried to sign the library manually and it turned that i then signed each file in the plugin manually and then when i give
make codesign (it works)codesign --sign '3rd Party Mac Developer Application: Sherif Omran (R3JGXHN3B3)' --keychain ~/Library/Keychains/login.keychain ./libcrypto.1.0.0.dylib
Thank you..
Next step, i need to create the package .. Could you please help me with the command?
when i give
make package -> it has error -
But after i codesigned it, the app does not start
Process: TypingTutor [10399]
Path: /Users/USER/Desktop/*/TypingTutor.app/Contents/MacOS/TypingTutor
Identifier: com.PCfone.ArabicTypingTutor
Version: 1.0.0 (5.1)
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: TypingTutor [10399]
User ID: 501Date/Time: 2016-02-05 20:39:38.405 +0100
OS Version: Mac OS X 10.11.3 (15D21)
Report Version: 11
Anonymous UUID: 70210516-2C20-592D-A84C-DD5E4F2AE6C1Sleep/Wake UUID: D83EB830-6064-42B2-B9B1-2693E5916DDF
Time Awake Since Boot: 25000 seconds
Time Since Wake: 1600 secondsSystem Integrity Protection: enabled
Crashed Thread: 0
Exception Type: EXC_BAD_ACCESS (Code Signature Invalid)
Exception Codes: 0x0000000000000032, 0x00000001004f5000
Exception Note: EXC_CORPSE_NOTIFYkernel messages:
-1 sec CODE SIGNING: cs_invalid_page(0x1004f5000): p=10399[TypingTutor] final status 0x3000200, denying page sending SIGKILL
-1 sec CODE SIGNING: process 10399[TypingTutor]: rejecting invalid page at address 0x1004f5000 from offset 0x0 in file "/Users/USER/Desktop/*/TypingTutor.app/Contents/Frameworks/QtSql.framework/Versions/4/QtSql" (cs_mtime:1454627177.0 == mtime:1454627177.0) (signed:1 validated:1 tainted:1 wpmapped:0 slid:0)