Last active
January 20, 2022 05:09
-
-
Save akolov/103127f39b0d1284e5c9fd9187dcc8a9 to your computer and use it in GitHub Desktop.
Convert a Framework into XCFramework
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
set -e | |
SOURCE="$1" | |
if [[ -z "${SOURCE}" ]]; then | |
ME=$(basename "$0") | |
echo "Syntax: ${ME} Static.framework" | |
exit 1 | |
fi | |
FRAMEWORK=$(basename "${SOURCE}" .framework) | |
TMP=$(mktemp -d -t xcf-XXXXXXXXXX) | |
function StripFramework { | |
local SLICE_NAME=$1 | |
local SLICE_ARCH=$2 | |
local SLICE_PATH="${TMP}/${SLICE_NAME}/${FRAMEWORK}.framework" | |
mkdir -p "${SLICE_PATH}" | |
cp -R "${SOURCE}" "${SLICE_PATH}" | |
local OUTPUT="${SLICE_PATH}/${FRAMEWORK}.framework/${FRAMEWORK}" | |
xcrun lipo -thin "${SLICE_ARCH}" "${SLICE_PATH}/${FRAMEWORK}.framework/${FRAMEWORK}" -o "${SLICE_PATH}/${FRAMEWORK}.framework/${FRAMEWORK}" | |
echo "${SLICE_PATH}/${FRAMEWORK}.framework" | |
} | |
IPHONEOS_PATH=$(StripFramework "iphoneos" "arm64") | |
IPHONESIMULATOR_PATH=$(StripFramework "iphonesimulator" "x86_64") | |
xcodebuild -create-xcframework -framework "${IPHONEOS_PATH}" -framework "${IPHONESIMULATOR_PATH}" -output "./${FRAMEWORK}.xcframework" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment