代码下载:
https://github.com/TelegramMessenger/Telegram-iOS
官方说明太简单了……他是用的是Facebook的buck来管理编译,先安装需要的工具
brew install yasm cmake brew tap AdoptOpenJDK/openjdk brew cask install adoptopenjdk8 brew tap facebook/fb brew install buck
buck使用的java8,Mac上自带的java都到13了,所以要装jenv来做环境管理
brew install jenv
#以下内容加到bash_profile里面,source之后jenv就可以用了 export PATH=”HOME/.jenv/bin:PATH” eval “
jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home jenv global openjdk64-1.8.0.242
下面这一步开始懵逼,官方readme说打开xcode的workspace,翻来翻去找不到,原来要用make来产生workspace文件,参考这里设置一些基本参数,注意修改bundleID,可以自己编一个,API相关密钥可以在这里注册。
工程里面建议是把证书全部改到Xcode自动管理会比较省事,然后把AppGroup、ApplePay的MerchantID都改下,因为是要和bundleID关联的。改完这一些已经可以编译过了。
真机跑起来提示libAsyncDisplayKit.dylib签名不对,这时候回到主程序的scheme里面把所有dylib从Embed Without Signing改为Embed & Sign,跑起来就没问题了。
参考内容
- build Telegram Messenger iOS App
- Telegram iOS源码二次开发介绍(1)
- Reproducible Builds for iOS and Android
- 编译自己的iOS版Telegram
- Telegram-iOS Swift 编译问题