手头上有一个 iOS 动态库项目,因为想要自动编译生成 XCFramework ,在网上找了一个脚本生成 XCFramework ,结果发现生成的 XCFramework 库(arm64+armv7 架构)比平常生成的 framework 大多了,前者是 23.1M, 后者是 4.7M
上面用的生成 XCFramework 脚本是 How to make XCFramework / Fat Framework in Xcode 里的第 1 个脚本
研究了一下,发现这个脚本里是用 Archive 生成目标 framework 的,而我们平常都是直接用 Run+Release 模式编译的。查问题手动进行 Archive 编译时,发现生成的 Products 目录还是空的。搜了一下在 Build Setting 中设置 SKIP_INSTALL
为 NO ,就能成功 Archive 出 framework 了,大小跟前面脚本生成的一致了,是 23.1M 。
另外发现把 BitCode 改为 NO 后,手动 Archive 生成的 framework 大小变为 6.3 MB 了。
这个 Framework 项目里用到了 OpenSSL 的 libssl.a 和 libcrypto.a 库,可能是这个原因,前者是 21.4M ,后者是 4.3M ,可能是这两个库的原因导致 Archive 生成的库比较大?感觉不太像。
同样都是 BitCode 为 YES 的情况下,为什么用 Run+Release 模式生成的 framework 就小很多呢,有人知道原因吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.