| Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung | |
| swiftgram [2024/06/19 22:06] – thepain | swiftgram [2024/06/19 22:11] (aktuell) – thepain |
|---|
| h1. Swiftgram | ====== Swiftgram ====== Supercharged Telegram fork for iOS [[https://apps.apple.com/app/apple-store/id6471879502?pt=126511626&ct=gh&mt=8|]] * Download: [[https://apps.apple.com/app/apple-store/id6471879502?pt=126511626&ct=gh&mt=8|App Store]] * Telegram channel: https://t.me/swiftgram * Telegram chat: https://t.me/swiftgramchat * TestFlight beta, local chats, translations and other [[https://t.me/s/SwiftgramLinks|@SwiftgramLinks]] Swiftgram's compilation steps are the same as for the official app. Below you'll find a complete compilation guide based on the official app. ====== 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 ====== - [[https://core.telegram.org/api/obtaining_api_id|**Obtain your own api_id**]] for your application. - Please **do not** use the name Telegram for your app — or make sure your users understand that it is unofficial. - Kindly **do not** use our standard logo (white paper plane in a blue circle) as your app's logo. - Please study our [[https://core.telegram.org/mtproto/security_guidelines|**security guidelines**]] and take good care of your users' data and privacy. - 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/Swiftgram/Telegram-iOS.git ===== Setup Xcode ===== Install Xcode (directly from https://developer.apple.com/download/applications or using the App Store). ===== Adjust Configuration ===== - Generate a random identifier: openssl rand -hex 8 |
| Supercharged Telegram fork for iOS | Create a new Xcode project. Use ''%%Swiftgram%%'' as the Product Name. Use ''%%org.{identifier from step 1}%%'' as the Organization Identifier. |
| [<img src="https://developer.apple.com/assets/elements/badges/download-on-the-app-store.svg" height="50">|https://apps.apple.com/app/apple-store/id6471879502?pt=126511626&ct=gh&mt=8] | 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. |
| * Download: [App Store|https://apps.apple.com/app/apple-store/id6471879502?pt=126511626&ct=gh&mt=8] | Edit ''%%build-system/template_minimal_development_configuration.json%%''. Use data from the previous steps. |
| * Telegram channel: [https://t.me/swiftgram|https://t.me/swiftgram] | ===== 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 ===== - Copy and edit ''%%build-system/appstore-configuration.json%%''. - Copy ''%%build-system/fake-codesigning%%''. Create and download provisioning profiles, using the ''%%profiles%%'' folder as a reference for the entitlements. - 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 ===== - Repeat the steps from the previous section. Use distribution provisioning profiles. - 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 ====== FAQ ====== ===== 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... 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 |
| * Telegram chat: [https://t.me/swiftgramchat|https://t.me/swiftgramchat] | |
| * TestFlight beta, local chats, translations and other [@SwiftgramLinks|https://t.me/s/SwiftgramLinks] | |
| | |
| Swiftgram's compilation steps are the same as for the official app. Below you'll find a complete compilation guide based on the official app. | |
| h1. 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. | |
| h1. Creating your Telegram Application | |
| # [*Obtain your own api_id*|https://core.telegram.org/api/obtaining_api_id] for your application. | |
| # Please *do not* use the name Telegram for your app — or make sure your users understand that it is unofficial. | |
| # Kindly *do not* use our standard logo (white paper plane in a blue circle) as your app's logo. | |
| # Please study our [*security guidelines*|https://core.telegram.org/mtproto/security_guidelines] and take good care of your users' data and privacy. | |
| # Please remember to publish *your* code too in order to comply with the licences. | |
| | |
| h1. Quick Compilation Guide | |
| h2. Get the Code | |
| {code:language=undefined|linenumbers=true|collapse=false} | |
| git clone --recursive -j8 https://github.com/Swiftgram/Telegram-iOS.git | |
| {code} | |
| h2. Setup Xcode | |
| Install Xcode (directly from [https://developer.apple.com/download/applications|https://developer.apple.com/download/applications] or using the App Store). | |
| h2. Adjust Configuration | |
| # Generate a random identifier:{code:language=undefined|linenumbers=true|collapse=false} | |
| # openssl rand -hex 8 | |
| # {code} | |
| # | |
| # Create a new Xcode project. Use {{Swiftgram}} as the Product Name. Use {{org.\{identifier from step 1\}}} as the Organization Identifier. | |
| # 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. | |
| # Edit {{build-system/template_minimal_development_configuration.json}} . Use data from the previous steps. | |
| | |
| h2. Generate an Xcode project | |
| {code:language=undefined|linenumbers=true|collapse=false} | |
| python3 build-system/Make/Make.py \ | |
| --cacheDir="$HOME/telegram-bazel-cache" \ | |
| generateProject \ | |
| --configurationPath=build-system/template_minimal_development_configuration.json \ | |
| --xcodeManagedCodesigning | |
| {code} | |
| h1. Advanced Compilation Guide | |
| h2. Xcode | |
| # Copy and edit {{build-system/appstore-configuration.json}} . | |
| # Copy {{build-system/fake-codesigning}} . Create and download provisioning profiles, using the {{profiles}} folder as a reference for the entitlements. | |
| # Generate an Xcode project:{code:language=undefined|linenumbers=true|collapse=false} | |
| # python3 build-system/Make/Make.py \ | |
| # --cacheDir="$HOME/telegram-bazel-cache" \ | |
| # generateProject \ | |
| # --configurationPath=configuration_from_step_1.json \ | |
| # --codesigningInformationPath=directory_from_step_2 | |
| # {code} | |
| | |
| h2. IPA | |
| # Repeat the steps from the previous section. Use distribution provisioning profiles. | |
| # Run:{code:language=undefined|linenumbers=true|collapse=false} | |
| # 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 | |
| # {code} | |
| | |
| h1. FAQ | |
| h2. Xcode is stuck at "build-request.json not updated yet" | |
| Occasionally, you might observe the following message in your build log: | |
| {code:language=undefined|linenumbers=true|collapse=false} | |
| "/Users/xxx/Library/Developer/Xcode/DerivedData/Telegram-xxx/Build/Intermediates.noindex/XCBuildData/xxx.xcbuilddata/build-request.json" not updated yet, waiting... | |
| {code} | |
| Should this occur, simply cancel the ongoing build and initiate a new one. | |
| h2. Telegram_xcodeproj: no such package | |
| Following a system restart, the auto-generated Xcode project might encounter a build failure accompanied by this error: | |
| {code:language=undefined|linenumbers=true|collapse=false} | |
| 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. | |
| {code} | |
| If you encounter this issue, re-run the project generation steps in the README. | |
| h1. Tips | |
| h2. Codesigning is not required for simulator-only builds | |
| Add {{--disableProvisioningProfiles}} : | |
| {code:language=undefined|linenumbers=true|collapse=false} | |
| python3 build-system/Make/Make.py \ | |
| --cacheDir="$HOME/telegram-bazel-cache" \ | |
| generateProject \ | |
| --configurationPath=path-to-configuration.json \ | |
| --codesigningInformationPath=path-to-provisioning-data \ | |
| --disableProvisioningProfiles | |
| {code} | |
| h2. 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: | |
| {code:language=undefined|linenumbers=true|collapse=false} | |
| python3 build-system/Make/Make.py --overrideXcodeVersion build ... # Don't check the version of Xcode | |
| {code} | |