Publish to Mac OSX App Store
-
Hi,
I'm publishing Qt apps to iOS App Store using Xcode.
However, now I need to publish to Mac OSX App Store and I wonder how to do that. When I was searching the Net I'm confused, do I need Xcode in the process? (except being installed), will macdeplyqt sign my app and then I need to use Application Loader to submit App to App Store ?
According to this post Sandbox app for the Mac App Store codesign does not work, but it was written a year ago. Some howtos are even older Getting a Qt/C++ App in the Mac App Store
So what is current status for submitting to Mac App Store?Best Regards
Marek -
Hi,
macdeployqt provides two options to code sign and avoid deploying frameworks that would be rejected by the App Store.
-
@SGaist
-codesign=<ident> Run codesign with the given identity on all executables
-appstore-compliant Skip deployment of components that use private APISo regarding the last option if I see messages like this in Qt Creator does it smell like problems?
"Project MESSAGE: This project is using private headers and will therefore be tied to this specific Qt module build version.
Project MESSAGE: Running this project against other versions of the Qt modules may crash at any arbitrary point." -
What modules are you using in your application ?
-
Haaa sorry, I misread the message.
Are you using any of Qt's private headers ?
The message just explains that if you switch Qt version without recompiling your application you are going to enter uncharted territory.
-
IIRC, the name of the certificate to use for signing. Usually something like "XXX Distribution".
-
@SGaist
Hi I just need some hint, I'm new to macOS.
I have run qmake -spec macx-xcode on my project which generated project.xcodeproj then it compiles fine and runs under XCode.
Can't validate it because of lack of sandbox entitlements.
So I added entitlements then archived product, validated and uploaded to AppStore.
However, if I run this project with entitlements in XCode it does not start saying:warning: 'QtCore' contains a debug script. To run this script in this debug session: command script import "/Users/myuser/Qt/5.10.1/clang_64/lib/QtCore.framework.dSYM/Contents/Resources/DWARF/../Python/QtCore.py" To run all discovered debug scripts in this session: settings set target.load-script-from-symbol-file true This application failed to start because it could not find or load the Qt platform plugin "cocoa" in "". Reinstalling the application may fix this problem.
So, I assume it will not work, even though it went through validation and upload to App Store :)
Right approach would be to build in Xcode without entitlements and run macdeployqt on Myapp.app or just codesign with entitlements ?
Best Regards
Marek -
Strange, I have played with entitlements in XCode Build Settings. I have deleted path to entilements file for Debug and for Release, I have left entitlements for Release -> Any SDK.
Now it runs fine in XCode and it was also validated and uploaded to App Store.
I hope it will work ;)Best,
Marek -
@Marek so were you successful in publishing your app? I could get my app running fine with XCode (even with App Sandbox enabled) but when I install and run the
.pkg
that XCode gives me after publishing for the store, I get this error-LSOpenURLsWithRole() failed with error -10810 for the file
Any tips or things to keep in mind when publishing to Mac store are welcome as well.