iOS将多个框架合并为一个 [英] iOS merge several framework into one
问题描述
在观看WWDC 2016视频优化应用程序启动时间之后,苹果建议开发人员可以将多个框架(动态库不是静态的)合并为一个,以缩短应用程序的启动时间. https://developer.apple.com/videos/play/wwdc2016/406/
After watching the WWDC 2016 video optimizing App Startup time, Apple suggested developer can merge several frameworks (dynamic library not static) into one to improve the app cold start time. https://developer.apple.com/videos/play/wwdc2016/406/
所以我在这里下载了一个虚拟项目:
So I downloaded a dummy project here:
https://github.com/stepanhruda/dyld-image-loading-performance
并尝试使用以下命令将两个框架合并为一个:
And try to merge two frameworks into one using the following command:
libtool -static -o new.framework SwiftyJSON.framework Shimmer.framework
控制台返回
error:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: can't map file: SwiftyJSON.framework (Invalid argument)`
error:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: can't map file: Shimmer.framework (Invalid argument)
所以我的问题是如何将多个框架合并为一个?我们可以使用libtool来做到这一点,以及如何做到吗?非常感谢.
So my question is how to merge several framework into one? Can we use libtool to do it and how to do it? Many thanks.
推荐答案
用于动态框架
lipo -create path/yourFramework1 path/yourFramework2 -output path/yourFramework
For dynamic frameworks
lipo -create path/yourFramework1 path/yourFramework2 -output path/yourFramework
.a库
- 其中sim/lib.a包含i386
- 其中dev/lib.a包含armv7
lipo -create '/sim/lib.a' '/dev/lib.a' -output 'lib.a'
lipo -create '/sim/lib.a' '/dev/lib.a' -output 'lib.a'
输出包含i386和armv7
output contains i386 and armv7
这篇关于iOS将多个框架合并为一个的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!