編譯 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章