Platypus icon indicating copy to clipboard operation
Platypus copied to clipboard

Unable to launch after building

Open oskay opened this issue 2 years ago • 2 comments

I've been trying to build Platypus -- just a personal copy with the fix to not invoke the notification center ( https://github.com/sveinbjornt/Platypus/issues/150 ).

Following the main build instructions, using make build_unsigned, I am apparently able to build the Platypus app, but it quits unexpectedly as soon as I launch it.

At the end of the build there is an error 65 that displays:

** BUILD SUCCEEDED **

make: *** [build_unsigned] Error 65

The only obvious error in the build process is on cleaning, which shows up even if there is not a products folder to delete. (This does not seem important, as it does build a new Platypus application.)

error: Could not delete `[...]/Platypus-master/products` because it was not created by the build system.
error: Could not delete `[...]/Platypus-master/products` because it was not created by the build system.
error: Could not delete `[...]/Platypus-master/products` because it was not created by the build system.
note: Build preparation complete

** CLEAN FAILED **

I have not tried any changes other than (in XCode) changing the target to active architecture only. I'm using macOS 12.3.1, XCode 13.1.4, and the downloaded zip from master.

I presume that the error is in my setup rather than the codebase, but if someone can point me in the right direction, I'd appreciate it.

oskay avatar Jun 07 '22 02:06 oskay

Platypus.app.zip Hi oskay, i have build the 5.4 Version. Attached, hope it helps ;-)

MSAMmedia avatar Jun 09 '22 13:06 MSAMmedia

Awesome; thank you!

oskay avatar Jun 09 '22 17:06 oskay

Platypus 5.4 has now been released: https://github.com/sveinbjornt/Platypus/releases/tag/v5.4

sveinbjornt avatar Sep 03 '22 20:09 sveinbjornt

The 5.4 release seems corrupt/damaged by Gatekeeper on my machine (macOS 12.5.1 (21G83)):

> codesign --deep --verify -vvv /Users/msp/Downloads/Platypus.app
--prepared:/Users/msp/Downloads/Platypus.app/Contents/Frameworks/Sparkle.framework/Versions/Current/.
/Users/msp/Downloads/Platypus.app: invalid signature (code or signature have been modified)
In subcomponent: /Users/msp/Downloads/Platypus.app/Contents/Frameworks/Sparkle.framework/Versions/Current/Updater.app
In architecture: arm64

Looking closer, I think the Sparkle.framework in the repository also looks corrupt. It seems stripped to some extent at glance (even maybe including the executables too).

zorgiepoo avatar Sep 04 '22 00:09 zorgiepoo

Yeah, I stripped the binary and dumped localizations to keep the package smaller. So AV and GateKeeper expect the bloated full 5 MB Sparkle.framework package? I'll have to find a fix for it. Jaysis, things really have become locked down these days.

sveinbjornt avatar Sep 04 '22 00:09 sveinbjornt

If you modify a binary, you invalidate its code signature so it's a good idea to re-sign it at least and not leave an invalid signed binary around. (Everything at least should be ad-hoc ("-") signed these days, "unsigned" executables are a thinking of the past and not technically allowed to execute on arm64). Sparkle has a section about code signing related to it.

I also don't know how you're altering the binary (seems kinda scary). Notarization should have probably failed this, but otherwise you may want to consider a codesign --deep -vvv --verify path and (if applicable) spctl -a -t exec -vv path verification check.

zorgiepoo avatar Sep 04 '22 00:09 zorgiepoo

Sparkle has always been set to be resigned by me in the build process hitherto, and never caused any problems.

sveinbjornt avatar Sep 04 '22 00:09 sveinbjornt

Experimentally if I re-sign one of the binaries (e.g. Autoupdate), the signature for it becomes "valid" again. So something must have been missing.

codesign -f -s "-" -o runtime ~/Downloads/Platypus.app/Contents/Frameworks/Sparkle.framework/Versions/B/Autoupdate

zorgiepoo avatar Sep 04 '22 00:09 zorgiepoo

I'll have to take a look at this. Unfortunately I don't have an arm64 Mac available to me.

sveinbjornt avatar Sep 04 '22 00:09 sveinbjornt

Issue is applicable to x86_64 too and I don't think you'd need a arm64 Mac either way.

zorgiepoo avatar Sep 04 '22 00:09 zorgiepoo

They're not making this easy, are they?

sveinbjornt avatar Sep 04 '22 01:09 sveinbjornt

No, they never do.

Let me know if there's anything that I can do to help. I do sign and notarize programs on Mac as well, and I can lend you a remote login on an M1 Mac system if that's helpful; I have done so for a couple of other developers when that was helpful.

oskay avatar Sep 04 '22 03:09 oskay