如何在Xcode 11.3和iOS 13中创建自定义 通用框架,任何运行脚本?
1 回答
第 1 步:从跨平台添加新目标 -> 聚合
第 2 步:从构建短语中添加以下内容作为运行脚本:
键入脚本或从工作区拖动脚本文件以插入其路径。
FRAMEWORK_NAME=${PROJECT_NAME}
SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${FRAMEWORK_NAME}.framework"
DEVICE_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos/${FRAMEWORK_NAME}.framework"
DEVICE_BCSYMBOLMAP_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos"
DEVICE_DSYM_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos/${FRAMEWORK_NAME}.framework.dSYM"
SIMULATOR_DSYM_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${FRAMEWORK_NAME}.framework.dSYM"
UNIVERSAL_LIBRARY_DIR="${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal"
FRAMEWORK="${UNIVERSAL_LIBRARY_DIR}/${FRAMEWORK_NAME}.framework"
OUTPUT_DIR="./Build-Framework"
DRPBOX_DIR="/Users/$USER/Dropbox/Frameworks/iTelMessagingKit"
这将为目标模拟器构建您的框架。
Xcodebuild -project ${PROJECT_NAME}.Xcodeproj -UseModernBuildSystem=NO -scheme ${FRAMEWORK_NAME} -sdk iphonesimulator -configuration ${CONFIGURATION} 全新安装 CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphonesimulator
这将为您的设备构建框架。
Xcodebuild -project ${PROJECT_NAME}.Xcodeproj -UseModernBuildSystem=NO -scheme ${FRAMEWORK_NAME} -sdk iphoneos -configuration ${CONFIGURATION} 全新安装 CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphoneos
让我们清理最终目录:
rm -rf "${UNIVERSAL_LIBRARY_DIR}"
mkdir "${UNIVERSAL_LIBRARY_DIR}"
mkdir "${FRAMEWORK}"
rm -rf "$OUTPUT_DIR" mkdir -p "$OUTPUT_DIR"
现在,我们将其中一个框架文件放到我们的通用文件夹中:
cp -r "${DEVICE_LIBRARY_PATH}/." “${框架}”
现在对于真正的魔法,lipo,添加这个片段:
lipo "${SIMULATOR_LIBRARY_PATH}/${FRAMEWORK_NAME}" "${DEVICE_LIBRARY_PATH}/${FRAMEWORK_NAME}" -create -output "${FRAMEWORK}/${FRAMEWORK_NAME}" | echo cp -r "${FRAMEWORK}" "$OUTPUT_DIR"