问题背景
Telegram开源了iOS的swift版本,github地址如下:GitHub - TelegramMessenger/Telegram-iOS: Telegram-iOS
按照官方README.md
Telegram iOS Source Code Compilation Guide
1 Install the brew package manager, if you haven’t already.
2 Install the packages pkg-config, yasm:
brew install pkg-config yasm
3 Clone the project from GitHub:
git clone --recursive https://github.com/peter-iakovlev/Telegram-iOS.git
4 Open Telegram-iOS.workspace.
5 Open the Telegram-iOS-Fork scheme.
6 Start the compilation process.
7 To run the app on your device, you will need to set the correct values for the signature, .entitlements files and package IDs in accordance with your developer account values.
在执行第3步git clone --recursive https://github.com/peter-iakovlev/Telegram-iOS.git
报错了,开始我以为是网络环境的问题。所以反复试了几次,都还是同样的错误。
报错信息如下:
error: RPC failed; curl 56 OpenSSL SSL_read: error:1408F119:SSL routines:ssl3_get_record:decryption failed or bad record Mac, errno 0
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failederror: RPC failed; curl 56 OpenSSL SSL_read: error:1408F119:SSL routines:ssl3_get_record:decryption failed or bad record Mac, errno 0
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
解决过程
问题原因:
curl 中postBuffer的值不够大,而git仓库中可能存在大文件。
解决方案:
在Terminal中执行:
git config --global http.postBuffer 524288000
相当于把curl的postBuffer的值修改的大一些。524288000的单位是Byte,相当于500MB。
如果还有问题,可以适当的继续增加大小
紧接着又出现了下面的问题
RPC failed; curl 18 transfer closed with outstanding read data remaining
问题原因:
网络下载速度缓慢,可以通过配置git的最低速度限制,和增加最低速度时间来解决。
解决方案:
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
然后顺利拉下来了代码
总结
在第一步的时候我开始以为是公司网络环境,后面我连上了VPN又重新试了几次,还是没有解决问题,在这个步骤中白白浪费了很多时间。
回想起刚开始看到操作系统的一个知识点,程序一旦确定了初始变量,那么它的结果就具有唯一性,所以多次的尝试还不如先解决这个错误。只有从根本上解决了错误,才能得到预期的结果。这是一种很有用的思想!
下一篇,我会讲下如何本地跑起来Telegram-iOS这个项目。