From 9b41c14ef27a088ebd11a5824d33ff4f339b6763 Mon Sep 17 00:00:00 2001 From: ichmagmaus 812 Date: Mon, 19 Jan 2026 12:28:21 +0100 Subject: [PATCH] docs: restructure readme into main presentation and build guide --- .gitignore | 2 + BUILD.md | 82 ++++++++++++++++++++++++++++++ README.md | 146 +++++++++++++++++++---------------------------------- 3 files changed, 135 insertions(+), 95 deletions(-) create mode 100644 BUILD.md diff --git a/.gitignore b/.gitignore index 229f5e02..230ee773 100644 --- a/.gitignore +++ b/.gitignore @@ -59,6 +59,8 @@ bazel-telegram-ios bazel-telegram-ios/* bazel-testlogs bazel-testlogs/* +bazel-telegram-antidelete +bazel-telegram-antidelete/* xcodeproj.bazelrc */*.swp *.swp diff --git a/BUILD.md b/BUILD.md new file mode 100644 index 00000000..427bef4e --- /dev/null +++ b/BUILD.md @@ -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.`. +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) diff --git a/README.md b/README.md index 71ac6a2f..00aa9996 100644 --- a/README.md +++ b/README.md @@ -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. +

+ Ghostgram Logo +

-# Creating your Telegram Application +

+ The ultimate Telegram fork for privacy, control, and freedom. +

-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. +

+ Telegram Support + Platform iOS + License GPLv2 +

-# 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.** \ No newline at end of file