OverView
- Telegram 官网:telegram.org
- Telegram API:core.telegram.org/api
- Source Code:github.com/TelegramMes…
建议首先看官方文档,避免时效性信息,造成误导。开始先看中文blog,运行一堆指令,准备环境🤣,现在脚手架丰富了完全不需要了。
环境
Telegram Version:9.0.2
Xcode Version: 14.1
步骤
1、代码拉取
git clone --recursive -j8 https://github.com/TelegramMessenger/Telegram-iOS.git
2、增加配置参数
mkdir -p $HOME/telegram-configuration
cp -R build-system/example-configuration/* $HOME/telegram-configuration/
telegram-configuration 目录结构如下:
example-configuration
├── BUILD
├── WORKSPACE
├── appstore-configuration.json
├── provisioning
│ ├── BUILD
│ ├── BroadcastUpload.mobileprovision
│ ├── Intents.mobileprovision
│ ├── NotificationContent.mobileprovision
│ ├── NotificationService.mobileprovision
│ ├── Share.mobileprovision
│ ├── Telegram.mobileprovision
│ ├── WatchApp.mobileprovision
│ ├── WatchExtension.mobileprovision
│ └── Widget.mobileprovision
└── variables.bzl
appstore-configuration.json应用配置信息,eg: app_id/bundle_id等。variables.bzl文件内容和json等同,用于 bazel 构建工程,见配置文件Telegram/BUILDprovisioning是证书,需要替换有效证书,放到profiles下(运行报错得知)
3、(可选)创建缓存目录,加速再构建
mkdir -p "$HOME/telegram-bazel-cache"
4、Build the app
python3 build-system/Make/Make.py \
--cacheDir="$HOME/telegram-bazel-cache" \
build \
--configurationPath="$HOME/telegram-configuration" \
--buildNumber=100001 \
--configuration=release_universal
官方脚本会报错:
Make build: error: one of the arguments --gitCodesigningRepository --codesigningInformationPath is required
需要增加脚本参数:
--codesigningInformationPath="$HOME/telegram-configuration/provisioning"
5、生成 Xcode 工程
python3 build-system/Make/Make.py \
--cacheDir="$HOME/telegram-bazel-cache" \
generateProject \
--configurationPath="$HOME/telegram-configuration" \
--disableExtensions \
--disableProvisioningProfiles
--disableProvisioningProfiles 可以生成不需要安装任何 codesign 证书的项目,但实际无效,报错如下:
按照提示增加证书路径配置,报错2:
修正后,最终指令如下:
python3 build-system/Make/Make.py \
--cacheDir="$HOME/telegram-bazel-cache" \
generateProject \
--configurationPath="$HOME/telegram-configuration/appstore-configuration.json" \
--disableExtensions\
--codesigningInformationPath="$HOME/telegram-configuration/provisioning"
此时开始生成工程,可能会再次报错,再执行一次脚本即可。(可能是脚本任务时序问题)
可以膜拜大佬的工程了😀😀😀~