onionshare/install/build_osx.sh
Micah Lee f3f458da85
macOS package hardening (#967)
When making a macOS release, add a timestamp to signature
2019-04-21 19:13:48 -07:00

56 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )"
cd $ROOT
# deleting dist
echo Deleting dist folder
rm -rf $ROOT/dist &>/dev/null 2>&1
# build the .app
echo Building OnionShare.app
pyinstaller $ROOT/install/pyinstaller.spec
python3 $ROOT/install/get-tor-osx.py
# create a symlink of onionshare-gui called onionshare, for the CLI version
cd $ROOT/dist/OnionShare.app/Contents/MacOS
ln -s onionshare-gui onionshare
cd $ROOT
if [ "$1" = "--release" ]; then
mkdir -p dist
APP_PATH="$ROOT/dist/OnionShare.app"
PKG_PATH="$ROOT/dist/OnionShare.pkg"
IDENTITY_NAME_APPLICATION="Developer ID Application: Micah Lee"
IDENTITY_NAME_INSTALLER="Developer ID Installer: Micah Lee"
ENTITLEMENTS_CHILD_PATH="$ROOT/install/macos_sandbox/child.plist"
ENTITLEMENTS_PARENT_PATH="$ROOT/install/macos_sandbox/parent.plist"
echo "Codesigning the app bundle"
codesign \
--deep \
-s "$IDENTITY_NAME_APPLICATION" \
--force \
--entitlements "$ENTITLEMENTS_CHILD_PATH" \
--timestamp \
"$APP_PATH"
codesign \
-s "$IDENTITY_NAME_APPLICATION" \
--force \
--entitlements "$ENTITLEMENTS_PARENT_PATH" \
--timestamp \
"$APP_PATH"
echo "Creating an installer"
productbuild \
--sign "$IDENTITY_NAME_INSTALLER" \
--component "$APP_PATH" /Applications \
--timestamp \
"$PKG_PATH"
echo "Cleaning up"
rm -rf "$APP_PATH"
echo "All done, your installer is in: $PKG_PATH"
fi