123456789101112131415161718192021222324252627282930313233343536373839 |
- #!/bin/bash
-
- # This script gets executed from Xcode to fixup the embedded frameworks and
- # bundle the necessary architectures.
-
-
- APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
-
- # This script loops through the frameworks embedded in the application and
- # removes unused architectures.
- find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
- do
- FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
- FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
- echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
-
- EXTRACTED_ARCHS=()
-
- for ARCH in $ARCHS
- do
- if lipo -info "$FRAMEWORK_EXECUTABLE_PATH" | grep -q -v "^Non-fat"
- then
- echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
- lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
- EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
- fi
- done
-
- if [ -n "$EXTRACTED_ARCHS" ]
- then
- echo "Merging extracted architectures: ${ARCHS}"
- lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
- rm "${EXTRACTED_ARCHS[@]}"
-
- echo "Replacing original executable with thinned version"
- rm "$FRAMEWORK_EXECUTABLE_PATH"
- mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
- fi
- done
|