2

I'm building an electron app for distribution through the Mac App Store. I'm having trouble figuring out what code signing works on what version of Mac OSX because sometimes my builds crash on launch and sometimes they are fine.

I got the app to notarize correctly and submitted it to Apple. They rejected it because it was crashing on launch in mac osx 10.4.6 and 10.14.3 (I have no idea if they tried other mac versions).

Since I couldn't reproduce the issue, in my local builds I figured out how to sign a development build using Developer ID vs. the 3rd Party Mac Developer identity.

Signing in this way I was able to reproduce and fix the crash. (I needed to add

<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>

to my entitlements file.

Now the signed app worked. So I made a new build process to create signed apps in the way for QA to test.

But the first Mac it was tested on was running 10.12.6 and they just got a white screen with this failure in the crash logs Could not set sandbox profile data: Operation not permitted (1)

Now if I give them an unsigned version it launches just fine.

Is this what I should expect? I can't seem to find any documentation from Apple about what sort of code-signing works in what versions of Mac OSX outside of the new notarization requirements for Catalina.

I'm trying to figure out if I need to make two testing builds for QA, depending on what OS they are testing on, and also what happens when we submit to Apple? Do they remove the signing for older OS versions?

I'd like to find answers before we try and submit again, since I hate to rely on Apple to make sure our app doesn't crash on older versions.

At this point I've confirmed that when signed for Mojave and above my app crashes in any OS lower. I also did find this https://developer.apple.com/library/archive/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG20

So it's clear that code-signing was enabled in older Mac OSX versions (I think I finally found something that implied that it started in 10.5). So now the question is how do I figure out why something that has valid code signing in some versions, crashes in others.

Alexis Bell
  • 101
  • 7

0 Answers0