在观看WWDC 2016视频优化应用启动时间后,Apple建议开发人员可以将多个框架(动态库而非静态)合并为一个,以改善应用冷启动时间。 https://developer.apple.com/videos/play/wwdc2016/406/
所以我在这里下载了一个虚拟项目:
https://github.com/stepanhruda/dyld-image-loading-performance
尝试使用以下命令将两个框架合并为一个:
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来做它以及如何做到这一点吗?非常感谢。
答案 0 :(得分:2)
我可以使用
将两个框架(仅限静态库)合并为一个UIScrollView
来自这个github的脚本可能会有所帮助 https://gist.github.com/evands/8ba4f227b00ae14a9303
P.S。合并静态库不会减少冷启动时间
答案 1 :(得分:2)
对于动态框架
lipo -create path/yourFramework1 path/yourFramework2 -output path/yourFramework
对于.a库
lipo -create '/sim/lib.a' '/dev/lib.a' -output 'lib.a'
输出包含i386和armv7
答案 2 :(得分:0)
如果您要合并由cocoapods创建的框架,则可以使用 pod-merge 插件:https://github.com/grab/cocoapods-pod-merge