开发环境 Macbook Pro, macOS Sierra 10.12, Xcode 8.0
创建一个简单的.framework文件
特别指正:下面图8至图11中,Xcode编译的快捷键不是Ctrl+B,而是Command+B!
补充:上图中,合并后可以再敲‘lipo -info HJFramework’,查看支持的处理器架构,
打印结果应该是‘i386 armv7 arm64 x86_64’。
创建一个简单的.a
文件
方法同创建framework
非常相似,注意事项:
我们要创建的是
Cocoa Touch Static Library
Target
配置如下:最终供外界使用的文件结构如下:
HJLibA
(文件夹)
|—HJLibA.h
|—HJMath.h
|—libHJLibA.a
(名字自定义就好)
Tip: 如果上面的操作都会了,那么静态库操作就基本没问题,有兴趣的可以看下面的内容,有更好玩的等着你
如果有任何不清楚的,可以评论或私聊我
使用Aggregate
创建脚本快速生成.framework
# 图4中的Shell代码
# Sets the target folders and the final framework product.
# 如果Project名称和Framework名称不一样的话,要自定义FMKNAME
# 例如: FMK_NAME = "MyFramework"
FMK_NAME=${PROJECT_NAME}
# Install dir will be the final output to the framework.
# The following line create it in the root folder of the current project.
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework
# Working dir will be deleted after the framework creation.
WRK_DIR=build
DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework
SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework
# -configuration ${CONFIGURATION}
# Clean and Building both architectures.
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos clean build
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator clean build
# Cleaning the oldest.
if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi
mkdir -p "${INSTALL_DIR}"
cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.
lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/${FMK_NAME}"
rm -r "${WRK_DIR}"
open "${INSTALL_DIR}"