Unityframework-iOS可执行文件大小优化
2023-11-22 本文已影响0人
fighter0501
背景
目前编译出来的Unityframework可执行文件有170m,但是第三方那边是73.1m。因此我们急需优化Unityframework的可执行文件大小(第三方也用产品证明了是可以优化的)。
措施
一开始根据之前搞cocos的经验,猜测应该是unity那边设置一些配置。这样出来的库的可执行文件大小应该会减小。但是一番折腾后,没有找到可行的一些配置(因为也不太确定)。然后询问了第三方组件的同学,希望能给出一些建议。那边给的建议主要如下:
需要做很多裁包行为的,包括管线,用到的一些库之类的,以及项目本身的一些配置开关也会有影响(和unity版本关系不大,我们目前用的unity版本之前即构也用过),比如:
- 管线配置。
- 应该是把很多 unity API 库也打进去了,看看生成的可执行文件包内容里面能不能看到这些东西。
经过分析。看起来还是配置,因此尝试去setting里面鼓捣:
然后经过一些查找,以及验证。发现了两个配置确实有用:
环境
- 工程:xxxx commit:xxxxxxx
- 导出:为了避免unity同事自己写的导出工程插件有做设置处理,因此使用unity自带的导出工程导出。

尝试
尝试一:
IL2CPP Code Generation设置Faster (smaller) builds

经过测试compression method设置没有效果。

效果
包体积减小40m

尝试二:
开启Strip engine Code。并且Managed Stripping Level设置成High,但是网上说设置成High可能会造成闪退等问题。

效果
包体积减小约22m

尝试三:
Script Call Optimization设置成Fast but no Exceptions

效果
暂无效果(哈哈)

效果
Unityframework可执行文件大小由最初的170m降为104.7m,减小了65.3m(修改后会不会影响库的稳定性,还需要去验证)。