docs: restructure readme into main presentation and build guide

This commit is contained in:
ichmagmaus 812
2026-01-19 12:28:21 +01:00
parent dbe39aedc7
commit 9b41c14ef2
3 changed files with 135 additions and 95 deletions
+2
View File
@@ -59,6 +59,8 @@ bazel-telegram-ios
bazel-telegram-ios/*
bazel-testlogs
bazel-testlogs/*
bazel-telegram-antidelete
bazel-telegram-antidelete/*
xcodeproj.bazelrc
*/*.swp
*.swp
+82
View File
@@ -0,0 +1,82 @@
# Ghostgram iOS Compilation Guide
> **Important**: Notifications, calls, and some other cloud-dependent features may not be fully implemented in this fork's development builds. For daily use, it is recommended to keep the official Telegram App installed.
## 🛠 Prerequisites
- **macOS**: Latest version recommended.
- **Xcode**: See `versions.json` for the exact required version.
- **Bazel**: Managed via the build system.
- **Python**: 3.x
---
## 🚀 Quick Start
### 1. Obtain Telegram API Credentials
1. Go to [my.telegram.org](https://my.telegram.org).
2. Log in and create a new application to get your `api_id` and `api_hash`.
### 2. Get the Source Code
```bash
git clone --recursive -j8 https://github.com/TelegramMessenger/Telegram-iOS.git
# Note: In this fork, ensure you have all submodules
```
### 3. Setup Xcode Configuration
1. Generate a random 8-character hex identifier:
```bash
openssl rand -hex 8
```
2. Create a dummy Xcode project named `Telegram` with organization identifier `org.<YOUR_HEX_ID>`.
3. Locate your **Team ID** in Keychain Access (Organizational Unit of your Apple Development certificate).
4. Edit `build-system/template_minimal_development_configuration.json` with your credentials and Team ID.
### 4. Generate Xcode Project
```bash
python3 build-system/Make/Make.py \
--cacheDir="$HOME/telegram-bazel-cache" \
generateProject \
--configurationPath=build-system/template_minimal_development_configuration.json \
--xcodeManagedCodesigning
```
---
## 🏗 Advanced Build Options
### Building an IPA (Release)
1. Configure `build-system/appstore-configuration.json`.
2. Ensure you have the correct provisioning profiles.
3. Run:
```bash
python3 build-system/Make/Make.py \
--cacheDir="$HOME/telegram-bazel-cache" \
build \
--configurationPath=your_config.json \
--codesigningInformationPath=your_profiles_dir \
--buildNumber=100001 \
--configuration=release_arm64
```
### Simulator Build (No Codesigning)
Add `--disableProvisioningProfiles` to the generation command to build for the simulator without needing a development certificate.
---
## ❓ FAQ & Troubleshooting
### "build-request.json not updated yet"
If Xcode hangs with this message, cancel the build and restart it.
### "no such package @rules_xcodeproj_generated"
This usually happens after a system restart or clearing Bazel cache. Re-run the `generateProject` command.
### Overriding Xcode Version
If you have a newer/older Xcode than what is specified in `versions.json`, use:
```bash
python3 build-system/Make/Make.py --overrideXcodeVersion generateProject ...
```
---
Report all issues/bugs on Telegram [@ceopoco](https://t.me/ceopoco)
+51 -95
View File
@@ -1,116 +1,72 @@
# Ghostgram iOS Source Code Compilation Guide
# 👻 Ghostgram iOS
We welcome all developers to use our API and source code to create applications on our platform.
There are several things we require from **all developers** for the moment.
<p align="center">
<img src="https://raw.githubusercontent.com/TelegramMessenger/Telegram-iOS/master/Telegram/Telegram-iOS/Images.xcassets/AppIcon.appiconset/Icon-60%403v.png" width="128" height="128" alt="Ghostgram Logo">
</p>
# Creating your Telegram Application
<p align="center">
<b>The ultimate Telegram fork for privacy, control, and freedom.</b>
</p>
1. [**Obtain your own api_id**](https://core.telegram.org/api/obtaining_api_id) for your application.
2. Please **do not** use the name Telegram for your app — or make sure your users understand that it is unofficial.
3. Kindly **do not** use our standard logo (white paper plane in a blue circle) as your app's logo.
3. Please study our [**security guidelines**](https://core.telegram.org/mtproto/security_guidelines) and take good care of your users' data and privacy.
4. Please remember to publish **your** code too in order to comply with the licences.
<p align="center">
<a href="https://t.me/ceopoco"><img src="https://img.shields.io/badge/Telegram-Support-blue.svg?logo=telegram" alt="Telegram Support"></a>
<img src="https://img.shields.io/badge/Platform-iOS-lightgrey.svg" alt="Platform iOS">
<img src="https://img.shields.io/badge/License-GPLv2-green.svg" alt="License GPLv2">
</p>
# Quick Compilation Guide
---
## Get the Code
## 🌟 Key Features
```
git clone --recursive -j8 https://github.com/TelegramMessenger/Telegram-iOS.git
```
### 🛡️ Anti-Delete System
*Never miss a message again. Ghostgram keeps what others try to hide.*
- **Local Archive:** Automatically saves messages deleted by the sender for everyone.
- **Media Preservation:** Photos and videos from deleted messages are archived locally.
- **Edit History:** View original content of edited messages.
- **Visual Indicators:** Deleted messages are clearly marked with a 🗑️ icon.
## Setup Xcode
### 👤 Ghost Mode
- **Invisible Reading:** Read messages without sending "Read" receipts (single checkmark).
- **Stealth Stories:** View stories anonymously without appearing in the viewer list.
- **Hidden Input:** Hide "Typing..." status from your contacts.
- **Online Privacy:** Hide your online status or use **Force Offline** to always appear as "last seen recently".
Install Xcode (directly from https://developer.apple.com/download/applications or using the App Store).
### 🎙️ Advanced Audio Tools
- **Free Transcription:** Get text from voice and video messages without Telegram Premium (On-device processing).
- **Voice Morpher:** Real-time voice changer for your outgoing audio messages.
## Adjust Configuration
### 🔓 Bypass Limits
- **Copy Protection Bypass:** Forward or save content from channels that have restricted it.
- **Infinite View-Once:** View-once media stays available as long as you need.
- **Secret Screenshots:** Take screenshots in secret chats without notification.
1. Generate a random identifier:
```
openssl rand -hex 8
```
2. Create a new Xcode project. Use `Telegram` as the Product Name. Use `org.{identifier from step 1}` as the Organization Identifier.
3. Open `Keychain Access` and navigate to `Certificates`. Locate `Apple Development: your@email.address (XXXXXXXXXX)` and double tap the certificate. Under `Details`, locate `Organizational Unit`. This is the Team ID.
4. Edit `build-system/template_minimal_development_configuration.json`. Use data from the previous steps.
### 🛠️ More Features
- **Device Spoofing:** Change how your device appears to others.
- **Ad Blocker:** Say goodbye to sponsored messages in channels.
- **Always Online:** Keep your status active even when the app is in the background.
## Generate an Xcode project
---
```
python3 build-system/Make/Make.py \
--cacheDir="$HOME/telegram-bazel-cache" \
generateProject \
--configurationPath=build-system/template_minimal_development_configuration.json \
--xcodeManagedCodesigning
```
## 🛠 Installation & Building
# Advanced Compilation Guide
Ghostgram is a developer-centric fork. To build it from source, follow our detailed guide:
## Xcode
📖 **[Build & Compilation Guide](BUILD.md)**
1. Copy and edit `build-system/appstore-configuration.json`.
2. Copy `build-system/fake-codesigning`. Create and download provisioning profiles, using the `profiles` folder as a reference for the entitlements.
3. Generate an Xcode project:
```
python3 build-system/Make/Make.py \
--cacheDir="$HOME/telegram-bazel-cache" \
generateProject \
--configurationPath=configuration_from_step_1.json \
--codesigningInformationPath=directory_from_step_2
```
---
## IPA
## ⚠️ Disclaimer & Legal
1. Repeat the steps from the previous section. Use distribution provisioning profiles.
2. Run:
```
python3 build-system/Make/Make.py \
--cacheDir="$HOME/telegram-bazel-cache" \
build \
--configurationPath=...see previous section... \
--codesigningInformationPath=...see previous section... \
--buildNumber=100001 \
--configuration=release_arm64
```
> **Educational Use Only:** This is a modified version of the Telegram client. Use it at your own risk. The developer is not responsible for any account bans or data loss.
# FAQ
- **Unofficial:** This project is not affiliated with, endorsed by, or in any way officially connected with Telegram Messenger Inc.
- **Terms of Service:** Using third-party clients may violate Telegram's ToS.
- **License:** Based on [Telegram-iOS](https://github.com/TelegramMessenger/Telegram-iOS), licensed under **GPLv2**.
## Xcode is stuck at "build-request.json not updated yet"
---
Occasionally, you might observe the following message in your build log:
```
"/Users/xxx/Library/Developer/Xcode/DerivedData/Telegram-xxx/Build/Intermediates.noindex/XCBuildData/xxx.xcbuilddata/build-request.json" not updated yet, waiting...
```
### 👨‍💻 Support & Community
Report issues or join the discussion:
- **Telegram:** [@ceopoco](https://t.me/ceopoco)
Should this occur, simply cancel the ongoing build and initiate a new one.
## Telegram_xcodeproj: no such package
Following a system restart, the auto-generated Xcode project might encounter a build failure accompanied by this error:
```
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.
```
If you encounter this issue, re-run the project generation steps in the README.
# Tips
## Codesigning is not required for simulator-only builds
Add `--disableProvisioningProfiles`:
```
python3 build-system/Make/Make.py \
--cacheDir="$HOME/telegram-bazel-cache" \
generateProject \
--configurationPath=path-to-configuration.json \
--codesigningInformationPath=path-to-provisioning-data \
--disableProvisioningProfiles
```
## Versions
Each release is built using a specific Xcode version (see `versions.json`). The helper script checks the versions of the installed software and reports an error if they don't match the ones specified in `versions.json`. It is possible to bypass these checks:
```
python3 build-system/Make/Make.py --overrideXcodeVersion build ... # Don't check the version of Xcode
```
**Made with 🖤 for the community.**