Telegramの公式iOSアプリをソースコードから自分でビルドできる! — Telegram-iOS

TelegramMessenger/Telegram-iOSSwift8.4k

Telegram-iOSは、メッセージアプリ「Telegram」のiOS版(iPhone/iPad向け)の公式ソースコードです。Telegram-iOSを使えば、開発者はTelegramのiOSアプリがどのように作られているかを学んだり、自分独自のメッセージアプリを構築したりできます。Telegram社はAPIとソースコードを公開しており、誰でも自分専用のTelegram互換アプリを作ることが可能です。ただし、公式のTelegramという名前やロゴは使えないなどのルールがあり、セキュリティガイドラインに従ってユーザーのプライバシーを守る必要があります。主にiOSアプリ開発経験のあるプログラマーや、メッセージングアプリの仕組みに興味のある技術者が対象です。

🔥 なぜ話題?

Telegramは世界中で利用者が増え続けている主要なメッセージアプリであり、プライバシー重視の風潮の中でオープンソースで公式コードを公開している点が開発者コミュニティから高く評価されています。大規模なiOSアプリの実装例として、Swift/Objective-Cの学習素材としても注目されています。

💡 こう使える!

例えば、社内専用の安全なメッセージアプリを作りたい企業の開発者が、Telegram-iOSのソースコードをベースにして、自社ブランドのチャットアプリをiPhone向けにカスタマイズして構築し、App Storeに公開するといった使い方ができます。

ユースケース: TelegramのiOSアプリのソースコードを元に、独自のメッセージングアプリを開発したり、大規模iOSアプリの設計を学ぶために使う。

  • Telegramの公式iOS版ソースコードが完全に公開されている
  • 自分のAPI IDを取得すれば独自のTelegram互換アプリを構築可能
  • シミュレータ専用ビルドならコード署名なしで手軽に試せる

技術情報

言語

Swift

最終更新

2026-04-01

スター数

8,391

フォーク数

2,536

Issue数

631

技術詳細

ビルドシステム

  • Bazel を使ったビルドシステムを採用しており、build-system/Make/Make.py というPythonスクリプトがプロジェクト生成やビルドを管理する
  • Xcodeプロジェクトは rules_xcodeproj を使って自動生成される
  • ビルドキャッシュは $HOME/telegram-bazel-cache に保存される

対応環境

  • プラットフォーム: iOS(iPhone / iPad)
  • 開発ツール: Xcode(リリースごとに特定バージョンが versions.json で指定される)
  • 言語: Swift / Objective-C(READMEからの推測)
  • ビルドスクリプト: Python 3

ビルド方法の種類

クイックビルド(開発用)

  • Xcode管理のコード署名(--xcodeManagedCodesigning)を使った簡易ビルド
  • 最小限の設定ファイル template_minimal_development_configuration.json を使用

アドバンスドビルド(配布用)

  • カスタムのプロビジョニングプロファイルとコード署名を使用
  • IPAファイル(App Storeに提出するパッケージ形式)の生成が可能
  • --configuration=release_arm64 で実機向けリリースビルドを生成
  • --buildNumber でビルド番号を指定可能

便利なオプション

  • シミュレータ専用ビルド: --disableProvisioningProfiles を追加すればコード署名なしでビルド可能
  • Xcodeバージョンチェックの無効化: --overrideXcodeVersion で特定バージョン以外のXcodeでもビルド可能

既知の問題と対処法

  • "build-request.json not updated yet": ビルドがフリーズした場合、ビルドをキャンセルして再実行する
  • "no such package" エラー: システム再起動後に発生することがあり、プロジェクト生成ステップを再実行すれば解決する

API・利用規約

  • Telegram API から独自の api_id を取得する必要がある
  • 公式の「Telegram」という名称やロゴ(青い円の中の白い紙飛行機)を使用してはならない
  • MTProtoセキュリティガイドライン に従う必要がある
  • 作成したアプリのソースコードもライセンスに従い公開する必要がある

ライセンス

  • ソースコードの利用者は自身のコードも公開する義務がある(コピーレフト系ライセンスと推定)

インストール・クイックスタート

ソースコードの取得

git clone --recursive -j8 https://github.com/TelegramMessenger/Telegram-iOS.git

前提条件

設定の調整

  1. ランダムな識別子を生成:
openssl rand -hex 8
  1. Xcodeで新規プロジェクトを作成し、Product NameにTelegram、Organization Identifierにorg.{生成した識別子}を設定
  2. キーチェーンアクセスから開発証明書のTeam IDを確認
  3. build-system/template_minimal_development_configuration.json を編集

Xcodeプロジェクトの生成

python3 build-system/Make/Make.py \
    --cacheDir="$HOME/telegram-bazel-cache" \
    generateProject \
    --configurationPath=build-system/template_minimal_development_configuration.json \
    --xcodeManagedCodesigning

参考になる外部の関連記事

関連リポジトリ