From 70eb688e8699add023f501f6e138cf4ab92a4505 Mon Sep 17 00:00:00 2001 From: Daniel Molkentin Date: Fri, 28 Mar 2014 14:44:38 +0100 Subject: [PATCH] fix frameworks during signing --- admin/osx/sign_dmg.sh | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/admin/osx/sign_dmg.sh b/admin/osx/sign_dmg.sh index 17d5cf8a1..c1f4ba7d5 100755 --- a/admin/osx/sign_dmg.sh +++ b/admin/osx/sign_dmg.sh @@ -6,12 +6,34 @@ src_dmg="$1" tmp_dmg="writable_$1" signed_dmg="signed_$1" identity="$2" + +QT_FMWKS=`basename ${TMP_APP}/Contents/Frameworks`/Qt* +QT_FMWK_VERSION="5" + +fix_frameworks() { + TMP_APP=$1 + QT_FMWK_PATH=$2 + QT_FMWKS=$3/Qt*.framework + + echo "Patching Qt frameworks..." + for FMWK in $QT_FMWKS; do + FMWK_NAME=`basename -s .framework $FMWK` + FMWK=`basename $FMWK` + FMWK_PATH="${TMP_APP}/Contents/Frameworks/${FMWK}" + mkdir -p "${FMWK_PATH}/Versions/${QT_FMWK_VERSION}/Resources/" + cp -avf "${QT_FMWK_PATH}/${FMWK}/Contents/Info.plist" "${FMWK_PATH}/Versions/${QT_FMWK_VERSION}/Resources" + (cd "${FMWK_PATH}" && ln -sf "Versions/${QT_FMWK_VERSION}/Resources" "Resources") + perl -pi -e "s/${FMWK_NAME}_debug/${FMWK_NAME}/" "${FMWK_PATH}/Resources/Info.plist" + done +} + mount="/Volumes/$(basename "$src_dmg"|sed 's,-\([0-9]\)\(.*\),,')" test -e "$tmp_dmg" && rm -rf "$tmp_dmg" hdiutil convert "$src_dmg" -format UDRW -o "$tmp_dmg" hdiutil attach "$tmp_dmg" pushd "$mount" -codesign -s "$identity" "$mount"/*.app +fix_frameworks "$mount"/*.app `qmake -query QT_INSTALL_LIBS` "$mount"/*.app/Contents/Frameworks +codesign -s "$identity" --deep "$mount"/*.app popd diskutil eject "$mount" test -e "$signed_dmg" && rm -rf "$signed_dmg"