微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – Swift项目比我预期的要大

我的项目有4个框架和31个(31种语言)自定义键盘扩展.当我编译它时,它需要98 MB的内部设备内存.

所以我决定看看为什么这么多.我在设备文件夹中找到了我的项目.

文件插件占用38 MB,文件夹框架占用42 MB.

在Frameworks文件夹中有4个我的框架和8个Swift框架,您可以在上面的图片中看到

我的每个框架都包含相同的8个Swift框架.我可以以某种方式只添加这个快速框架一次吗?

并非全部.在插件文件夹中是我的自定义键盘扩展文件夹.我有200个图像添加到我的一个模块(框架)中,并将其引用到每个扩展中(因为它们需要用于构建键盘的图像).但在项目文件夹中,每个扩展文件夹都有该图像.它需要大量的内存.

所以…我可以以某种方式只添加一次图像(不是每个自定义键盘扩展名)?我可以只添加一次swift框架(不是每个我的框架和项目)吗?

编辑:

我暗示每个自定义键盘扩展都像是单独的程序.所以maby他们真的需要将这些图像复制到每个扩展中.

解决方法

看起来这是由于为实现兼容性保证而采取的措施.

… Xcode embeds a small Swift runtime library within your app’s bundle. Because the library is embedded,your app uses a consistent version of Swift that runs on past,present,and future OS releases.

有趣的是,您在每个框架中都看到了它.该声明似乎表明该框架不包含运行时库.

While your app’s runtime compatibility is ensured,the Swift Language itself will continue to evolve,and the binary interface will also change. To be safe,all components of your app should be built with the same version of Xcode and the Swift compiler to ensure that they work together.

资料来源:Swift Blog – Compatibility

我不确定你是否能控制它.一个很好的选择是打败devforums,看看Swift的创造者是否可以减少更多光线.

原文地址:https://www.jb51.cc/iOS/333973.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐