我们欢迎所有开发者使用我们的API和源代码在我们的平台上创建应用程序。 目前,我们对所有开发者有几点要求。
- 将submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m#51-69和submodules/MtProtoKit/Sources/MTEncryption.m#758-763 修改为你自己的RSA PUBLIC KEY。
- 将submodules/TelegramCore/Sources/Network/Network.swift#530-535 修改你自己的服务器IP和服务端口。
- 可以在submodules/TelegramCore/Sources/Account/Account.swift#347修改默认连接DC (默认1)。
- 运行GitHub actions即可。
- 获取您自己的api_id 用于您的应用程序。
- 请不要为您的应用使用Telegram这个名称——或者确保您的用户了解这是非官方应用。
- 请不要使用我们的标准徽标(蓝色圆圈中的白色纸飞机)作为您应用的徽标。
- 请研究我们的安全指南,并妥善保护您用户的数据和隐私。
- 请记得也发布您的代码,以遵守许可证要求。
git clone --recursive -j8 https://github.com/TelegramMessenger/Telegram-iOS.git
安装Xcode(直接从 https://developer.apple.com/download/applications 或使用App Store安装)。
- 生成一个随机标识符��
openssl rand -hex 8
- 创建一个新的Xcode项目。使用
Telegram作为产品名称。使用org.{步骤1中的标识符}作为组织标识符。 - 打开
钥匙串访问并导航到证书。找到Apple Development: your@email.address (XXXXXXXXXX)并双击该证书。在详细信息下,找到组织单位。这就是团队ID。 - 编辑
build-system/template_minimal_development_configuration.json。使用前面步骤的数据。
python3 build-system/Make/Make.py \
--cacheDir="$HOME/telegram-bazel-cache" \
generateProject \
--configurationPath=build-system/template_minimal_development_configuration.json \
--xcodeManagedCodesigning
- 复制并编辑
build-system/appstore-configuration.json。 - 复制
build-system/fake-codesigning。创建并下载配置文件,使用profiles文件夹作为权限的参考。 - 生成Xcode项目:
python3 build-system/Make/Make.py \
--cacheDir="$HOME/telegram-bazel-cache" \
generateProject \
--configurationPath=步骤1中的配置文件 \
--codesigningInformationPath=步骤2中的目录
- 重复上一节的步骤。使用分发配置文件。
- 运行:
python3 build-system/Make/Make.py \
--cacheDir="$HOME/telegram-bazel-cache" \
build \
--configurationPath=...参见上一节... \
--codesigningInformationPath=...参见上一节... \
--buildNumber=100001 \
--configuration=release_arm64
有时,您可能会在构建日志中看到以下消息:
"/Users/xxx/Library/Developer/Xcode/DerivedData/Telegram-xxx/Build/Intermediates.noindex/XCBuildData/xxx.xcbuilddata/build-request.json" not updated yet, waiting...
如果出现这种情况,只需取消当前构建并重新开始一个新的构建即可。
系统重启后,自动生成的Xcode项目可能会构建失败,并伴随此错误:
ERROR: Skipping '@rules_xcodeproj_generated//generator/Telegram/Telegram_xcodeproj:Telegram_xcodeproj': no such package '@rules_xcodeproj_generated//generator/Telegram/Telegram_xcodeproj': BUILD file not found in directory 'generator/Telegram/Telegram_xcodeproj' of external repository @rules_xcodeproj_generated. Add a BUILD file to a directory to mark it as a package.
如果遇到此问题,请重新运行README中的项目生成步骤。
添加 --disableProvisioningProfiles:
python3 build-system/Make/Make.py \
--cacheDir="$HOME/telegram-bazel-cache" \
generateProject \
--configurationPath=配置文件路径.json \
--codesigningInformationPath=配置文件数据路径 \
--disableProvisioningProfiles
每个版本都是使用特定的Xcode版本构建的(参见 versions.json)。辅助脚本会检查已安装软件的版本,如果与 versions.json 中指定的版本不匹配,则会报告错误。可以绕过这些检查:
python3 build-system/Make/Make.py --overrideXcodeVersion build ... # 不检查Xcode版本