创建frameWork工程和编译使用
一、建立按工程frameWork
建立工程
配置工程
1.bitcode:想要自己的framewrok支持bitcode,需要在两个地方设置
(如果仅仅设置bitcode为YES,那么在联机运行没问题; 在你需要打包上线时,就会出现如下的错误)
除了添加-fembed-bitcode的方式还可以换成添加BITCODE_GENERATION_MODE
2.Architetures:支持的CPU令集:(标准版本不支持armv7s,需要支持,自己添加,armv7s指令集来支持iPhone 5C)
3.静态库配置:
Mach_O Type: 选中static Library(静态库) (苹果是不支持自定义Dynamic Library)
4.Build Active Architecture Only: 设置为NO
二、添加功能性代码 并暴露头文件
3.编译
方法一:分别编译模拟器版本和真机版本然后使用指令合成
指令如下:
方法二:使用脚本
先创建个交叉编译的target
添加脚本
备注:这个脚本只是合成,所以你必须先选择你的target编译好真机和模拟版本
在选在这个target合成
if [ "${ACTION}" = "build" ]
then
INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework
DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework
SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework
if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi
mkdir -p "${INSTALL_DIR}"
cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
#ditto "${DEVICE_DIR}/Headers" "${INSTALL_DIR}/Headers"
lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}"
#open "${DEVICE_DIR}"
#open "${SRCROOT}/Products"
fi
四.使用
把编译好的framework直接拖到工程使用就好