編譯Telegram-iOS-7.6(視頻通話)

已經(jīng)有很長(zhǎng)一段時(shí)間沒(méi)有跟蹤Telegram-iOS的代碼了,在國(guó)內(nèi)也沒(méi)怎么用Telegram。7.6版本應(yīng)該是支持群視頻通話功能的吧,沒(méi)有測(cè)試,大家伙兒自己試試吧。先上一個(gè)順利跑起來(lái)后的屏幕截圖

截屏2021-05-17 下午4.30.08.png

總的來(lái)說(shuō),Telegram開(kāi)發(fā)團(tuán)隊(duì)從Buck編譯更改為Bazel后,似乎編譯的坑變得少了很多。編譯這個(gè)7.6版本很快就跑起來(lái)了。下面是具體步驟,在官方給出的編譯步驟基礎(chǔ)上有所改動(dòng)。

Compilation Guide

特別提醒,為了無(wú)腦使用下面的終端命令,不要自己在桌面創(chuàng)建目錄去拉代碼,打開(kāi)終端直接執(zhí)行命令,直接在默認(rèn)的用戶目錄下操作就好了
$HOME是當(dāng)前用戶主目錄,它有個(gè)別名 ~

  1. Install Xcode (directly from https://developer.apple.com/download/more or using the App Store).
    編譯此版本,特地把Xcode版本從12.2升級(jí)到了12.4(不要問(wèn)為啥,問(wèn)就是Telegram讓升級(jí)的)
  2. Clone the project from GitHub:
git clone --recursive https://github.com/TelegramMessenger/telegram-ios.git

沒(méi)有使用官方給的git命令,不知道為啥,那個(gè)地址下載下來(lái)的工程大概率Submodule會(huì)下載失敗

cd telegram-ios

進(jìn)入工程目錄

git checkout release-7.6
git submodule update

切換到需要編譯的版本,本次編譯7.6版本

  1. Download Bazel 4.0.0(下面這一堆都是在配置本地Bazel環(huán)境)
    ~ 目錄下執(zhí)行
mkdir -p $HOME/bazel-dist
cd $HOME/bazel-dist
curl -O -L https://github.com/bazelbuild/bazel/releases/download/4.0.0/bazel-4.0.0-darwin-x86_64
mv bazel-* bazel

Verify that it's working
bazel-dist 目錄下執(zhí)行

chmod +x bazel
./bazel --version
  1. Adjust configuration parameters
    ~ 目錄下執(zhí)行
mkdir -p $HOME/telegram-configuration

telegram-ios 目錄下執(zhí)行

cp -R build-system/example-configuration/* $HOME/telegram-configuration/
  • Modify the values in variables.bzl
  • Replace the provisioning profiles in provisioning with valid files
  1. (Optional) Create a build cache directory to speed up rebuilds
    ~ 目錄下執(zhí)行
mkdir -p "$HOME/telegram-bazel-cache"
  1. Build the app
python3 build-system/Make/Make.py \
 --bazel="$HOME/bazel-dist/bazel" \
 --cacheDir="$HOME/telegram-bazel-cache" \
 build \
 --configurationPath="$HOME/telegram-configuration" \
 --buildNumber=100001 \
 --configuration=release_universal
  1. (Optional) Generate an Xcode project
python3 build-system/Make/Make.py \
 --bazel="$HOME/bazel-dist/bazel" \
 --cacheDir="$HOME/telegram-bazel-cache" \
 generateProject \
 --configurationPath="$HOME/telegram-configuration" \
 --disableExtensions

It is possible to generate a project that does not require any codesigning certificates to be installed: add --disableProvisioningProfiles flag:
在模擬器跑代碼,telegram-ios目錄執(zhí)行下面的命令就可以了

python3 build-system/Make/Make.py \
 --bazel="$HOME/bazel-dist/bazel" \
 --cacheDir="$HOME/telegram-bazel-cache" \
 generateProject \
 --configurationPath="$HOME/telegram-configuration" \
 --disableExtensions \
 --disableProvisioningProfiles

Tip: use --disableExtensions when developing to speed up development by not building application extensions and the WatchOS app.

補(bǔ)充說(shuō)明
列舉一下遇到的問(wèn)題
1.執(zhí)行git clone --recursive https://github.com/TelegramMessenger/telegram-ios.git之后,Submodule下載失敗,自動(dòng)重試之后還是失敗

截屏2021-05-17 下午5.59.15.png

解決方法
telegram-ios目錄下執(zhí)行

git checkout release-7.6
git submodule update

如果還是有提示失敗,繼續(xù)執(zhí)行git submodule update
直到所有Submodule成功checkout到對(duì)應(yīng)節(jié)點(diǎn)

截屏2021-05-17 下午6.05.41.png

2.編譯工程的時(shí)候,報(bào)錯(cuò)rnnoise.h頭文件找不到

截屏2021-05-17 下午4.03.20.png

解決方法
telegram-ios目錄下執(zhí)行

git submodule update

3.編譯工程的時(shí)候,報(bào)錯(cuò)rlottie.h頭文件找不到

截屏2021-05-17 下午6.29.40.png

這個(gè)問(wèn)題應(yīng)該是rlottie這個(gè)三方庫(kù)沒(méi)有成功拉下來(lái),看下路徑是不是rlottie文件夾是空的
截屏2021-05-17 下午6.30.14.png

解決方法
submodules/rlottie/目錄下刪除rlottie空文件夾,重新clone

截屏2021-05-17 下午6.39.16.png

telegram-ios目錄下執(zhí)行git submodule update(非必需)

4.Telegram不給看有用的控制臺(tái)日志

截屏2021-05-17 下午4.20.25.png

解決方法
Telegram可以寫代碼,我可以改代碼呀
AppDelegate.swift
搜索

LoggingSettings.defaultSettings = LoggingSettings(logToFile: true, logToConsole: false, redactSensitiveData: true)

修改成

LoggingSettings.defaultSettings = LoggingSettings(logToFile: true, logToConsole: true, redactSensitiveData: true)

重新跑一下模擬器,啥協(xié)議內(nèi)容你都能看咯


截屏2021-05-17 下午4.22.39.png

5.莫名其妙不能編譯了


截屏2021-05-19 上午10.20.23.png

看上去是路徑問(wèn)題,然而不知道在哪里修改

解決方法(玄學(xué))
重啟MAC

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容