编译 cronet 静态库—— ios 版本

cronet 是 Chromium 用于移动端的网络库,提供了 Java 和 OC 的 API,支持 HTTP/HTTPS/QUIC/SPDY 等协议。
本文主要参考此文献

1、依赖

1.1 depot_tools

通过下面指令安装 depot_tools,该依赖项包含了后续的 fetch 等命令。python 版本需要小于 2.7,最好是 2.7(创建软链接 /usr/bin/python 指向 /usr/bin/python2.7+)

 git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
 
 export PATH="$PATH:/path/to/depot_tools" # 或者在 ~/.bashrc 中添加该行命令,并 source 该文件

1.2 chromium 源码

–no-history 可以节省代码下载时间,它忽略仓库的历史信息;整个代码量较大,约 14G,且需要翻墙,1M 左右的速度需要 20~30 分钟。

 mkdir chromium && cd chromium
 fetch --nohooks --no-history ios

1.3 依赖文件

该命令需要 src 目录下的 .gclient 文件。

gclient sync

2、编译

编译必须在 mac 平台操作。
cronet 库的 ios 版本有模拟器和真机之分。
不管是模拟器还是真机,现在 src 目录创建一个软链接,并创建 ninja 编译文件。

# ln -s ./components/cronet/tools/cr_cronet.py cr_cronet.py 
./cr_cronet.py gn

以下命令会生成 cronet 静态库,目录 obj/components/cronet/ios/libcronet*.a

模拟器:

 ./cr_cronet.py build -d out/Debug-iphonesimulator

真机:

./cr_cronet.py build -d out/Debug-iphoneos # 方法 1
./cr_cronet.py gn -i                     # 方法 2
./cr_cronet.py build -i                  # 方法 3

你可能感兴趣的:(网络通信,计算机网络)