About this project

This repository contains the official Telegram iOS source code and a detailed compilation guide for developers who want to build applications on the Telegram platform. Key requirements for developers: - Obtain a personal api_id from Telegram. - Avoid using the Telegram name or standard logo for unofficial apps. - Follow Telegram's MTProto security guidelines to protect user data and privacy. - Publish derivative source code to comply with the licences. Quick Compilation Guide: - Clone the repository recursively. - Install Xcode from Apple. - Generate a random organization identifier and locate the Apple Development certificate's Team ID in Keychain Access. - Edit build-system/template_minimal_development_configuration.json with the gathered data. - Generate an Xcode project via a Python build script (build-system/Make/Make.py) using Bazel caching and Xcode-managed codesigning. Advanced Compilation Guide: - Copy and edit build-system/appstore-configuration.json. - Set up provisioning profiles using build-system/fake-codesigning as a reference. - Generate an Xcode project with custom codesigning information. - Build an IPA for release_arm64 using distribution provisioning profiles. FAQ and Tips: - Addresses common issues such as Xcode getting stuck on build-request.json and missing Bazel packages after system restarts. - Simulator-only builds can skip provisioning profiles with --disableProvisioningProfiles. - Each release targets a specific Xcode version defined in versions.json; version checks can be overridden with --overrideXcodeVersion.