Mercurial > hg > sonic-visualiser
view deploy/osx/copy-qt.sh @ 2265:d33dff02b39b sandbox-notarize
Work on sandboxing (possibly) and using the hardened runtime for notarization. Supply appropriate bundle ID for helpers as well as main application, and request inherited sandbox entitlements. Currently works with sandboxing (apparently) but not yet with the hardened runtime, where we can't load plugins signed by third parties even with the com.apple.security.cs.disable-library-validation entitlement because their team IDs don't match the host. Possibly that exception is supposed to be requested some other way?
author | Chris Cannam |
---|---|
date | Thu, 25 Apr 2019 16:46:02 +0100 |
parents | 11342618ccbe |
children | 4e2749c58e77 |
line wrap: on
line source
#!/bin/bash set -eu app="$1" if [ -z "$app" ]; then echo "Usage: $0 <appname>" echo "Provide appname without the .app extension, please" exit 2 fi frameworks="QtCore QtNetwork QtGui QtXml QtSvg QtWidgets QtPrintSupport QtDBus" plugins="gif icns ico jpeg tga tiff wbmp webp cocoa minimal offscreen macstyle" qtdir=$(grep "Command:" Makefile | head -1 | awk '{ print $3; }' | sed s,/bin/.*,,) if [ ! -d "$qtdir" ]; then echo "Failed to discover Qt installation directory from Makefile, exiting" exit 2 fi fdir="$app.app/Contents/Frameworks" pdir="$app.app/Contents/plugins" mkdir -p "$fdir" mkdir -p "$pdir" echo echo "Copying frameworks..." for fwk in $frameworks; do if [ ! -d "$qtdir/lib/$fwk.framework" ]; then if [ "$fwk" = "QtDBus" ]; then echo "QtDBus.framework not found, assuming Qt was built without DBus support" continue fi fi cp -v "$qtdir/lib/$fwk.framework/$fwk" "$fdir" || exit 2 done echo "Done" echo echo "Copying plugins..." for plug in $plugins; do pfile=$(ls "$qtdir"/plugins/*/libq"$plug".dylib) if [ ! -f "$pfile" ]; then echo "Failed to find plugin $plug, exiting" exit 2 fi target="$pdir"/${pfile##?*plugins/} tdir=`dirname "$target"` mkdir -p "$tdir" cp -v "$pfile" "$target" || exit 2 done echo "Done"