SDWebImage本身就支持webp,但是webp在TC有个蛋疼的问题就是VPN,工程中经常执行pod update 耗时耗力,然后我就直接扔在本地了。
方法
- 在终端直接配置翻墙直接执行pod update,然后直接拷贝到本地目录直接引入
纯手工操作
由于我的vpn出问题了么有执行pod update 成功,https://chromium.googlesource.com/webm/libwebp 执行到这儿一直超时。我直接去https://chromium.googlesource.com/webm/libwebp 地址直接下载工程。
工程中有一个iosbuild.sh脚本,然后直接执行。但是发现执行完的framewrok中并没有 这几个为红色的文件并没有,但SDWebImage中
/*
* This file is part of the SDWebImage package.
* (c) Olivier Poitrey <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#ifdef SD_WEBP
#import "UIImage+WebP.h"
#import "webp/decode.h"
#import "webp/mux_types.h"
#import "webp/demux.h"
#import "NSImage+WebCache.h"
#import "objc/runtime.h"
// Callback for CGDataProviderRelease
static void FreeImageData(void *info, const void *data, size_t size) {
free((void *)data);
}
显而易见,报错了,引入的文件没有,但是看一下工程结构。
工程中都有该文件,显然在执行iosbuild.sh没有打包进去,那我们做的就非常简单了。
- 最后一步修改 iosbuild.sh脚本,125行加入别的几个类文件,执行./iosbuild.sh 生成的framework就可以用了。
cp -a ${SRCDIR}/src/webp/{config,demux,format_constants,mux_types,mux,decode,encode,types}.h ${TARGETDIR}/Headers/
${LIPO} -create ${LIBLIST} -output ${TARGETDIR}/WebP
还有一种方法:
YYImage(本身也支持webp,直接使用也没有问题,由于我们之前使用的sd,就没有换了)也支持了https://github.com/ibireme/YYWebImage 直接copy YYWebImage/Vendor/WebP.framework 使用也没有问题。