IOS_Framework制作(单独,面向Xcode10)

Framework

创建FrameWork

image.png

配置Framework

  • Build Settings >> Dead Code Stripping >> 设置为NO
  • Build Settings >> Strip Debug Symbol During Copy >> 全部设置为NO
  • Build Settings >> Strip Style >> 设置为Non-Global Symbols
  • Build Settings >> Link With Standard Libraries >> 设置为 NO
  • Build Settings >> Mach-O Type >> Static Library
  • 对于Mach-O Type:选择 Static Library 打包得到的是静态库

添加Aggregate

image.png

image.png

添加编译脚本

image.png

···

更新后的代码

FMK_NAME=${PROJECT_NAME}
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework
WRK_DIR=build

DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework
SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework

xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos clean build
#Xcode10此次clean会把当前目录删除然后,重新编译生成新的(即上一步真机生成)。
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}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/${FMK_NAME}"
rm -r "${WRK_DIR}"
open "${SRCROOT}/Products/"



编译

image.png

编译成功后会自动跳出一个finder,保存这个.framework,这就是我们需要的framework。


image.png

使用FrameWork

如果是动态库:需要单独将framework嵌入到ipa安装包中,因为动态库的特点就是运行时加载,所以app的可执行程序中并不会链接其使用的动态库,需要将动态库和可执行程序同时放在安装包中:


image.png

此工程编译打包出来的app文件中,如下图所示,会增加一个Frameworks文件夹,里面存放的正式嵌入的动态库:


image.png

另外

如果Frmawork文件包含category,那么引用该动态库的文件应该设置

other linker flakes 为-all_load

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容