livebook/elixirkit/elixirkit_swift/Scripts/build_macos_dmg.sh
2023-05-05 11:11:22 +02:00

40 lines
1.2 KiB
Bash

#!/bin/sh
set -euo pipefail
app_name=$ELIXIRKIT_APP_NAME
app_dir=$PWD/.build/${app_name}.app
identity="${ELIXIRKIT_CODESIGN_IDENTITY:-}"
team_id="${ELIXIRKIT_NOTARY_TEAM_ID:-}"
apple_id="${ELIXIRKIT_NOTARY_APPLE_ID:-}"
password="${ELIXIRKIT_NOTARY_PASSWORD:-}"
if [ -n "$identity" ]; then
files=`find $app_dir -perm +111 -type f -exec sh -c "file {} | grep --silent Mach-O" \; -print`
files="$files `find $app_dir -name '*.a'`"
files="$files $app_dir/Contents/MacOS/$app_name"
codesign --sign="$identity" --options=runtime --entitlements=App.entitlements --force --timestamp --verbose=2 $files
else
echo "[warning] skipping codesign. Please set ELIXIRKIT_CODESIGN_IDENTITY environment variable"
fi
dmg_path=$PWD/.build/${app_name}Install.dmg
dmg_dir=$PWD/.build/dmg
rm -rf $dmg_dir
mkdir $dmg_dir
ln -s /Applications $dmg_dir
cp -r $app_dir $dmg_dir/
hdiutil create $dmg_path -ov -volname ${app_name}Install -fs HFS+ -srcfolder $dmg_dir
if [ -n "$team_id" ]; then
xcrun notarytool submit \
--team-id "${team_id}" \
--apple-id "${apple_id}" \
--password "${password}" \
--progress \
--wait \
$dmg_path
else
echo "[warning] skipping notarization. Please set ELIXIRKIT_NOTARY_{TEAM_ID,APPLE_ID,PASSWORD} environment variables"
fi