iOS开发-Swift5.0开发SDK以及解决合并库遇到的问题

个人博客地址:hxhxt.cn

Swift5.0已经正式发布了,XCode10.2也已经开放下载,今天下载下来体验了一下,测试了一下ABI稳定的相关内容,以及尝试使用静态库和动态库。

首先感谢一位读者朋友的提醒王大大大大人的博客 ,发现Swift5.0在使用lipo合并真机库和模拟器库时,需要合并生成的xxx-Swift.h,否则会遇到找不到类的问题。

按照以前的做法,合并真机库和模拟器库我们只需要合并可执行文件和Modules文件就可以,但苹果在Swift5.0修改了生成xxx-Swift.h文件的方式,所以还需要合并该文件,合并方式如下:

打开真机库下Headers文件夹中的xxx-Swift.h文件,在末尾添加以下代码:

#if 0
#elif defined(__x86_64__) && __x86_64__

// mark

#endif

然后复制模拟器库下Headers文件夹中的xxx-Swift.h文件中全部内容,粘贴到上面的mark位置,就实现了两个文件的合并了。

对于Swift开发库还不熟悉的朋友可以参考我之前的博客iOS开发-使用OC/Swift开发静态库/动态库(SDK开发)


对于ABI稳定的一些测试。

XCode10.2可以下兼容到4.0,也就是我们使用xcode9.0以上版本开发的库,都可以在XCode10.2上使用了。

对于Swift版APP包体大小的问题,如果Deployment Target设置成12.2或以上,编译出来的ipa包体是不会包含Swift支持库的,可以解压api包进入其中来验证,在Framework文件夹中并不会包含支持库。

但是只要Deployment Target在12.2以下,那么还是会包含支持库,然而现在肯定还得兼容低版本系统的,所以这个迁移得是一个漫长的过程了。

结论是苹果确实在Swift5.0实现了ABI稳定,并且从iOS12.2开始的系统,Swift支持库都已经内置在了系统中。

然后我赶紧把手机升级到12.2了,看看能不能给我腾点内存出来~

推荐阅读更多精彩内容