Unsolved Deploy Qt4 Framework on Mac does not sign
-
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) -
Report: This is a general report for somebody who may search later
main problem was validation process of appstore. I took 2 approaches
1- using make codesign (QT)
2- using xcodein the first approach: The problem was make codesign fails, because it turned that i needed to codesign each file on its own. Then i reached a correct make codesign but make product fails to package the app.
In the second approach: The problem was framework embedding inside the application. App is written with Qt 4.8.7_2 and apple requests a new structure for the framework, in which there is a folder called A inside Versions folder, which does not exist and thus it failed. Note that, there is a folder called 4 inside which there is the framework, if we change this folder name from 4 to A as apple want, the app will crash.
Solution : Placed the frameworks inside a special folder and from xcode requested to embed the frameworks from this folder. From Terminal, i restructured the framework directory and made internal symbolic links inside the folder (Versions/A -> 4 and Versions/Current->4). In another works, created 2 symbolic links, one called A and the other called Current and both point to A.
Now Xcode, could validate and codesign, the output file uploaded to Appstore failed with Invalid build. Appstore send me an email stating what is failed. I will check, work on and let you know.After correcting all error listed in the automatic email from Appstore that i could understand. There is only 1 error still and i would appreciate your help.
Final error -
Invalid Signature - The main app bundle TypingTutor at path TypingTutor.app has following signing error(s): --prepared:/Volumes/data01/app_data/dstr/mz_3951107737348925641dir/mz_287010058513639019dir/com.PCfone.ArabicTypingTutor.pkg/Payload/TypingTutor.app/Contents/Frameworks/libcrypto.1.0.0.dylib --validated:/Volumes/data01/app_data/dstr/mz_3951107737348925641dir/mz_287010058513639019dir/com.PCfone.ArabicTypingTutor.pkg/Payload/TypingTutor.app/Contents/Frameworks/libcrypto.1.0.0.dylib --prepared:/Volumes/data01/app_data/dstr/mz_3951107737348925641dir/mz_287010058513639019dir/com.PCfone.ArabicTypingTutor.pkg/Payload/TypingTutor.app/Contents/Frameworks/libssl.1.0.0.dylib --validated:/Volumes/data01/app_data/dstr/mz_3951107737348925641dir/mz_287010058513639019dir/com.PCfone.ArabicTypingTutor.pkg/Payload/TypingTutor.app/Contents/Frameworks/libssl.1.0.0.dylib --prepared:/Volumes/data01/app_data/dstr/mz_3951107737348925641dir/mz_287010058513639019dir/com.PCfone.ArabicTypingTutor.pkg/Payload/TypingTutor.app/Contents/Frameworks/QtCore.framework/Versions/Current/. /Volumes/data01/app_data/dstr/mz_3951107737348925641dir/mz_287010058513639019dir/com.PCfone.ArabicTypingTutor.pkg/Payload/TypingTutor.app: unsealed contents present in the root directory of an embedded framework In subcomponent: /Volumes/data01/app_data/dstr/mz_3951107737348925641dir/mz_287010058513639019dir/com.PCfone.ArabicTypingTutor.pkg/Payload/TypingTutor.app/Contents/Frameworks/QtCore.framework . Refer to the Code Signing and Application Sandboxing Guide at http://developer.apple.com/library/mac/#documentation/Security/Conceptual/CodeSigningGuide/AboutCS/AboutCS.html and Technical Note 2206 at https://developer.apple.com/library/mac/technotes/tn2206/_index.html for more information.
-
Did you check the content of the Info.plist files ?
-
The info plist seems correct ..
I doubt another thing, i use to create an Archive-> then open it manually and add the plugin folder and another dylib files to the framework and then validate with xcode and send to appstore ..I am trying to find a way to include the files within the xcode validation.
-
current problem is : unsealed content in QtCore.framework (root)
-
Do you have more details coming with that ? e.g. current vs expected ?