mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-15 21:45:19 +00:00
96 lines
3.4 KiB
Markdown
96 lines
3.4 KiB
Markdown
# Telegram iOS Source Code Compilation Guide
|
|
|
|
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.
|
|
|
|
# Creating your Telegram Application
|
|
|
|
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.
|
|
|
|
# Quick Compilation Guide
|
|
|
|
## Get the Code
|
|
|
|
```
|
|
git clone --recursive -j8 https://github.com/TelegramMessenger/Telegram-iOS.git
|
|
```
|
|
|
|
## Setup Xcode
|
|
|
|
Install Xcode (directly from https://developer.apple.com/download/applications or using the App Store).
|
|
|
|
## Adjust Configuration
|
|
|
|
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.
|
|
|
|
## 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
|
|
```
|
|
|
|
# Advanced Compilation Guide
|
|
|
|
## Xcode
|
|
|
|
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
|
|
|
|
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
|
|
```
|
|
|
|
## 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
|
|
```
|