view mac/finishup.sh @ 2074:1a196ada0bc9

Mac: Add safety checks. Check bundleIdentifier is not nil before calling Notification APIs on Mojave. This will abort if the application ID is not set. Add basic script for self-signing the dwtest application if possible.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 21 May 2020 14:17:36 +0000
parents 6382fd88b49a
children 3784795a1e94
line wrap: on
line source

#!/bin/sh
PLATFORM=`uname -s`

if [ $PLATFORM = "Darwin" ]
then
    mkdir -p dwtest.app/Contents/MacOS
    mkdir -p dwtest.app/Contents/Resources

    cp -f $1/mac/Info.plist dwtest.app/Contents
    cp -f $1/mac/PkgInfo dwtest.app/Contents
    cp -f dwtest dwtest.app/Contents/MacOS
    # Check if there is a certificate to sign with...
    if [ ! -f mac/key.crt ]; then
       if [ -f mac/key.rsa ]; then
          # If not we generate a self-signed one for testing purposes
          echo "No certifiacte in mac/key.crt so generating self-signed certificate..."
          openssl req -new -key mac/key.rsa -out mac/key.csr -config mac/openssl.cnf
          openssl x509 -req -days 3650 -in mac/key.csr -signkey mac/key.rsa -out mac/key.crt -extfile mac/openssl.cnf -extensions codesign
          certtool i mac/key.crt k="`pwd`/mac/key.keychain" r=mac/key.rsa c p=moof
       else
           echo "No key pair found, cannot generate certificate... code will be unsigned."
       fi
    fi
    if [ -f mac/key.keychain ]; then
        echo "Signing the apllication with certificate in mac/key.crt"
        codesign -s my-signing-identity --keychain mac/key.keychain dwtest.app/Contents/MacOS/dwtest
    fi
fi