Xcode开发framework包的一些经验

本文介绍了使用Xcode开发Cocoa Touch Framework的步骤,特别是针对蓝牙SDK的创建。从新建工程、编译不同配置,到利用lipo命令合并debug和release的framework,最终形成适用于真机和模拟器的通用版本。过程中强调了正确处理Headers、Info.plist和Modules的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近要做一个ios上的蓝牙sdk,研究了下framework,经过半个多月的折腾终于有了结果。再次吐槽下关于编程的中文网页质量之低。

首先是在xcode中建立工程,编写代码,项目名为blesdk,这个名字后面还会用到。建立项目的时候记得设置为Cocoa Touch Framework,如图
这里写图片描述

编译库的时候要注意,基于发布状态有debug和release两种选择,然后基于模拟器和真机又有两种选择,这样合起来就有四种状况,我们把这四种情况都演习一遍。

选中上方的菜单,Product->Scheme->Edit Scheme,
这里写图片描述

出来如下的对话框
这里写图片描述

可以看到这里是执行debug和release的选择的,真机和模拟器的选择在target这里,选择真机就按真机编译,选择模拟器就按模拟器编译。
这里写图片描述

挨个编译一遍后,我们发现左下角的blesdk.framework由红字变为黑字了,在其上右键弹出菜单,选择Show in Finder,然后退到上一级菜单,可以看到如下场景
这里写图片描述

为了后面操作方便,我们把这四个framework复制粘贴到同一个路径下面,略微改个名字,防止文件名相同而覆盖,如下图
这里写图片描述

下面我们再来进行最重要的合并工作,命令行进入当前目录,用lipo命令查看这几个framework
这里写图片描述

可以看到,真机是按照arm7和arm64生成的,模拟器是按照x86_64和i386生成的,所以我们只要合并releasesim和releaseios两个文件,就能覆盖所有的状态。那么如何合并呢?

首先我们建立一个新目录,将其改名为final.framework,其图标会变为framework一样的乐高积木图标。

然后调用此命令
lipo -create
releasesim.framework/blesdk
releaseios.framework/blesdk
-output
final.framework/blesdk

命令执行完毕后,我们可以打开这个final.framework和两个源framework,看到如下的内容
这里写图片描述

仔细点进去看,就会发现两个源framework里面的Headers是一样的,Info.plist也是一样的,Modules中都是和自己平台对应的文件,将这些文件夹全部复制粘贴到final.framework中,Modules文件夹记得选择合并而不是覆盖

这样我们就得到了最后的framework文件,你可以将其改成任何名称发布,比如说BleSDK_v3_2.framework,它可以用来真机调试或者在模拟器上调试,而不会发生未找到模块的事情

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值