Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[question] how do you notarize MacOS app? #61

Closed
cvl opened this issue Apr 7, 2020 · 10 comments
Closed

[question] how do you notarize MacOS app? #61

cvl opened this issue Apr 7, 2020 · 10 comments

Comments

@cvl
Copy link

cvl commented Apr 7, 2020

No description provided.

@a7ul
Copy link
Collaborator

a7ul commented Apr 7, 2020

Hey @cvl
I havent done this before

But the process should be same as that of Qt

Here is a guide that does this: https://skyronic.com/2019/07/app-notarization-for-qt-applications/

@cvl
Copy link
Author

cvl commented Apr 8, 2020

Trying to correctly sign & notarize Mysterium desktop app for MacOS:
https://github.com/mysteriumnetwork/mysterium-vpn-desktop

using the following script
https://github.com/mysteriumnetwork/mysterium-vpn-desktop/blob/master/deploy/pack-macos.sh

After signing, as per tutorial, I use ditto -ck --rsrc --sequesterRsrc "deploy/darwin/build/MysteriumVPN.app" "deploy/darwin/build/MysteriumVPN.zip"
to create zip (for uploading to apple).

Then xcrun altool --notarize-app -t osx -f "deploy/darwin/build/MysteriumVPN.zip" --primary-bundle-id="network.mysterium.desktopvpn" -u "username" -p "passwd"

I get the following error from Apple though:

{
"logFormatVersion": 1,
"jobId": "123",
"status": "Invalid",
"statusSummary": "Archive contains critical validation errors",
"statusCode": 4000,
"archiveFilename": "MysteriumVPN.zip",
"uploadDate": "2020-04-08T14:17:55Z",
"sha256": "123",
"ticketContents": null,
"issues": [
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/MacOs/qode",
"message": "The executable does not have the hardened runtime enabled.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Resources/dist/nodegui_core-d3eecda678d6cb88e4609fa1fd6c1d61.node",
"message": "The binary is not signed.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Resources/dist/nodegui_core-d3eecda678d6cb88e4609fa1fd6c1d61.node",
"message": "The signature does not include a secure timestamp.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Resources/dist/static/myst",
"message": "The binary is not signed.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Resources/dist/static/myst",
"message": "The signature does not include a secure timestamp.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Resources/dist/static/myst",
"message": "The executable does not have the hardened runtime enabled.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Resources/dist/static/openvpn",
"message": "The binary is not signed.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Resources/dist/static/openvpn",
"message": "The signature does not include a secure timestamp.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Resources/dist/static/openvpn",
"message": "The executable does not have the hardened runtime enabled.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Resources/dist/static/myst_supervisor",
"message": "The binary is not signed.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Resources/dist/static/myst_supervisor",
"message": "The signature does not include a secure timestamp.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Resources/dist/static/myst_supervisor",
"message": "The executable does not have the hardened runtime enabled.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Frameworks/QtPrintSupport.framework/Versions/5/QtPrintSupport",
"message": "The binary is not signed.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Frameworks/QtPrintSupport.framework/Versions/5/QtPrintSupport",
"message": "The signature does not include a secure timestamp.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Frameworks/QtGui.framework/Versions/5/QtGui",
"message": "The binary is not signed.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Frameworks/QtGui.framework/Versions/5/QtGui",
"message": "The signature does not include a secure timestamp.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Frameworks/QtDBus.framework/Versions/5/QtDBus",
"message": "The binary is not signed.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Frameworks/QtDBus.framework/Versions/5/QtDBus",
"message": "The signature does not include a secure timestamp.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Frameworks/QtCore.framework/Versions/5/QtCore",
"message": "The binary is not signed.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Frameworks/QtCore.framework/Versions/5/QtCore",
"message": "The signature does not include a secure timestamp.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Frameworks/QtWidgets.framework/Versions/5/QtWidgets",
"message": "The binary is not signed.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/Frameworks/QtWidgets.framework/Versions/5/QtWidgets",
"message": "The signature does not include a secure timestamp.",
"docUrl": null,
"architecture": "x86_64"
}
]
}

Any suggestions?

@cvl
Copy link
Author

cvl commented Apr 8, 2020

After further trial&error I've one outstanding error from apple notarizer:

"issues": [
{
"severity": "error",
"code": null,
"path": "MysteriumVPN.zip/Contents/MacOs/qode",
"message": "The signature of the binary is invalid.",
"docUrl": null,
"architecture": "x86_64"
}
]

Any ideas why qode signature could be invalid?

@cvl
Copy link
Author

cvl commented Apr 8, 2020

Seems I've managed to pull it off, sorry for bothering.

@cvl cvl closed this as completed Apr 8, 2020
@cvl
Copy link
Author

cvl commented Apr 9, 2020

Gatekeeper still blocks though..

@a7ul
Copy link
Collaborator

a7ul commented Apr 9, 2020

But what does it say ? Does the gatekeeper say its from an unidentified developer or something else ?

@cvl
Copy link
Author

cvl commented Apr 9, 2020

just this:

com.apple.xpc.launchd[1] (com.apple.xpc.launchd.oneshot.0x1000000e.qode[4870]): removing service since it exited with consistent failure - OS_REASON_EXEC | Gatekeeper policy blocked execution

@cvl
Copy link
Author

cvl commented Apr 9, 2020

@zolia
Copy link

zolia commented Apr 10, 2020

@cvl can it be related with app crashing and gatekeeper message is just a side effect message? As posted here: https://forums.developer.apple.com/thread/126896

@cvl
Copy link
Author

cvl commented Apr 10, 2020 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants