总结导入lottie-ios的艰难过程

小曼study 2017-03-10

Animation Transfer github

今天准备试一下lottie这个牛牛的第三方,这个工具可以把从AE中导出的动画的json文件解析成一个view供我们使用。lottie的地址是:https://github.com/airbnb/lottie-ios
首先,我是准备直接在项目中导入这个框架。本以为很简单的,可是意外还是发生了。导入框架lottie-ios之后,编译通不过,报了九个错误。我明明是按照说明做得,这是怎么回事呢?开始各种google,最终没有找到原因。具体错误信息如下:
CADisplayLink.m文件编译出错9个。
例如: Unknown type name 'CVDisplayLinkRef'; did you mean 'CADisplayLink'?
在搜索的过程中遇到一位博主,写了使用lottie的相关东西,无奈之下,试着在他的文章下面把我的问题提问了一下,没想到,他竟然回复了,非常的惊喜。他的回复如下:
iTerryWang@睡醒的妞妞 我这边也用你的方式集成了下,确实会报你说的错,调查了下,是因为TARGET_OS_IPHONE 这种宏没有生效。正常的情况,报错那几个文件是macOS平台使用的。在编译iOS平台时,不应该被编译。可以尝试创建一个pch文件,把#import "TargetConditionals.h"这个加一下就可以正常编译了。 不过还是推荐使用pods的方式集成。

我按照他的方法进行了实验,真的编译过了,很开心。在我开心的心情还没有平静的时候,一盆冷水又浇了个透心凉。
继续集成lottie,使用推荐的方法:
LOTAnimationView animation = [LOTAnimationView animationNamed:@"loading"];
[self.view addSubview:animation];
[animation playWithCompletion:^(BOOL animationFinished) {
NSLog(@"动画播放完成");
}];
然后编译,崩溃啦!崩溃啦!崩溃啦!
崩溃信息如下:
运行,结果崩溃了,崩溃在LOTAnimationView的205行, resourceNotFoundException;这句话。控制台给的崩溃信息是:
** Terminating app due to uncaught exception 'ResourceNotFoundException', reason: '(null)'
。好无奈。
放弃使用直接导入的方式了,改用推荐的pod吧。

打开终端,正常的方式建立Podfile文件,写入
platform:ios,'8.0'
target 'TestLottie' do
pod 'lottie-ios','~>1.5.0'
end

一直pod失败,提示连接失败443。以为是终端没有使用翻墙代理导致的,所以花费了两三个小时的时间在做终端代理的配置。配置了代理之后,还是报错。为了验证到底是哪里出了问题,先导入AFNetWorking试试,一试发现成功了,现在可以排除网络原因了,应该是lottie这个三方没找对。
错误信息如下:

bogon:TestLottie aa$ pod install
Analyzing dependencies
Downloading dependencies
Using AFNetworking (3.1.0)
Installing lottie-ios (1.5.0)

[!] Error installing lottie-ios
[!] /usr/bin/git clone https://github.com/airbnb/lottie-ios.git /var/folders/yb/20c1c4sx0q91yqvzlr92n_p80000gp/T/d20170310-59137-kam3xz --template= --single-branch --depth 1 --branch 1.5.0

Cloning into '/var/folders/yb/20c1c4sx0q91yqvzlr92n_p80000gp/T/d20170310-59137-kam3xz'...
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

然后我想到先search一下看看能否找到lottie这个三方库。

bogon:TestLottie aa$ pod search lottie-ios
[!] Unable to find a pod with name, author, summary, or description matching `lottie\-ios`

搜索不到这个三方库。再搜一下AF试试吧。

bogon:TestLottie aa$ pod search AFNetWorking
[!] Unable to find a pod with name, author, summary, or description matching `AFNetWorking`

AF之前明明已经pod成功了,竟然也search不到,继续查找原因。然后就找到了,说是本地库的缓存有问题,在终端执行如下命令:

bogon:TestLottie aa$ rm ~/Library/Caches/CocoaPods/search_index.json

再次search,真的成功了!

bogon:TestLottie aa$ pod search AFNetworking
Creating search index for spec repo 'master'.. Done!

再次搜索search lottie,就真的找到了。

img_0868bf6585f6922706fdf7b57c257811.png
9ADF994F-D546-432D-AB09-5893EBD702A1.png

再次执行install

bogon:TestLottie aa$ pod install
Analyzing dependencies
Downloading dependencies
Using AFNetworking (3.1.0)
Installing lottie-ios (1.5.0)

[!] Error installing lottie-ios
[!] /usr/bin/git clone https://github.com/airbnb/lottie-ios.git /var/folders/yb/20c1c4sx0q91yqvzlr92n_p80000gp/T/d20170310-59225-l8vqf0 --template= --single-branch --depth 1 --branch 1.5.0

Cloning into '/var/folders/yb/20c1c4sx0q91yqvzlr92n_p80000gp/T/d20170310-59225-l8vqf0'...
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

结果,又失败了。。。。。
仔细对比之后发现,这次的错误和上次的错误竟然是一样的!!!看来还是应该查找

error: RPC failed; curl 18 transfer closed with outstanding read data remaining

这个错误。
寻找之后发现执行下面这个命令之后就好了:

bogon:TestLottie aa$ Git config --global http.postBuffer 524288000

再次执行install,

bogon:TestLottie aa$ pod install
Analyzing dependencies
Downloading dependencies
Using AFNetworking (3.1.0)
Installing lottie-ios 1.5.0 (was 1.0.4)
Generating Pods project
Integrating client project
Sending stats
Pod installation complete! There are 2 dependencies from the Podfile and 2 total pods installed.
bogon:TestLottie aa$ 
img_ae04ae41d1228cf5fc5744581971d2d7.png
Paste_Image.png

终于成功啦!!!!

后来再次查找原来的导入lottie的工程中的崩溃,发现是我忘记导入loading文件啦,实在是汗颜。人在着急的状态下真的是检验抗压和应变能力,这种错误实在是。。。。。以后不管事情多着急,还是应该静下心来才能事半功倍。继续加油吧!

登录 后评论
下一篇
corcosa
15003人浏览
2019-10-08
相关推荐
程序员最艰难的十大任务
425人浏览
2015-07-14 16:34:00
Angularjs开发一些经验总结
351人浏览
2017-01-10 09:46:00
新产品项目开发的艰难起步
399人浏览
2009-11-30 19:57:00
0
0
0
571