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
And the console returns
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)
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.
For dynamic frameworks lipo -create path/yourFramework1 path/yourFramework2 -output path/yourFramework
For .a libraries
lipo -create '/sim/lib.a' '/dev/lib.a' -output 'lib.a'
output contains i386 and armv7
I can combine two frameworks (static library only) into one using
libtool -static -o new.framework SwiftJSON.framework/SwiftJSON Shimmer.framework/Shimmer
The script from this github maybe helpful https://gist.github.com/evands/8ba4f227b00ae14a9303
P.S. Merging static library does not reduce the cold start time
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With