iOS-编译虚拟机和真机通用包

在开发过程中,经常需要将静态包(.a文件)编译成虚拟机和真机通用。

步骤如下:

在Xcode > Target > BuildPhases面板中,增加Run Script一项。

RunScript

在RunSctipt中输入以下脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
FMK_NAME="XXX"
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}/
WRK_DIR=build
DEVICE_DIR=${WRK_DIR}/Release-iphoneos
SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos clean build
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator clean build
if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi
mkdir -p "${INSTALL_DIR}"
cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
lipo -create "${DEVICE_DIR}/lib${FMK_NAME}.a" "${SIMULATOR_DIR}/lib${FMK_NAME}.a" -output "${INSTALL_DIR}/lib${FMK_NAME}.a"
STRIP -S "${INSTALL_DIR}/lib${FMK_NAME}.a"
rm -r "${WRK_DIR}"
open "${INSTALL_DIR}"

注意,FMK_NAME必须设置为项目的名称。

编译运行项目即可。