-
-
Notifications
You must be signed in to change notification settings - Fork 172
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
Notarization #169
Comments
This is great, thank you very much. |
I only have a free Apple Development certificate which is not suitable for distribution, but I still give my Platypus apps a valid code signature with my own third-party certificate. In those Platypus apps meant for distribution, the script has a test for path randomization (app translocation). You could also have your app open an info text file or an info webpage on your domain which then explains how to remove the quarantine extended attribute to the user, instead of just displaying a generic prompt & quitting.
|
This looks great. However, I got this issue when trying to validate the notarization
Looks like the Gatekeeper still fails the app even though it's properly signed? I found this thread, not sure if it's relevant |
For some reason, the correct command is EDIT 1: you should also check the app and its nested code with EDIT 2: and another check, only for the stapled notarization ticket: |
Uh, I see... Then it looks everything got passed. But my apps still cannot execute on other machines once I upload them to Github (dmg, zipped or not zipped). Began to doubt my life as I only got problems but don't know where it went wrong... |
That's weird. If your app is notarized, it should run just fine. |
Yup, that's what I was struggling about. I got green lights all the way to staple and verified each step, but still unable to download from another computer. |
Three questions: (1) Does the main script at (2) Are you using any additional nested code or scripts besides (3) EDIT: did you use macOS' built-in |
PS: maybe there's another problem… if you use additional code/scripts, it should be in one of the default directories assigned by Apple for signing nested code:
…and maybe that's also causing the problem with the main script. Many developers tend to nest code in irregular subpaths like So you could maybe try to move your |
If you are not notarized, e.g. demoing w/out a cert the solution is the user must have admin access from https://apple.stackexchange.com/a/253943/222813. running |
You normally don't need |
Thank you all for the info, I followed it, however I have an issue when I try to sign the app. So, with platypus, I create an .app from the shell script, and put the pyinstaller created .app in the ressources folder. This launches with no issues. However, platypus converts my shell script to a file named "script" without extension, in the Resources folder. This causes codesign to give me this error: "resource fork, Finder information, or similar detritus not allowed" This is caused by that file that doesn't have an extension. If I remove the "script" file of the bundle, I can sign with no issue... but of course, the app then doesn't find the script, and crashes. Did anybody find a solution to this? I don't see how you can sign an app if platypus created a file with no extension. Thank you |
Always run Additionally, try not to use Finder when navigating the nested contents of a bundle including app bundles. Finder is a catastrophe in these scenarios. PS: executing code should not be in ./Contents/Resources. Only non-Mach-O scripts go there. I don't know what kind of an executable the pyinstaller app has… if it's a script, it's fine in Resources… otherwise put it e.g. in ./Contents/MacOS or /Contents/Helpers See e.g. here s.v. "Nested Code": https://developer.apple.com/library/archive/technotes/tn2206/_index.html |
Thanks @hohno-panopto for this great share. The PassWordForAppleId should be App specific password I guess, as normal password of Apple ID didn't worked for me. Then I created App specific password at https://appleid.apple.com/account/home which worked. |
This is not an issue, but I wanted to share my experience with Platypus users.
I was able to get Apple's notarization to my application which was generated by Platypus.
As the result, I was able to put my app on the public website and let people download and run. Without notarization, macOS 10.15 rejects the execution of downloaded app and there is no way to override it.
I referred this article as a starting point. Thank you, @dpid
Prerequisite
Steps
All of them are done from command line (Terminal).
Please read this document for more details about notarization from command line tools.
Let's assume your app is generated as ./Example.app and bundle name is com.example.app. Also assume the name of Developer ID Application certificate as "Developer ID Application: Example Company (A1BC234DEF)".
Notes
The text was updated successfully, but these errors were encountered: