制作framework库及遇到的坑

一、创建framework工程

1.1 创建工程
1.1.1 创建普通工程用于测试

这里写图片描述

1.1.2 创建framework工程

这里写图片描述

选择动态库工程
这里写图片描述

创建完成之后的工程

这里写图片描述

1.2 framework工程设置

1.2.1 将Build Active Architecture Only 设置为NO

这里写图片描述

1.2.2 TARGETS -> Build Settings->Mach-O type 将其设置成静态库 Static Library (注:这个设置非常重要)

这里写图片描述

1.2.3 调整最低支持的iOS系统

这里写图片描述

1.2.4 TARGETS - Build Settings-Architectures 增加armv7s。 如果你用的真机是iPhone5 C,生成的Framework不支持armv7s,默认的Architectures不包含armv7s。 所以要在Architectures下增加armv7s,并选中。

这里写图片描述

1.2.5 如果 SDK 有用到 Category,注意项目设置 Other Linker Flags 添加 -ObjC

这里写图片描述

1.2.6 TARGETS - Build Settings - ENABLE BITCODE 设置为NO

这里写图片描述

1.2.7 将用到的资源文件和第三方的开源库以及SDK添加到工程中

这里写图片描述

勾选之后的效果
这里写图片描述

这里写图片描述

文件配置说明
这里写图片描述

1.2.8 给framework工程添加.a和.framework库依赖

这里写图片描述

1.2.9 在framework工程中使用cocoapods中的第三方库

这里写图片描述

二、遇到的坑

坑一 Include of non-modular header inside

这里写图片描述

解决方案1:
这里写图片描述

解决方案2:
在framework库的主头文件中添加头文件

坑二 意思是未定义类Localisator,这个错误发生在MGMailDBOperationManager中(只是以Localisator为例,其他几个一样处理)

这里写图片描述

解决方案1:打framework包的时候会把Localisator打进去

这里写图片描述

解决方案2:

这里写图片描述

坑三 XXX.tbd is not an object file (not allowed in a library)

这里写图片描述

解决方案:
这里写图片描述

坑四 ld: xx duplicate symbols for architecture arm64

解决方案:
第一步:
这里写图片描述
第二步:
这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值