print

Esmeralda

My procedure

I tried both the Xcode and command line way.

The notarization requires that both each binary has the "LC_VERSION_MIN" set and the binary hardening be activated.

*** NOT UP-TO-DATE *** the problem below is now solved

The Xcode way

  1. all the binaries
    link all the binaries with: -mmacosx-version-min=10.9   <-- minimum supported OS version
  2. signing and hardening the Xcode profile
    1. Xcode/Archives
    2. Select the last archive with ctrl-click
    3. Select "Show in Finder" (see screen capture 1)
    4. codesign with: --options runtime  (see "Esmerala-profile.sh")
  3. Uploading to Apple's notarization service
    1. Distribute -> Developer ID
    2. Upload -> analyzing signature -> Developer ID certificate : Developer ID Application (see screen capture 2)
    3. Upload (this sends the application to Apple notary  service
  4. Getting the notarized application
    1. Wait for the notification approval
    2. Download the notarized/stapled application (see screen capture)

Remaining problem

This does not work since it is supposed to allow for libraries with different Team IDs:

<key>com.apple.security.cs.disable-library-validation</key>
    <true/>

dyld: Library not loaded: /opt/X11/lib/libXt.6.dylib
  Referenced from: /Applications/Esmeralda4Mac.app/Contents/Resources/Esmeralda
  Reason: no suitable image found.  Did find:
    /opt/X11/lib/libXt.6.dylib: code signature in (/opt/X11/lib/libXt.6.dylib) not valid for use in process using Library Validation: mapping process and mapped file (non-platform) have different Team IDs
    /opt/X11/lib/libXt.6.dylib: stat() failed with errno=1
/Applications/Esmeralda4Mac.app/Contents/Resources/launcher.sh: line 103:  4717 Abort trap: 6           "$LAUNCHCMD"