iOS 组建化之创建静态Framework

文章代码下载链接

1:创建Framework

在这里插入图片描述

2:将使用到的第三方库用cocoapods导入

一:进入Framework工程目录,创建Podfile文件

$ cd /Users/imac/Desktop/new/CFBaseFramework
$ touch Podfile

二:打开创建的Podfile文件并添加内容,完成后保存

platform :ios, '9.0'
inhibit_all_warnings!

target 'CFBaseFramework' do
# 网络数据库
pod 'AFNetworking', :subspecs => ['Reachability', 'Serialization', 'Security', 'NSURLSession']
# 图片下载
pod 'SDWebImage/WebP'
# 下拉刷新
pod 'MJRefresh'
# 数据处理
pod 'MJExtension'
# 弹窗
pod 'SVProgressHUD'
# 自动布局
pod 'Masonry'
# 弹窗
pod 'MBProgressHUD', '~> 1.1.0'
# 键盘
pod 'IQKeyboardManager'
# crash防护
pod 'JJException'

end

三:执行pod安装命令,命令行转到工程目录下执行以下命令

$ cd /Users/imac/Desktop/new/CFBaseFramework
$ pod install

3:把需要组建化的项目文件直接拖进来

在这里插入图片描述

4:公开需要给外部使用的头文件

在这里插入图片描述

5:将第四步中公开的头文件在CFBaseFramework中引用

在这里插入图片描述

6:配置Build Setting

*Build Active Architecture Only修改为NO,否则生成的静态库就只支持当前选择设备的架构   
*将Mach-O Type设为Static Library( 静态库)
*将Dead Code Stripping设置为NO(是否消除无效代码)
*将Link With Standard Libraries关闭

7:生成Framework库

设置为release模式下运行(真机&模拟器)
在这里插入图片描述
将编译的 Device 选择为真机 ,然后按下 Command + B 开始编译,编译成功后在 Products 文件夹的 .framework 文件,右键点击 Show in Finder
在这里插入图片描述
这里就是生成的framework
在这里插入图片描述

8:查看架构信息

打开终端使用命令行 lipo -info 查看framework架构信息

$ lipo -info /Users/imac/Desktop/CFBaseFramework.framework/CFBaseFramework 
$/Users/imac/Desktop/CFBaseFramework.framework/CFBaseFramework are: armv7 arm64 armv7s 

9:将CFBaseFramework拖入工程中并使用

在这里插入图片描述

10:若主工程同样使用cocoapods进行第三方库管理

若主工程同样使用cocoapods进行第三方库管理,并且跟我们创建的framework引用了相同的第三方库。例如同时引用了JJException。编译时项目会报如下错误

  • library not found for -ljjexception framework
  • 解决方式只需要在主工程Podfile文件中加上:use_frameworks!
    在这里插入图片描述

当framework使用了pod引用第三方库时并且设置Build Active Architecture Only为NO时,build报错。解决方式删除Frameworks中的libPods-CFBaseFramework.a文件在这里插入图片描述

项目添加静态库Framework报错:Could not build module 'CFBaseFramework’

解决:Public中的头文件,import了其他的头文件,该文件也需要放在public里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值