Added code signature step to Framework build process
authorSam Lantinga <slouken@libsdl.org>
Tue, 30 Jul 2013 21:39:38 -0700
changeset 7550 ff3e041c27f3
parent 7549 c0a35efb1813
child 7551 823c0c5b2d8d
Added code signature step to Framework build process
Xcode/SDL/SDL.xcodeproj/project.pbxproj
Xcode/SDL/pkg-support/codesign-frameworks.sh
--- a/Xcode/SDL/SDL.xcodeproj/project.pbxproj	Tue Jul 30 20:57:26 2013 -0700
+++ b/Xcode/SDL/SDL.xcodeproj/project.pbxproj	Tue Jul 30 21:39:38 2013 -0700
@@ -2155,6 +2155,7 @@
 				BECDF62A0761BA81005FE872 /* Resources */,
 				BECDF62C0761BA81005FE872 /* Sources */,
 				BECDF6680761BA81005FE872 /* Frameworks */,
+				AA5C3FDC17A8C58600D6C8A1 /* Sign Frameworks */,
 			);
 			buildRules = (
 			);
@@ -2283,6 +2284,20 @@
 /* End PBXRezBuildPhase section */
 
 /* Begin PBXShellScriptBuildPhase section */
+		AA5C3FDC17A8C58600D6C8A1 /* Sign Frameworks */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "Sign Frameworks";
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "if [ \"$USER\" = \"slouken\" ]; then\n    CODE_SIGN_IDENTITY=\"Mac Developer: Sam Lantinga (84TP7N5TA4)\" pkg-support/codesign-frameworks.sh || exit 1\nfi";
+		};
 		BECDF6BD0761BA81005FE872 /* ShellScript */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 12;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Xcode/SDL/pkg-support/codesign-frameworks.sh	Tue Jul 30 21:39:38 2013 -0700
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+# WARNING: You may have to run Clean in Xcode after changing CODE_SIGN_IDENTITY! 
+
+# Verify that $CODE_SIGN_IDENTITY is set
+if [ -z "$CODE_SIGN_IDENTITY" ] ; then
+    echo "CODE_SIGN_IDENTITY needs to be non-empty for codesigning frameworks!"
+
+    if [ "$CONFIGURATION" = "Release" ] ; then
+        exit 1
+    else
+        # Codesigning is optional for non-release builds.
+        exit 0
+    fi
+fi
+
+SAVEIFS=$IFS
+IFS=$(echo -en "\n\b")
+
+FRAMEWORK_DIR="${TARGET_BUILD_DIR}"
+
+# Loop through all frameworks
+FRAMEWORKS=`find "${FRAMEWORK_DIR}" -type d -name "*.framework" | sed -e "s/\(.*\)/\1\/Versions\/A\//"`
+RESULT=$?
+if [[ $RESULT != 0 ]] ; then
+    exit 1
+fi
+
+echo "Found:"
+echo "${FRAMEWORKS}"
+
+for FRAMEWORK in $FRAMEWORKS;
+do
+    echo "Signing '${FRAMEWORK}'"
+    `codesign -f -v -s "${CODE_SIGN_IDENTITY}" "${FRAMEWORK}"`
+    RESULT=$?
+    if [[ $RESULT != 0 ]] ; then
+        exit 1
+    fi
+done
+
+# restore $IFS
+IFS=$SAVEIFS