0
votes

I have a Mac App for OS X 10.10 that I am trying to create a working release build.

  • Not for the Mac App store "Distributing Apps Outside the Mac App Store"
  • Uses "Developer ID Application" for the release code signing. Things look good in my App dev account
  • Created an OSX APP ID com.blah.app
  • Can create and verify an Archive successfully
  • sudo spctl --assess --verbose=4 Name.App, looks good "Name.App : accepted source=Developer ID"
  • Read thru Apple "Distributing Apps Outside the Mac App Store"
  • Needs to be OS X 10.10 due to customer requirements
  • Read through everything I can find on stack overflow regarding this matter
  • Can build and release iOS without a second thought, but this is my first Mac App

I run the App and in the console I see "EXC_CRASH (Code Signature Invalid)"

Stumped ...

2

2 Answers

1
votes

Gatekeeper

Macs have a "gatekeeper" feature that can be set in 3 modes in System Preferences > Security & Privacy > General > "Allow apps downloaded from:".

Which is your test system set to ?

Since you're signing using a Developer ID, it needs to be set to the 2nd or 3rd option (not just allowing the App store). [2nd option is the default on freshly installed machines]

Build for distribution outside of the app store

Builds that you create for submission to the App store cannot be run by everybody. One needs to build it specifically for that.

To quote https://developer.apple.com/library/mac/qa/qa1884/_index.html :

[...] use Xcode Organizer > Export > Export a Developer ID-signed Application. Developer ID-signed apps can be run by anyone. However, code that uses technologies only available to Mac App Store apps, such as receipt validation, iCloud, and push notifications, will not work if your app is Developer ID-signed. You might need to temporarily disable those parts of your app if you opt for the Developer ID testing approach

0
votes

There was an error in the selected capabilities (red) that wasn't stopping the build, "Key chain sharing" in this case. Turned off as I didn't need it and everything works as expected