chore: prepare wintergram 1.1 release
|
|
@ -1,2 +0,0 @@
|
||||||
# Add directories or file patterns to ignore during indexing (e.g. foo/ or *.csv)
|
|
||||||
spm-files
|
|
||||||
130
.gitignore
vendored
|
|
@ -1,8 +1,33 @@
|
||||||
fastlane/README.md
|
# WinterGram — files that should never be committed
|
||||||
fastlane/report.xml
|
|
||||||
fastlane/test_output/*
|
# -----------------------------------------------------------------------------
|
||||||
fastlane/fastlanematch
|
# Build outputs and caches
|
||||||
build/*
|
# -----------------------------------------------------------------------------
|
||||||
|
build/
|
||||||
|
build-input/
|
||||||
|
bazel-bin
|
||||||
|
bazel-bin/*
|
||||||
|
bazel-genfiles
|
||||||
|
bazel-genfiles/*
|
||||||
|
bazel-out
|
||||||
|
bazel-out/*
|
||||||
|
bazel-testlogs
|
||||||
|
bazel-testlogs/*
|
||||||
|
bazel-telegram-ios
|
||||||
|
bazel-telegram-ios/*
|
||||||
|
bazel-WinterGram
|
||||||
|
bazel-WinterGram/*
|
||||||
|
buck-out/*
|
||||||
|
.buckd/*
|
||||||
|
DerivedData
|
||||||
|
*.hmap
|
||||||
|
*.dSYM
|
||||||
|
*.dSYM.zip
|
||||||
|
*.ipa
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Xcode / IDE user state
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
*.pbxuser
|
*.pbxuser
|
||||||
!default.pbxuser
|
!default.pbxuser
|
||||||
*.mode1v3
|
*.mode1v3
|
||||||
|
|
@ -15,28 +40,52 @@ xcuserdata
|
||||||
*.xccheckout
|
*.xccheckout
|
||||||
*.xcscmblueprint
|
*.xcscmblueprint
|
||||||
*.moved-aside
|
*.moved-aside
|
||||||
DerivedData
|
|
||||||
*.hmap
|
|
||||||
*.ipa
|
|
||||||
*.xcuserstate
|
*.xcuserstate
|
||||||
.DS_Store
|
|
||||||
*.dSYM
|
|
||||||
*.dSYM.zip
|
|
||||||
*.ipa
|
|
||||||
*/xcuserdata/*
|
*/xcuserdata/*
|
||||||
buck-out/*
|
|
||||||
.buckd/*
|
|
||||||
tools/buck
|
|
||||||
tools/bazel
|
|
||||||
AppBinary.xcworkspace/*
|
|
||||||
Project.xcodeproj/*
|
|
||||||
Watch/Watch.xcodeproj/*
|
|
||||||
AppBundle.xcworkspace/*
|
|
||||||
*.xcworkspace
|
*.xcworkspace
|
||||||
*.xcodeproj
|
*.xcodeproj
|
||||||
!*_Xcode.xcodeproj
|
!*_Xcode.xcodeproj
|
||||||
.idea
|
.idea
|
||||||
*/.idea/*
|
*/.idea/*
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# WinterGram local configuration
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
build-system/wintergram-development-configuration.json
|
||||||
|
build-system/fake-codesigning-wintergram/
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Editor / AI assistant / local tooling
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
.vscode/
|
||||||
|
.claude/
|
||||||
|
**/.claude/settings.local.json
|
||||||
|
.xcodebuildmcp/
|
||||||
|
tools/buck
|
||||||
|
tools/bazel
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# OS and swap files
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
.DS_Store
|
||||||
|
*.swp
|
||||||
|
*/*.swp
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Python / Node artifacts
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
**/*.pyc
|
||||||
|
*.pyc
|
||||||
|
**/node_modules/
|
||||||
|
tools/sim-watcher/dist/
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Submodule-generated headers and prebuilt binaries
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
submodules/OpusBinding/SharedHeaders/*
|
||||||
|
submodules/FFMpegBinding/SharedHeaders/*
|
||||||
|
submodules/OpenSSLEncryptionProvider/SharedHeaders/*
|
||||||
|
submodules/TelegramCore/FlatSerialization/Sources/*
|
||||||
submodules/MtProtoKit/TON/macOS/lib/libtonlibjson.0.5.dylib
|
submodules/MtProtoKit/TON/macOS/lib/libtonlibjson.0.5.dylib
|
||||||
submodules/MtProtoKit/TON/macOS/lib/libtonlibjson.dylib
|
submodules/MtProtoKit/TON/macOS/lib/libtonlibjson.dylib
|
||||||
submodules/MtProtoKit/TON/macOS/lib/cmake/Tonlib/TonlibConfig.cmake
|
submodules/MtProtoKit/TON/macOS/lib/cmake/Tonlib/TonlibConfig.cmake
|
||||||
|
|
@ -49,37 +98,26 @@ submodules/MtProtoKit/TON/macOS/lib/fift/Lisp.fif
|
||||||
submodules/MtProtoKit/TON/macOS/lib/fift/Lists.fif
|
submodules/MtProtoKit/TON/macOS/lib/fift/Lists.fif
|
||||||
submodules/MtProtoKit/TON/macOS/lib/fift/Stack.fif
|
submodules/MtProtoKit/TON/macOS/lib/fift/Stack.fif
|
||||||
submodules/MtProtoKit/TON/macOS/lib/fift/TonUtil.fif
|
submodules/MtProtoKit/TON/macOS/lib/fift/TonUtil.fif
|
||||||
bazel-bin
|
|
||||||
bazel-bin/*
|
# -----------------------------------------------------------------------------
|
||||||
bazel-genfiles
|
# Bazel / SPM / LSP generated files
|
||||||
bazel-genfiles/*
|
# -----------------------------------------------------------------------------
|
||||||
bazel-out
|
|
||||||
bazel-out/*
|
|
||||||
bazel-telegram-ios
|
|
||||||
bazel-telegram-ios/*
|
|
||||||
bazel-testlogs
|
|
||||||
bazel-testlogs/*
|
|
||||||
xcodeproj.bazelrc
|
xcodeproj.bazelrc
|
||||||
*/*.swp
|
|
||||||
*.swp
|
|
||||||
build-input/*
|
|
||||||
**/*.pyc
|
|
||||||
*.pyc
|
|
||||||
submodules/OpusBinding/SharedHeaders/*
|
|
||||||
submodules/FFMpegBinding/SharedHeaders/*
|
|
||||||
submodules/OpenSSLEncryptionProvider/SharedHeaders/*
|
|
||||||
submodules/TelegramCore/FlatSerialization/Sources/*
|
|
||||||
buildServer.json
|
buildServer.json
|
||||||
.build/**
|
.build/**
|
||||||
Telegram.LSP.json
|
|
||||||
**/.build/**
|
**/.build/**
|
||||||
|
Telegram.LSP.json
|
||||||
spm-files
|
spm-files
|
||||||
xcode-files
|
xcode-files
|
||||||
.bsp/**
|
.bsp/**
|
||||||
.sourcekit-lsp/**
|
.sourcekit-lsp/**
|
||||||
/.claude/
|
|
||||||
**/.claude/settings.local.json
|
# Legacy / tool-specific
|
||||||
**/.vscode/launch.json
|
fastlane/README.md
|
||||||
/buildbox/*
|
fastlane/report.xml
|
||||||
**/node_modules/
|
fastlane/test_output/*
|
||||||
tools/sim-watcher/dist/
|
fastlane/fastlanematch
|
||||||
|
AppBinary.xcworkspace/*
|
||||||
|
Project.xcodeproj/*
|
||||||
|
Watch/Watch.xcodeproj/*
|
||||||
|
AppBundle.xcworkspace/*
|
||||||
|
|
|
||||||
196
.gitlab-ci.yml
|
|
@ -1,196 +0,0 @@
|
||||||
stages:
|
|
||||||
- build
|
|
||||||
- deploy
|
|
||||||
- verifysanity
|
|
||||||
- verify
|
|
||||||
- submit
|
|
||||||
|
|
||||||
variables:
|
|
||||||
LANG: "en_US.UTF-8"
|
|
||||||
LC_ALL: "en_US.UTF-8"
|
|
||||||
GIT_SUBMODULE_STRATEGY: normal
|
|
||||||
|
|
||||||
internal:
|
|
||||||
tags:
|
|
||||||
- ios_internal
|
|
||||||
stage: build
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
except:
|
|
||||||
- tags
|
|
||||||
script:
|
|
||||||
- export PATH=/opt/homebrew/opt/ruby/bin:$PATH
|
|
||||||
- export PATH=`gem environment gemdir`/bin:$PATH
|
|
||||||
- python3 -u build-system/Make/Make.py remote-build --darwinContainers="$DARWIN_CONTAINERS" --darwinContainersHost="$DARWIN_CONTAINERS_HOST" --cacheHost="$TELEGRAM_BAZEL_CACHE_HOST" --configurationPath="build-system/appcenter-configuration.json" --gitCodesigningRepository="$TELEGRAM_GIT_CODESIGNING_REPOSITORY" --gitCodesigningType=adhoc --configuration=release_arm64 --embedWatchApp --watchApiId="$TELEGRAM_WATCHOS_APP_ID" --watchApiHash="$TELEGRAM_WATCHOS_APP_HASH"
|
|
||||||
- python3 -u build-system/Make/DeployBuild.py --configuration="$TELEGRAM_PRIVATE_DATA_PATH/deploy-configurations/internal-configuration.json" --ipa="build/artifacts/Telegram.ipa" --dsyms="build/artifacts/Telegram.DSYMs.zip"
|
|
||||||
- rm -rf build-input/configuration-repository-workdir
|
|
||||||
- rm -rf build-input/configuration-repository
|
|
||||||
- python3 -u build-system/Make/Make.py remote-build --darwinContainers="$DARWIN_CONTAINERS" --darwinContainersHost="$DARWIN_CONTAINERS_HOST" --cacheHost="$TELEGRAM_BAZEL_CACHE_HOST" --configurationPath="$TELEGRAM_PRIVATE_DATA_PATH/build-configurations/enterprise-configuration.json" --gitCodesigningRepository="$TELEGRAM_GIT_CODESIGNING_REPOSITORY" --gitCodesigningType=enterprise --configuration=release_arm64 --embedWatchApp --watchApiId="$TELEGRAM_WATCHOS_APP_ID" --watchApiHash="$TELEGRAM_WATCHOS_APP_HASH"
|
|
||||||
- python3 -u build-system/Make/DeployBuild.py --configuration="$TELEGRAM_PRIVATE_DATA_PATH/deploy-configurations/enterprise-configuration.json" --ipa="build/artifacts/Telegram.ipa" --dsyms="build/artifacts/Telegram.DSYMs.zip"
|
|
||||||
environment:
|
|
||||||
name: internal
|
|
||||||
|
|
||||||
internal_testflight:
|
|
||||||
tags:
|
|
||||||
- ios_internal
|
|
||||||
stage: deploy
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
except:
|
|
||||||
- tags
|
|
||||||
script:
|
|
||||||
- python3 -u build-system/Make/Make.py remote-build --darwinContainers="$DARWIN_CONTAINERS" --darwinContainersHost="$DARWIN_CONTAINERS_HOST" --cacheHost="$TELEGRAM_BAZEL_CACHE_HOST" --configurationPath="build-system/appstore-configuration.json" --gitCodesigningRepository="$TELEGRAM_GIT_CODESIGNING_REPOSITORY" --gitCodesigningType=appstore --configuration=release_arm64 --embedWatchApp --watchApiId="$TELEGRAM_WATCHOS_APP_ID" --watchApiHash="$TELEGRAM_WATCHOS_APP_HASH"
|
|
||||||
- python3 -u build-system/Make/Make.py remote-deploy-testflight --darwinContainers="$DARWIN_CONTAINERS" --darwinContainersHost="$DARWIN_CONTAINERS_HOST" --ipa="build/artifacts/Telegram.ipa" --dsyms="build/artifacts/Telegram.DSYMs.zip"
|
|
||||||
environment:
|
|
||||||
name: testflight_llc
|
|
||||||
artifacts:
|
|
||||||
when: always
|
|
||||||
paths:
|
|
||||||
- build/artifacts
|
|
||||||
expire_in: 1 week
|
|
||||||
|
|
||||||
appstore_development:
|
|
||||||
tags:
|
|
||||||
- ios_internal
|
|
||||||
stage: build
|
|
||||||
only:
|
|
||||||
- appstore-development
|
|
||||||
except:
|
|
||||||
- tags
|
|
||||||
script:
|
|
||||||
- python3 -u build-system/Make/Make.py remote-build --darwinContainers="$DARWIN_CONTAINERS" --darwinContainersHost="$DARWIN_CONTAINERS_HOST" --cacheHost="$TELEGRAM_BAZEL_CACHE_HOST" --configurationPath="$TELEGRAM_PRIVATE_DATA_PATH/build-configurations/enterprise-configuration.json" --gitCodesigningRepository="$TELEGRAM_GIT_CODESIGNING_REPOSITORY" --gitCodesigningType=enterprise --configuration=release_arm64
|
|
||||||
environment:
|
|
||||||
name: appstore-development
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- build/artifacts/Telegram.DSYMs.zip
|
|
||||||
expire_in: 1 week
|
|
||||||
|
|
||||||
experimental_i:
|
|
||||||
tags:
|
|
||||||
- ios_experimental
|
|
||||||
stage: build
|
|
||||||
only:
|
|
||||||
- experimental-3
|
|
||||||
except:
|
|
||||||
- tags
|
|
||||||
script:
|
|
||||||
- export PATH=/opt/homebrew/opt/ruby/bin:$PATH
|
|
||||||
- export PATH=`gem environment gemdir`/bin:$PATH
|
|
||||||
- python3 -u build-system/Make/Make.py remote-build --darwinContainers="$DARWIN_CONTAINERS" --darwinContainersHost="$DARWIN_CONTAINERS_HOST" --cacheHost="$TELEGRAM_BAZEL_CACHE_HOST" --configurationPath="build-system/appcenter-configuration.json" --gitCodesigningRepository="$TELEGRAM_GIT_CODESIGNING_REPOSITORY" --gitCodesigningType=adhoc --configuration=release_arm64
|
|
||||||
- python3 -u build-system/Make/Make.py remote-deploy-testflight --darwinContainers="$DARWIN_CONTAINERS" --darwinContainersHost="$DARWIN_CONTAINERS_HOST" --ipa="build/artifacts/Telegram.ipa" --dsyms="build/artifacts/Telegram.DSYMs.zip"
|
|
||||||
environment:
|
|
||||||
name: experimental
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- build/artifacts/Telegram.DSYMs.zip
|
|
||||||
expire_in: 1 week
|
|
||||||
|
|
||||||
experimental:
|
|
||||||
tags:
|
|
||||||
- ios_internal
|
|
||||||
stage: build
|
|
||||||
only:
|
|
||||||
- experimental-2
|
|
||||||
except:
|
|
||||||
- tags
|
|
||||||
script:
|
|
||||||
- python3 -u build-system/Make/Make.py remote-build --darwinContainers="$DARWIN_CONTAINERS" --darwinContainersHost="$DARWIN_CONTAINERS_HOST" --cacheHost="$TELEGRAM_BAZEL_CACHE_HOST" --configurationPath="$TELEGRAM_PRIVATE_DATA_PATH/build-configurations/enterprise-configuration.json" --gitCodesigningRepository="$TELEGRAM_GIT_CODESIGNING_REPOSITORY" --gitCodesigningType=enterprise --configuration=release_arm64
|
|
||||||
environment:
|
|
||||||
name: experimental-2
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- build/artifacts/Telegram.DSYMs.zip
|
|
||||||
expire_in: 1 week
|
|
||||||
|
|
||||||
beta_testflight:
|
|
||||||
tags:
|
|
||||||
- ios_beta
|
|
||||||
stage: build
|
|
||||||
only:
|
|
||||||
- beta
|
|
||||||
- hotfix
|
|
||||||
except:
|
|
||||||
- tags
|
|
||||||
script:
|
|
||||||
- export PATH=/opt/homebrew/opt/ruby/bin:$PATH
|
|
||||||
- export PATH=`gem environment gemdir`/bin:$PATH
|
|
||||||
- python3 -u build-system/Make/Make.py remote-build --darwinContainers="$DARWIN_CONTAINERS" --darwinContainersHost="$DARWIN_CONTAINERS_HOST" --cacheHost="$TELEGRAM_BAZEL_CACHE_HOST" --configurationPath="build-system/appstore-configuration.json" --gitCodesigningRepository="$TELEGRAM_GIT_CODESIGNING_REPOSITORY" --gitCodesigningType=appstore --configuration=release_arm64 --embedWatchApp --watchApiId="$TELEGRAM_WATCHOS_APP_ID" --watchApiHash="$TELEGRAM_WATCHOS_APP_HASH"
|
|
||||||
environment:
|
|
||||||
name: testflight_llc
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- build/artifacts
|
|
||||||
expire_in: 3 weeks
|
|
||||||
|
|
||||||
deploy_beta_testflight:
|
|
||||||
tags:
|
|
||||||
- ios_beta
|
|
||||||
stage: deploy
|
|
||||||
only:
|
|
||||||
- beta
|
|
||||||
- hotfix
|
|
||||||
except:
|
|
||||||
- tags
|
|
||||||
script:
|
|
||||||
- python3 -u build-system/Make/Make.py remote-deploy-testflight --darwinContainers="$DARWIN_CONTAINERS" --darwinContainersHost="$DARWIN_CONTAINERS_HOST" --ipa="build/artifacts/Telegram.ipa" --dsyms="build/artifacts/Telegram.DSYMs.zip"
|
|
||||||
environment:
|
|
||||||
name: testflight_llc
|
|
||||||
|
|
||||||
verifysanity_beta_testflight:
|
|
||||||
tags:
|
|
||||||
- ios_beta
|
|
||||||
stage: verifysanity
|
|
||||||
only:
|
|
||||||
- beta
|
|
||||||
- hotfix
|
|
||||||
except:
|
|
||||||
- tags
|
|
||||||
script:
|
|
||||||
- rm -rf build/verify-input && mkdir -p build/verify-input && mv build/artifacts/Telegram.ipa build/verify-input/TelegramVerifySource.ipa
|
|
||||||
- python3 -u build-system/Make/Make.py remote-build --darwinContainers="$DARWIN_CONTAINERS" --darwinContainersHost="$DARWIN_CONTAINERS_HOST" --cacheHost="$TELEGRAM_BAZEL_CACHE_HOST" --configurationPath="build-system/appstore-configuration.json" --codesigningInformationPath=build-system/fake-codesigning --configuration=release_arm64
|
|
||||||
- python3 -u build-system/Make/Make.py remote-ipa-diff --darwinContainers="$DARWIN_CONTAINERS" --darwinContainersHost="$DARWIN_CONTAINERS_HOST" --ipa1="build/artifacts/Telegram.ipa" --ipa2="build/verify-input/TelegramVerifySource.ipa"
|
|
||||||
- if [ $? -ne 0 ]; then echo "Verification failed"; mkdir -p build/verifysanity_artifacts; cp build/artifacts/Telegram.ipa build/verifysanity_artifacts/; exit 1; fi
|
|
||||||
environment:
|
|
||||||
name: testflight_llc
|
|
||||||
artifacts:
|
|
||||||
when: on_failure
|
|
||||||
paths:
|
|
||||||
- build/artifacts
|
|
||||||
expire_in: 1 week
|
|
||||||
|
|
||||||
verify_beta_testflight:
|
|
||||||
tags:
|
|
||||||
- ios_beta
|
|
||||||
stage: verify
|
|
||||||
only:
|
|
||||||
- beta
|
|
||||||
- hotfix
|
|
||||||
except:
|
|
||||||
- tags
|
|
||||||
script:
|
|
||||||
- rm -rf build/verify-input && mkdir -p build/verify-input && mv build/artifacts/Telegram.ipa build/verify-input/TelegramVerifySource.ipa
|
|
||||||
- python3 -u build-system/Make/Make.py remote-build --darwinContainers="$DARWIN_CONTAINERS" --darwinContainersHost="$DARWIN_CONTAINERS_HOST" --configurationPath="build-system/appstore-configuration.json" --codesigningInformationPath=build-system/fake-codesigning --configuration=release_arm64
|
|
||||||
- python3 -u build-system/Make/Make.py remote-ipa-diff --darwinContainers="$DARWIN_CONTAINERS" --darwinContainersHost="$DARWIN_CONTAINERS_HOST" --ipa1="build/artifacts/Telegram.ipa" --ipa2="build/verify-input/TelegramVerifySource.ipa"
|
|
||||||
- if [ $? -ne 0 ]; then echo "Verification failed"; mkdir -p build/verify_artifacts; cp build/artifacts/Telegram.ipa build/verify_artifacts/; exit 1; fi
|
|
||||||
environment:
|
|
||||||
name: testflight_llc
|
|
||||||
artifacts:
|
|
||||||
when: on_failure
|
|
||||||
paths:
|
|
||||||
- build/artifacts
|
|
||||||
expire_in: 1 week
|
|
||||||
|
|
||||||
submit_appstore:
|
|
||||||
tags:
|
|
||||||
- deploy
|
|
||||||
only:
|
|
||||||
- beta
|
|
||||||
- hotfix
|
|
||||||
stage: submit
|
|
||||||
needs: []
|
|
||||||
when: manual
|
|
||||||
script:
|
|
||||||
- sh "$TELEGRAM_SUBMIT_BUILD"
|
|
||||||
environment:
|
|
||||||
name: testflight_llc
|
|
||||||
4
.gitmodules
vendored
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
[submodule "submodules/rlottie/rlottie"]
|
[submodule "submodules/rlottie/rlottie"]
|
||||||
path = submodules/rlottie/rlottie
|
path = submodules/rlottie/rlottie
|
||||||
url=../rlottie.git
|
url = https://github.com/TelegramMessenger/rlottie.git
|
||||||
[submodule "build-system/bazel-rules/rules_apple"]
|
[submodule "build-system/bazel-rules/rules_apple"]
|
||||||
path = build-system/bazel-rules/rules_apple
|
path = build-system/bazel-rules/rules_apple
|
||||||
url=https://github.com/ali-fareed/rules_apple.git
|
url=https://github.com/ali-fareed/rules_apple.git
|
||||||
|
|
@ -13,7 +13,7 @@ url=https://github.com/bazelbuild/rules_swift.git
|
||||||
url = https://github.com/bazelbuild/apple_support.git
|
url = https://github.com/bazelbuild/apple_support.git
|
||||||
[submodule "submodules/TgVoipWebrtc/tgcalls"]
|
[submodule "submodules/TgVoipWebrtc/tgcalls"]
|
||||||
path = submodules/TgVoipWebrtc/tgcalls
|
path = submodules/TgVoipWebrtc/tgcalls
|
||||||
url=../tgcalls.git
|
url = https://github.com/TelegramMessenger/tgcalls.git
|
||||||
[submodule "third-party/libvpx/libvpx"]
|
[submodule "third-party/libvpx/libvpx"]
|
||||||
path = third-party/libvpx/libvpx
|
path = third-party/libvpx/libvpx
|
||||||
url = https://github.com/webmproject/libvpx.git
|
url = https://github.com/webmproject/libvpx.git
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,9 @@ This file provides guidance to AI assistants when working with code in this repo
|
||||||
|
|
||||||
The app is built using Bazel via the `Make.py` wrapper. There is no selective per-module build — the only supported invocation builds the full `Telegram/Telegram` target.
|
The app is built using Bazel via the `Make.py` wrapper. There is no selective per-module build — the only supported invocation builds the full `Telegram/Telegram` target.
|
||||||
|
|
||||||
**Command:**
|
**Convenience wrapper:** `scripts/build-wintergram.sh` wraps the Make.py invocations for the WinterGram dev config and emits WinterGram-named IPAs in `build/`: `sim` (simulator), `sideload` / `livecontainer` (device), `all`, plus `--install`/`--run` (simulator-only: build + install into the booted Simulator), `--clean`, `--open-build-dir`. It sources `~/.zshrc` itself. App icons are regenerated from `branding/wnt-app-icon-*.png` by `scripts/generate-app-icons.sh`.
|
||||||
|
|
||||||
|
**Raw command (canonical):**
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
python3 build-system/Make/Make.py --overrideXcodeVersion \
|
python3 build-system/Make/Make.py --overrideXcodeVersion \
|
||||||
|
|
|
||||||
170
README.md
|
|
@ -1,122 +1,102 @@
|
||||||
<h1 align="center">WinterGram</h1>
|
# WinterGram
|
||||||
|
|
||||||
<h4 align="center">WinterGram (Wnt) is a feature-rich, privacy-focused Telegram client for iPhone — a native iOS port of the AyuGram experience, built on top of Telegram-iOS.</h4>
|
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="LICENSE"><img src="https://img.shields.io/badge/License-GPLv2-green?style=for-the-badge&logo=gnu&logoColor=FFFFFF" alt="License"></a>
|
<img src="branding/icon-app-light.png" width="112" height="112" alt="WinterGram white icon">
|
||||||
<img src="https://img.shields.io/badge/Platform-iOS%2015%2B-black?style=for-the-badge&logo=apple&logoColor=white" alt="Platform">
|
|
||||||
<img src="https://img.shields.io/badge/Language-Swift-orange?style=for-the-badge&logo=swift&logoColor=white" alt="Swift">
|
|
||||||
<img src="https://img.shields.io/badge/Build-Bazel-43A047?style=for-the-badge&logo=bazel&logoColor=white" alt="Bazel">
|
|
||||||
<img src="https://img.shields.io/github/stars/reekeer/WinterGram?style=for-the-badge&logo=github&logoColor=white" alt="Stars">
|
|
||||||
<img src="https://img.shields.io/github/last-commit/reekeer/WinterGram?style=for-the-badge&logo=github&logoColor=white" alt="Last Commit">
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
---
|
<p align="center">
|
||||||
|
<strong>Privacy-focused Telegram client for iOS</strong>
|
||||||
|
</p>
|
||||||
|
|
||||||
**WinterGram** brings the most-loved AyuGram features to iOS with a clean, Material-inspired interface, a configurable **Liquid Glass** appearance, and a single dedicated settings tab where everything lives. It speaks both the standard `tg://` deep links and its own `wnt://` scheme.
|
<p align="center">
|
||||||
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-GPLv2-green?style=flat-square" alt="License"></a>
|
||||||
|
<img src="https://img.shields.io/badge/Version-1.1-blue?style=flat-square" alt="Version 1.1">
|
||||||
|
<img src="https://img.shields.io/badge/Platform-iOS%2015%2B-black?style=flat-square" alt="Platform">
|
||||||
|
<img src="https://img.shields.io/badge/Language-Swift-orange?style=flat-square" alt="Swift">
|
||||||
|
<img src="https://img.shields.io/badge/Build-Bazel-43A047?style=flat-square" alt="Bazel">
|
||||||
|
</p>
|
||||||
|
|
||||||
|
WinterGram (Wnt) is an independent iOS client for Telegram. It keeps the familiar Telegram experience and adds a dedicated **WinterGram** settings tab where privacy tools, history recovery, appearance controls, and other enhancements live in one place.
|
||||||
|
|
||||||
|
The app speaks both `tg://` deep links and its own `wnt://` scheme.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ✨ Features
|
## Download
|
||||||
|
|
||||||
### 👻 Privacy & Ghost Mode
|
Prebuilt unsigned IPAs are published on the [Releases](../../releases) page. Install with [AltStore](https://altstore.io), [SideStore](https://sidestore.io), or another sideloading tool.
|
||||||
- **Ghost Mode**: don't send read receipts, typing/upload status, or online presence — toggle it all at once.
|
|
||||||
- **Send without sound**: never / only in Ghost Mode / always.
|
|
||||||
- **Story ghost**: view stories without marking them seen, with an optional confirmation prompt.
|
|
||||||
- **Mark read after action**, **go offline after going online**, and per-toggle locks.
|
|
||||||
|
|
||||||
### 🗂 History & Recovery
|
WinterGram is not distributed on the App Store. Free Apple IDs must re-sign the app every 7 days; AltStore and SideStore can automate this.
|
||||||
- **Save deleted messages**: keep messages locally even after the other side deletes them.
|
|
||||||
- **Edit history**: store every revision of a message and browse it.
|
|
||||||
- **Semi-transparent deleted markers** and a customizable deleted / edited mark.
|
|
||||||
|
|
||||||
### 🧊 Hidden Archive ("AАrchive")
|
|
||||||
- Stash chats into a **separate, settings-only archive** — no notifications, no badge.
|
|
||||||
- Optional **auto-mark-read** for everything sent to the stash.
|
|
||||||
|
|
||||||
### 🛡️ Anti-Features
|
|
||||||
- **Disable ads** (sponsored messages).
|
|
||||||
- **Local Telegram Premium** — unlock Premium-gated UI locally.
|
|
||||||
- **Shadow ban** — silently hide a user's messages from your view.
|
|
||||||
- **Hide / disable stories**, **hide Premium statuses**, **disable open-link warning**.
|
|
||||||
|
|
||||||
### 💬 Chat Conveniences
|
|
||||||
- **Sticker / GIF / voice send confirmations**.
|
|
||||||
- **Message seconds** in timestamps and **peer ID** display (Telegram or Bot API form).
|
|
||||||
- **Message translation** with a selectable provider (Telegram / Google / Yandex / system).
|
|
||||||
- **WebView platform spoofing** (auto / iOS / Android / macOS / desktop) and taller WebViews.
|
|
||||||
|
|
||||||
### 🎨 Appearance & Customization
|
|
||||||
- **Liquid Glass** — frosted, translucent surfaces across the chat list, navigation, and tab bar, with **on/off toggle**, adjustable **transparency**, **blur radius**, **tint**, and per-surface application.
|
|
||||||
- **Material Design** switches and controls.
|
|
||||||
- **Avatar corner radius** (round → squircle → square) and **message bubble radius**, with optional single-corner mode.
|
|
||||||
- **Custom fonts** (UI + monospace).
|
|
||||||
- **App icons**, including the bundled WinterGram dark icon, plus **AyuGram / exteraGram icon-pack compatibility**.
|
|
||||||
- **Custom emoji** support, with an option to show only your added emoji & stickers.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🔗 Deep Links
|
## Features
|
||||||
|
|
||||||
WinterGram registers and resolves two URL schemes — anything that works with `tg://` works with `wnt://`:
|
WinterGram adds Ghost Mode, saved deleted messages, edit history, a hidden archive, local Premium UI, ad removal, Liquid Glass appearance, spoofing, chat conveniences, and more.
|
||||||
|
|
||||||
|
A complete, structured feature list is in [`docs/FEATURES.md`](docs/FEATURES.md).
|
||||||
|
|
||||||
|
Developer implementation notes: [`docs/wintergram-features.md`](docs/wintergram-features.md).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quick Start (build from source)
|
||||||
|
|
||||||
|
**Requirements:** macOS, Xcode, Python 3, ~60 GB free disk space.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
git clone --recursive https://github.com/reekeer/WinterGram.git
|
||||||
|
cd WinterGram
|
||||||
|
cp build-system/wintergram-development-configuration.example.json \
|
||||||
|
build-system/wintergram-development-configuration.json
|
||||||
|
# Edit the JSON: api_id, api_hash, bundle_id, team_id
|
||||||
|
./scripts/build-wintergram.sh sim
|
||||||
|
```
|
||||||
|
|
||||||
|
The simulator IPA lands in `build/WinterGram-Simulator.ipa`. Build straight into a running Simulator with `./scripts/build-wintergram.sh --install` (add `--run` to launch it). Full instructions (device builds, signing, AltStore): [`docs/wintergram-setup.md`](docs/wintergram-setup.md).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
All WinterGram options are stored in `WinterGramSettings` and exposed through the WinterGram tab in Settings. English UI strings ship in `en.lproj`; Russian translations are seeded in `submodules/TelegramPresentationData/Sources/WinterGramStrings.swift`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Project Layout
|
||||||
|
|
||||||
|
```
|
||||||
|
WinterGram/
|
||||||
|
├── Telegram/ App entry, extensions, icons, xcconfig
|
||||||
|
├── submodules/ Feature libraries (Swift / Obj-C)
|
||||||
|
├── branding/ Source art: app-icon PNGs (wnt-app-icon-*.png) + badge/snowflake shapes
|
||||||
|
├── docs/ Setup guide, feature list, architecture notes
|
||||||
|
├── build-system/ Bazel wrapper (Make.py) and configs
|
||||||
|
└── scripts/ Build + tooling
|
||||||
|
├── build-wintergram.sh Convenience build script (sim / sideload / livecontainer)
|
||||||
|
└── generate-app-icons.sh Regenerate every app icon from branding/wnt-app-icon-*.png
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Deep Links
|
||||||
|
|
||||||
|
Anything that works with `tg://` also works with `wnt://`:
|
||||||
|
|
||||||
```
|
```
|
||||||
tg://resolve?domain=durov
|
tg://resolve?domain=durov
|
||||||
wnt://resolve?domain=durov
|
wnt://resolve?domain=durov
|
||||||
|
wnt://wintergram/ghost
|
||||||
```
|
```
|
||||||
|
|
||||||
`wnt://` links are normalized to the standard resolver at the entry point, so they route through exactly the same handling as native Telegram links.
|
`wnt://` URLs are normalized to `tg://` at the app entry point.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🚀 Build
|
## Contributing
|
||||||
|
|
||||||
WinterGram builds with the standard Telegram-iOS toolchain (Bazel via the `Make.py` wrapper) on **macOS with Xcode**.
|
Maintainers: [**IMDelewer**](https://github.com/IMDelewer), [**salenyo**](https://github.com/salenyo) under the [reekeer](https://github.com/reekeer) organization. See [`MAINTAINERS.md`](MAINTAINERS.md).
|
||||||
|
|
||||||
```sh
|
|
||||||
python3 build-system/Make/Make.py --overrideXcodeVersion \
|
|
||||||
--cacheDir ~/telegram-bazel-cache \
|
|
||||||
build \
|
|
||||||
--configurationPath build-system/appstore-configuration.json \
|
|
||||||
--gitCodesigningRepository <your-codesigning-repo> \
|
|
||||||
--gitCodesigningType development --gitCodesigningUseCurrent \
|
|
||||||
--buildNumber=1 --configuration=debug_sim_arm64
|
|
||||||
```
|
|
||||||
|
|
||||||
See [`docs/wintergram-features.md`](docs/wintergram-features.md) for the feature → implementation map and the project's architecture notes.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ⚙️ Configuration
|
<p align="center"><sub><a href="LICENSE">GPLv2</a> © reekeer</sub></p>
|
||||||
|
|
||||||
All WinterGram options live in a single settings store (`WinterGramSettings`), persisted with the app's shared-data system and exposed through reactive signals. There is one dedicated **WinterGram** tab in Settings — no scattered toggles.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🗂 Structure
|
|
||||||
|
|
||||||
```
|
|
||||||
WinterGram/
|
|
||||||
├── Telegram/ ← App entry points and extensions
|
|
||||||
├── submodules/ ← Feature libraries (Swift / Obj-C)
|
|
||||||
│ └── TelegramUIPreferences/
|
|
||||||
│ └── Sources/WinterGramSettings.swift ← all WinterGram options
|
|
||||||
├── branding/ ← WinterGram icons and brand assets
|
|
||||||
├── docs/ ← Architecture and feature documentation
|
|
||||||
├── build-system/ ← Bazel build wrapper (Make.py)
|
|
||||||
└── README.md
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🤝 Contributing
|
|
||||||
|
|
||||||
Contributions are welcome. WinterGram is maintained by [**IMDelewer**](https://github.com/IMDelewer) and [**salenyo**](https://github.com/salenyo) under the [reekeer](https://github.com/reekeer) organization. See [`MAINTAINERS.md`](MAINTAINERS.md).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
Built on Telegram-iOS · inspired by AyuGram
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p align="center"><sub><a href="LICENSE">GPLv2</a> © reekeer</sub></p>
|
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
c27f02cf6e413fdc
|
|
||||||
106
Telegram/BUILD
|
|
@ -317,21 +317,25 @@ filegroup(
|
||||||
)
|
)
|
||||||
|
|
||||||
alternate_icon_folders = [
|
alternate_icon_folders = [
|
||||||
"BlackIcon",
|
|
||||||
"BlackClassicIcon",
|
"BlackClassicIcon",
|
||||||
"BlackFilledIcon",
|
"BlackFilledIcon",
|
||||||
"BlueIcon",
|
"BlackIcon",
|
||||||
"BlueClassicIcon",
|
"BlueClassicIcon",
|
||||||
"BlueFilledIcon",
|
"BlueFilledIcon",
|
||||||
"WhiteFilledIcon",
|
"BlueIcon",
|
||||||
"New1",
|
"New1",
|
||||||
"New2",
|
"New2",
|
||||||
"Premium",
|
"Premium",
|
||||||
"PremiumBlack",
|
"PremiumBlack",
|
||||||
"PremiumTurbo",
|
"PremiumTurbo",
|
||||||
|
"WinterGramDark",
|
||||||
|
"WinterGramDeveloper",
|
||||||
|
"WinterGramHouseDark",
|
||||||
|
"WinterGramHouseLight",
|
||||||
|
"WinterGramLight",
|
||||||
]
|
]
|
||||||
|
|
||||||
composer_icon_folders = ["Telegram"]
|
composer_icon_folders = []
|
||||||
|
|
||||||
[
|
[
|
||||||
filegroup(
|
filegroup(
|
||||||
|
|
@ -434,6 +438,16 @@ plist_fragment(
|
||||||
<string>tonsite</string>
|
<string>tonsite</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleTypeRole</key>
|
||||||
|
<string>Viewer</string>
|
||||||
|
<key>CFBundleURLName</key>
|
||||||
|
<string>{telegram_bundle_id}.wnt</string>
|
||||||
|
<key>CFBundleURLSchemes</key>
|
||||||
|
<array>
|
||||||
|
<string>wnt</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
""".format(
|
""".format(
|
||||||
telegram_bundle_id = telegram_bundle_id,
|
telegram_bundle_id = telegram_bundle_id,
|
||||||
|
|
@ -525,6 +539,26 @@ associated_domains_fragment = "" if telegram_bundle_id not in official_bundle_id
|
||||||
</array>
|
</array>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
background_modes_fragment = """
|
||||||
|
<key>UIBackgroundModes</key>
|
||||||
|
<array>
|
||||||
|
<string>audio</string>
|
||||||
|
<string>fetch</string>
|
||||||
|
<string>location</string>
|
||||||
|
<string>remote-notification</string>
|
||||||
|
<string>voip</string>
|
||||||
|
<string>processing</string>
|
||||||
|
</array>
|
||||||
|
""" if telegram_aps_environment != "" else """
|
||||||
|
<key>UIBackgroundModes</key>
|
||||||
|
<array>
|
||||||
|
<string>audio</string>
|
||||||
|
<string>fetch</string>
|
||||||
|
<string>location</string>
|
||||||
|
<string>processing</string>
|
||||||
|
</array>
|
||||||
|
"""
|
||||||
|
|
||||||
siri_fragment = "" if not telegram_enable_siri else """
|
siri_fragment = "" if not telegram_enable_siri else """
|
||||||
<key>com.apple.developer.siri</key>
|
<key>com.apple.developer.siri</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
|
@ -629,7 +663,7 @@ plist_fragment(
|
||||||
template =
|
template =
|
||||||
"""
|
"""
|
||||||
<key>CFBundleDisplayName</key>
|
<key>CFBundleDisplayName</key>
|
||||||
<string>Telegram</string>
|
<string>WinterGram</string>
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -955,14 +989,14 @@ ios_framework(
|
||||||
plist_fragment(
|
plist_fragment(
|
||||||
name = "ShareInfoPlist",
|
name = "ShareInfoPlist",
|
||||||
extension = "plist",
|
extension = "plist",
|
||||||
template =
|
template =
|
||||||
"""
|
"""
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>en</string>
|
<string>en</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>{telegram_bundle_id}.Share</string>
|
<string>{telegram_bundle_id}.Share</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>Telegram</string>
|
<string>WinterGram</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>XPC!</string>
|
<string>XPC!</string>
|
||||||
<key>NSExtension</key>
|
<key>NSExtension</key>
|
||||||
|
|
@ -1047,14 +1081,14 @@ ios_extension(
|
||||||
plist_fragment(
|
plist_fragment(
|
||||||
name = "NotificationContentInfoPlist",
|
name = "NotificationContentInfoPlist",
|
||||||
extension = "plist",
|
extension = "plist",
|
||||||
template =
|
template =
|
||||||
"""
|
"""
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>en</string>
|
<string>en</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>{telegram_bundle_id}.NotificationContent</string>
|
<string>{telegram_bundle_id}.NotificationContent</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>Telegram</string>
|
<string>WinterGram</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>XPC!</string>
|
<string>XPC!</string>
|
||||||
<key>NSExtension</key>
|
<key>NSExtension</key>
|
||||||
|
|
@ -1154,14 +1188,14 @@ ios_extension(
|
||||||
plist_fragment(
|
plist_fragment(
|
||||||
name = "WidgetInfoPlist",
|
name = "WidgetInfoPlist",
|
||||||
extension = "plist",
|
extension = "plist",
|
||||||
template =
|
template =
|
||||||
"""
|
"""
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>en</string>
|
<string>en</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>{telegram_bundle_id}.Widget</string>
|
<string>{telegram_bundle_id}.Widget</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>Telegram</string>
|
<string>WinterGram</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>XPC!</string>
|
<string>XPC!</string>
|
||||||
<key>NSExtension</key>
|
<key>NSExtension</key>
|
||||||
|
|
@ -1267,14 +1301,14 @@ ios_extension(
|
||||||
plist_fragment(
|
plist_fragment(
|
||||||
name = "IntentsInfoPlist",
|
name = "IntentsInfoPlist",
|
||||||
extension = "plist",
|
extension = "plist",
|
||||||
template =
|
template =
|
||||||
"""
|
"""
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>en</string>
|
<string>en</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>{telegram_bundle_id}.SiriIntents</string>
|
<string>{telegram_bundle_id}.SiriIntents</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>Telegram</string>
|
<string>WinterGram</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>XPC!</string>
|
<string>XPC!</string>
|
||||||
<key>NSExtension</key>
|
<key>NSExtension</key>
|
||||||
|
|
@ -1398,14 +1432,14 @@ ios_extension(
|
||||||
plist_fragment(
|
plist_fragment(
|
||||||
name = "BroadcastUploadInfoPlist",
|
name = "BroadcastUploadInfoPlist",
|
||||||
extension = "plist",
|
extension = "plist",
|
||||||
template =
|
template =
|
||||||
"""
|
"""
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>en</string>
|
<string>en</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>{telegram_bundle_id}.BroadcastUpload</string>
|
<string>{telegram_bundle_id}.BroadcastUpload</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>Telegram</string>
|
<string>WinterGram</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>XPC!</string>
|
<string>XPC!</string>
|
||||||
<key>NSExtension</key>
|
<key>NSExtension</key>
|
||||||
|
|
@ -1492,14 +1526,14 @@ ios_extension(
|
||||||
plist_fragment(
|
plist_fragment(
|
||||||
name = "NotificationServiceInfoPlist",
|
name = "NotificationServiceInfoPlist",
|
||||||
extension = "plist",
|
extension = "plist",
|
||||||
template =
|
template =
|
||||||
"""
|
"""
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>en</string>
|
<string>en</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>{telegram_bundle_id}.NotificationService</string>
|
<string>{telegram_bundle_id}.NotificationService</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>Telegram</string>
|
<string>WinterGram</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>XPC!</string>
|
<string>XPC!</string>
|
||||||
<key>NSExtension</key>
|
<key>NSExtension</key>
|
||||||
|
|
@ -1555,7 +1589,7 @@ ios_extension(
|
||||||
plist_fragment(
|
plist_fragment(
|
||||||
name = "TelegramInfoPlist",
|
name = "TelegramInfoPlist",
|
||||||
extension = "plist",
|
extension = "plist",
|
||||||
template =
|
template =
|
||||||
"""
|
"""
|
||||||
<key>BGTaskSchedulerPermittedIdentifiers</key>
|
<key>BGTaskSchedulerPermittedIdentifiers</key>
|
||||||
<array>
|
<array>
|
||||||
|
|
@ -1568,11 +1602,11 @@ plist_fragment(
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>en</string>
|
<string>en</string>
|
||||||
<key>CFBundleDisplayName</key>
|
<key>CFBundleDisplayName</key>
|
||||||
<string>Telegram</string>
|
<string>WinterGram</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>{telegram_bundle_id}</string>
|
<string>{telegram_bundle_id}</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>Telegram</string>
|
<string>WinterGram</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
|
|
@ -1629,17 +1663,17 @@ plist_fragment(
|
||||||
<key>NSCameraUsageDescription</key>
|
<key>NSCameraUsageDescription</key>
|
||||||
<string>We need this so that you can take and share photos and videos.</string>
|
<string>We need this so that you can take and share photos and videos.</string>
|
||||||
<key>NSContactsUsageDescription</key>
|
<key>NSContactsUsageDescription</key>
|
||||||
<string>Telegram stores your contacts heavily encrypted in the cloud to let you connect with your friends across all your devices.</string>
|
<string>WinterGram stores your contacts heavily encrypted in the cloud to let you connect with your friends across all your devices.</string>
|
||||||
<key>NSFaceIDUsageDescription</key>
|
<key>NSFaceIDUsageDescription</key>
|
||||||
<string>You can use Face ID to unlock the app.</string>
|
<string>You can use Face ID to unlock the app.</string>
|
||||||
<key>NSLocationAlwaysUsageDescription</key>
|
<key>NSLocationAlwaysUsageDescription</key>
|
||||||
<string>When you send your location to your friends, Telegram needs access to show them a map. You also need this to send locations from an Apple Watch.</string>
|
<string>When you send your location to your friends, WinterGram needs access to show them a map. You also need this to send locations from an Apple Watch.</string>
|
||||||
<key>NSLocationWhenInUseUsageDescription</key>
|
<key>NSLocationWhenInUseUsageDescription</key>
|
||||||
<string>When you send your location to your friends, Telegram needs access to show them a map.</string>
|
<string>When you send your location to your friends, WinterGram needs access to show them a map.</string>
|
||||||
<key>NSMicrophoneUsageDescription</key>
|
<key>NSMicrophoneUsageDescription</key>
|
||||||
<string>We need this so that you can record and share voice messages and videos with sound.</string>
|
<string>We need this so that you can record and share voice messages and videos with sound.</string>
|
||||||
<key>NSMotionUsageDescription</key>
|
<key>NSMotionUsageDescription</key>
|
||||||
<string>When you send your location to your friends, Telegram needs access to show them a map.</string>
|
<string>When you send your location to your friends, WinterGram needs access to show them a map.</string>
|
||||||
<key>NSPhotoLibraryAddUsageDescription</key>
|
<key>NSPhotoLibraryAddUsageDescription</key>
|
||||||
<string>We need this so that you can share photos and videos from your photo library.</string>
|
<string>We need this so that you can share photos and videos from your photo library.</string>
|
||||||
<key>NSPhotoLibraryUsageDescription</key>
|
<key>NSPhotoLibraryUsageDescription</key>
|
||||||
|
|
@ -1658,15 +1692,7 @@ plist_fragment(
|
||||||
<string>AremacFS-Regular.otf</string>
|
<string>AremacFS-Regular.otf</string>
|
||||||
<string>AremacFS-Semibold.otf</string>
|
<string>AremacFS-Semibold.otf</string>
|
||||||
</array>
|
</array>
|
||||||
<key>UIBackgroundModes</key>
|
{background_modes_fragment}
|
||||||
<array>
|
|
||||||
<string>audio</string>
|
|
||||||
<string>fetch</string>
|
|
||||||
<string>location</string>
|
|
||||||
<string>remote-notification</string>
|
|
||||||
<string>voip</string>
|
|
||||||
<string>processing</string>
|
|
||||||
</array>
|
|
||||||
<key>UIDeviceFamily</key>
|
<key>UIDeviceFamily</key>
|
||||||
<array>
|
<array>
|
||||||
<integer>1</integer>
|
<integer>1</integer>
|
||||||
|
|
@ -1707,13 +1733,13 @@ plist_fragment(
|
||||||
<string>public.data</string>
|
<string>public.data</string>
|
||||||
</array>
|
</array>
|
||||||
<key>UTTypeDescription</key>
|
<key>UTTypeDescription</key>
|
||||||
<string>Telegram iOS Color Theme File</string>
|
<string>WinterGram iOS Color Theme File</string>
|
||||||
<key>UTTypeIconFiles</key>
|
<key>UTTypeIconFiles</key>
|
||||||
<array>
|
<array>
|
||||||
<string>BlueIcon@3x.png</string>
|
<string>BlueIcon@3x.png</string>
|
||||||
</array>
|
</array>
|
||||||
<key>UTTypeIdentifier</key>
|
<key>UTTypeIdentifier</key>
|
||||||
<string>org.telegram.Telegram-iOS.theme</string>
|
<string>dev.reekeer.wintergram.theme</string>
|
||||||
<key>UTTypeTagSpecification</key>
|
<key>UTTypeTagSpecification</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>public.filename-extension</key>
|
<key>public.filename-extension</key>
|
||||||
|
|
@ -1729,6 +1755,7 @@ plist_fragment(
|
||||||
<true/>
|
<true/>
|
||||||
""".format(
|
""".format(
|
||||||
telegram_bundle_id = telegram_bundle_id,
|
telegram_bundle_id = telegram_bundle_id,
|
||||||
|
background_modes_fragment = background_modes_fragment,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -1777,12 +1804,13 @@ ios_application(
|
||||||
":UrlTypesInfoPlist",
|
":UrlTypesInfoPlist",
|
||||||
],
|
],
|
||||||
app_icons = [ ":{}_icon".format(name) for name in composer_icon_folders ],
|
app_icons = [ ":{}_icon".format(name) for name in composer_icon_folders ],
|
||||||
|
primary_app_icon = "WinterGramDarkIcon",
|
||||||
alternate_icons = [
|
alternate_icons = [
|
||||||
":{}".format(name) for name in alternate_icon_folders
|
":{}".format(name) for name in alternate_icon_folders
|
||||||
],
|
],
|
||||||
resources = [
|
resources = [
|
||||||
":LaunchScreen",
|
":LaunchScreen",
|
||||||
#":DefaultAppIcon",
|
":DefaultAppIcon",
|
||||||
],
|
],
|
||||||
frameworks = [
|
frameworks = [
|
||||||
":MtProtoKitFramework",
|
":MtProtoKitFramework",
|
||||||
|
|
@ -1845,9 +1873,9 @@ filegroup(
|
||||||
)
|
)
|
||||||
|
|
||||||
ios_test_runner(
|
ios_test_runner(
|
||||||
name = "iPhone-17__26.2",
|
name = "iPhone-17__26.5",
|
||||||
device_type = "iPhone 17",
|
device_type = "iPhone 17",
|
||||||
os_version = "26.2",
|
os_version = "26.5",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1864,7 +1892,7 @@ ios_ui_test_suite(
|
||||||
bundle_id = "org.telegram.Telegram-iOS-uitests",
|
bundle_id = "org.telegram.Telegram-iOS-uitests",
|
||||||
minimum_os_version = minimum_os_version,
|
minimum_os_version = minimum_os_version,
|
||||||
runners = [
|
runners = [
|
||||||
":iPhone-17__26.2",
|
":iPhone-17__26.5",
|
||||||
],
|
],
|
||||||
tags = ["manual"],
|
tags = ["manual"],
|
||||||
test_host = "//Telegram",
|
test_host = "//Telegram",
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,29 @@
|
||||||
<key>UIPrerenderedIcon</key>
|
<key>UIPrerenderedIcon</key>
|
||||||
<true/>
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
<key>New1</key>
|
<key>WinterGramDark</key>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleIconFiles</key>
|
||||||
|
<array>
|
||||||
|
<string>WinterGramDarkIpad</string>
|
||||||
|
<string>WinterGramDarkLargeIpad</string>
|
||||||
|
<string>WinterGramDarkNotificationIcon</string>
|
||||||
|
</array>
|
||||||
|
<key>UIPrerenderedIcon</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>WinterGramLight</key>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleIconFiles</key>
|
||||||
|
<array>
|
||||||
|
<string>WinterGramLightIpad</string>
|
||||||
|
<string>WinterGramLightLargeIpad</string>
|
||||||
|
<string>WinterGramLightNotificationIcon</string>
|
||||||
|
</array>
|
||||||
|
<key>UIPrerenderedIcon</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>New1</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundleIconFiles</key>
|
<key>CFBundleIconFiles</key>
|
||||||
<array>
|
<array>
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,26 @@
|
||||||
<key>UIPrerenderedIcon</key>
|
<key>UIPrerenderedIcon</key>
|
||||||
<true/>
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
|
<key>WinterGramDark</key>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleIconFiles</key>
|
||||||
|
<array>
|
||||||
|
<string>WinterGramDark</string>
|
||||||
|
<string>WinterGramDarkNotificationIcon</string>
|
||||||
|
</array>
|
||||||
|
<key>UIPrerenderedIcon</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>WinterGramLight</key>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleIconFiles</key>
|
||||||
|
<array>
|
||||||
|
<string>WinterGramLight</string>
|
||||||
|
<string>WinterGramLightNotificationIcon</string>
|
||||||
|
</array>
|
||||||
|
<key>UIPrerenderedIcon</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
<key>New1</key>
|
<key>New1</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundleIconFiles</key>
|
<key>CFBundleIconFiles</key>
|
||||||
|
|
|
||||||
8
Telegram/Telegram-iOS/AppIcons.xcassets/WinterGramDark.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{ "idiom" : "universal", "scale" : "1x" },
|
||||||
|
{ "filename" : "WinterGramDark@2x.png", "idiom" : "universal", "scale" : "2x" },
|
||||||
|
{ "filename" : "WinterGramDark@3x.png", "idiom" : "universal", "scale" : "3x" }
|
||||||
|
],
|
||||||
|
"info" : { "author" : "xcode", "version" : 1 }
|
||||||
|
}
|
||||||
BIN
Telegram/Telegram-iOS/AppIcons.xcassets/WinterGramDark.imageset/WinterGramDark@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
Telegram/Telegram-iOS/AppIcons.xcassets/WinterGramDark.imageset/WinterGramDark@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 32 KiB |
8
Telegram/Telegram-iOS/AppIcons.xcassets/WinterGramDeveloper.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{ "idiom" : "universal", "scale" : "1x" },
|
||||||
|
{ "filename" : "WinterGramDeveloper@2x.png", "idiom" : "universal", "scale" : "2x" },
|
||||||
|
{ "filename" : "WinterGramDeveloper@3x.png", "idiom" : "universal", "scale" : "3x" }
|
||||||
|
],
|
||||||
|
"info" : { "author" : "xcode", "version" : 1 }
|
||||||
|
}
|
||||||
BIN
Telegram/Telegram-iOS/AppIcons.xcassets/WinterGramDeveloper.imageset/WinterGramDeveloper@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
Telegram/Telegram-iOS/AppIcons.xcassets/WinterGramDeveloper.imageset/WinterGramDeveloper@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 37 KiB |
8
Telegram/Telegram-iOS/AppIcons.xcassets/WinterGramHouseDark.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{ "idiom" : "universal", "scale" : "1x" },
|
||||||
|
{ "filename" : "WinterGramHouseDark@2x.png", "idiom" : "universal", "scale" : "2x" },
|
||||||
|
{ "filename" : "WinterGramHouseDark@3x.png", "idiom" : "universal", "scale" : "3x" }
|
||||||
|
],
|
||||||
|
"info" : { "author" : "xcode", "version" : 1 }
|
||||||
|
}
|
||||||
BIN
Telegram/Telegram-iOS/AppIcons.xcassets/WinterGramHouseDark.imageset/WinterGramHouseDark@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
Telegram/Telegram-iOS/AppIcons.xcassets/WinterGramHouseDark.imageset/WinterGramHouseDark@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 81 KiB |
8
Telegram/Telegram-iOS/AppIcons.xcassets/WinterGramHouseLight.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{ "idiom" : "universal", "scale" : "1x" },
|
||||||
|
{ "filename" : "WinterGramHouseLight@2x.png", "idiom" : "universal", "scale" : "2x" },
|
||||||
|
{ "filename" : "WinterGramHouseLight@3x.png", "idiom" : "universal", "scale" : "3x" }
|
||||||
|
],
|
||||||
|
"info" : { "author" : "xcode", "version" : 1 }
|
||||||
|
}
|
||||||
BIN
Telegram/Telegram-iOS/AppIcons.xcassets/WinterGramHouseLight.imageset/WinterGramHouseLight@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
Telegram/Telegram-iOS/AppIcons.xcassets/WinterGramHouseLight.imageset/WinterGramHouseLight@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 84 KiB |
8
Telegram/Telegram-iOS/AppIcons.xcassets/WinterGramLight.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{ "idiom" : "universal", "scale" : "1x" },
|
||||||
|
{ "filename" : "WinterGramLight@2x.png", "idiom" : "universal", "scale" : "2x" },
|
||||||
|
{ "filename" : "WinterGramLight@3x.png", "idiom" : "universal", "scale" : "3x" }
|
||||||
|
],
|
||||||
|
"info" : { "author" : "xcode", "version" : 1 }
|
||||||
|
}
|
||||||
BIN
Telegram/Telegram-iOS/AppIcons.xcassets/WinterGramLight.imageset/WinterGramLight@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
Telegram/Telegram-iOS/AppIcons.xcassets/WinterGramLight.imageset/WinterGramLight@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 36 KiB |
|
|
@ -1,4 +1,4 @@
|
||||||
APP_NAME=Telegram
|
APP_NAME=WinterGram
|
||||||
APP_BUNDLE_ID=ph.telegra.Telegraph
|
APP_BUNDLE_ID=ph.telegra.Telegraph
|
||||||
APP_SPECIFIC_URL_SCHEME=tgapp
|
APP_SPECIFIC_URL_SCHEME=tgapp
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
APP_NAME=Telegram Fork
|
APP_NAME=WinterGram
|
||||||
APP_BUNDLE_ID=fork.telegram.Fork
|
APP_BUNDLE_ID=fork.telegram.Fork
|
||||||
APP_SPECIFIC_URL_SCHEME=tgfork
|
APP_SPECIFIC_URL_SCHEME=tgfork
|
||||||
|
|
||||||
|
|
|
||||||
8
Telegram/Telegram-iOS/Config-WinterGram.xcconfig
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
APP_NAME=WinterGram
|
||||||
|
APP_BUNDLE_ID=dev.reekeer.wintergram
|
||||||
|
APP_SPECIFIC_URL_SCHEME=wnt
|
||||||
|
|
||||||
|
GLOBAL_CONSTANTS = APP_CONFIG_IS_INTERNAL_BUILD=true APP_CONFIG_IS_APPSTORE_BUILD=false APP_CONFIG_APPSTORE_ID=0 APP_SPECIFIC_URL_SCHEME="\"$(APP_SPECIFIC_URL_SCHEME)\""
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) $(GLOBAL_CONSTANTS)
|
||||||
|
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) APP_CONFIG_API_ID=2040 APP_CONFIG_API_HASH="\"b18441a1ff607e10a989891a5462e627\"" APP_CONFIG_HOCKEYAPP_ID=""
|
||||||
|
|
@ -1,115 +1,110 @@
|
||||||
{
|
{
|
||||||
"images" : [
|
"images": [
|
||||||
{
|
{
|
||||||
"filename" : "BlueNotificationIcon@2x.png",
|
"filename": "BlueNotificationIcon@2x.png",
|
||||||
"idiom" : "iphone",
|
"idiom": "iphone",
|
||||||
"scale" : "2x",
|
"scale": "2x",
|
||||||
"size" : "20x20"
|
"size": "20x20"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "BlueNotificationIcon@3x.png",
|
"filename": "BlueNotificationIcon@3x.png",
|
||||||
"idiom" : "iphone",
|
"idiom": "iphone",
|
||||||
"scale" : "3x",
|
"scale": "3x",
|
||||||
"size" : "20x20"
|
"size": "20x20"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "Simple@58x58.png",
|
"filename": "Simple@58x58.png",
|
||||||
"idiom" : "iphone",
|
"idiom": "iphone",
|
||||||
"scale" : "2x",
|
"scale": "2x",
|
||||||
"size" : "29x29"
|
"size": "29x29"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "Simple@87x87.png",
|
"filename": "Simple@87x87.png",
|
||||||
"idiom" : "iphone",
|
"idiom": "iphone",
|
||||||
"scale" : "3x",
|
"scale": "3x",
|
||||||
"size" : "29x29"
|
"size": "29x29"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "Simple@80x80.png",
|
"filename": "Simple@80x80.png",
|
||||||
"idiom" : "iphone",
|
"idiom": "iphone",
|
||||||
"scale" : "2x",
|
"scale": "2x",
|
||||||
"size" : "40x40"
|
"size": "40x40"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "BlueIcon@2x-1.png",
|
"filename": "BlueIcon@2x-1.png",
|
||||||
"idiom" : "iphone",
|
"idiom": "iphone",
|
||||||
"scale" : "3x",
|
"scale": "3x",
|
||||||
"size" : "40x40"
|
"size": "40x40"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "BlueIcon@2x.png",
|
"filename": "BlueIcon@2x.png",
|
||||||
"idiom" : "iphone",
|
"idiom": "iphone",
|
||||||
"scale" : "2x",
|
"scale": "2x",
|
||||||
"size" : "60x60"
|
"size": "60x60"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "BlueIcon@3x.png",
|
"filename": "BlueIcon@3x.png",
|
||||||
"idiom" : "iphone",
|
"idiom": "iphone",
|
||||||
"scale" : "3x",
|
"scale": "3x",
|
||||||
"size" : "60x60"
|
"size": "60x60"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "BlueNotificationIcon.png",
|
"filename": "BlueNotificationIcon.png",
|
||||||
"idiom" : "ipad",
|
"idiom": "ipad",
|
||||||
"scale" : "1x",
|
"scale": "1x",
|
||||||
"size" : "20x20"
|
"size": "20x20"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "BlueNotificationIcon@2x-1.png",
|
"filename": "BlueNotificationIcon@2x-1.png",
|
||||||
"idiom" : "ipad",
|
"idiom": "ipad",
|
||||||
"scale" : "2x",
|
"scale": "2x",
|
||||||
"size" : "20x20"
|
"size": "20x20"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "Simple@29x29.png",
|
"filename": "Simple@29x29.png",
|
||||||
"idiom" : "ipad",
|
"idiom": "ipad",
|
||||||
"scale" : "1x",
|
"scale": "1x",
|
||||||
"size" : "29x29"
|
"size": "29x29"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "Simple@58x58-1.png",
|
"filename": "Simple@58x58-1.png",
|
||||||
"idiom" : "ipad",
|
"idiom": "ipad",
|
||||||
"scale" : "2x",
|
"scale": "2x",
|
||||||
"size" : "29x29"
|
"size": "29x29"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "Simple@40x40-1.png",
|
"filename": "Simple@40x40-1.png",
|
||||||
"idiom" : "ipad",
|
"idiom": "ipad",
|
||||||
"scale" : "1x",
|
"scale": "1x",
|
||||||
"size" : "40x40"
|
"size": "40x40"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "Simple@80x80-1.png",
|
"filename": "Simple@80x80-1.png",
|
||||||
"idiom" : "ipad",
|
"idiom": "ipad",
|
||||||
"scale" : "2x",
|
"scale": "2x",
|
||||||
"size" : "40x40"
|
"size": "40x40"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"idiom" : "ipad",
|
"filename": "BlueIconIpad@2x.png",
|
||||||
"scale" : "1x",
|
"idiom": "ipad",
|
||||||
"size" : "76x76"
|
"scale": "2x",
|
||||||
|
"size": "76x76"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "BlueIconIpad@2x.png",
|
"filename": "BlueIconLargeIpad@2x.png",
|
||||||
"idiom" : "ipad",
|
"idiom": "ipad",
|
||||||
"scale" : "2x",
|
"scale": "2x",
|
||||||
"size" : "76x76"
|
"size": "83.5x83.5"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "BlueIconLargeIpad@2x.png",
|
"filename": "Simple-iTunesArtwork.png",
|
||||||
"idiom" : "ipad",
|
"idiom": "ios-marketing",
|
||||||
"scale" : "2x",
|
"scale": "1x",
|
||||||
"size" : "83.5x83.5"
|
"size": "1024x1024"
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "Simple-iTunesArtwork.png",
|
|
||||||
"idiom" : "ios-marketing",
|
|
||||||
"scale" : "1x",
|
|
||||||
"size" : "1024x1024"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"info" : {
|
"info": {
|
||||||
"author" : "xcode",
|
"author": "xcode",
|
||||||
"version" : 1
|
"version": 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
8
Telegram/Telegram-iOS/DefaultAppIcon.xcassets/WinterGramBadge.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{ "idiom" : "universal", "scale" : "1x" },
|
||||||
|
{ "filename" : "WinterGramBadge@2x.png", "idiom" : "universal", "scale" : "2x" },
|
||||||
|
{ "filename" : "WinterGramBadge@3x.png", "idiom" : "universal", "scale" : "3x" }
|
||||||
|
],
|
||||||
|
"info" : { "author" : "xcode", "version" : 1 }
|
||||||
|
}
|
||||||
BIN
Telegram/Telegram-iOS/DefaultAppIcon.xcassets/WinterGramBadge.imageset/WinterGramBadge@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
Telegram/Telegram-iOS/DefaultAppIcon.xcassets/WinterGramBadge.imageset/WinterGramBadge@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
|
|
@ -84,12 +84,6 @@
|
||||||
"scale" : "2x",
|
"scale" : "2x",
|
||||||
"size" : "40x40"
|
"size" : "40x40"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"filename" : "Icon-76.png",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"scale" : "1x",
|
|
||||||
"size" : "76x76"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"filename" : "Icon-152.png",
|
"filename" : "Icon-152.png",
|
||||||
"idiom" : "ipad",
|
"idiom" : "ipad",
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 771 KiB After Width: | Height: | Size: 590 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 3 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 8 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 9.2 KiB |
8
Telegram/Telegram-iOS/DefaultAppIcon.xcassets/WinterGramSnowflake.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{ "idiom" : "universal", "scale" : "1x" },
|
||||||
|
{ "filename" : "WinterGramSnowflake@2x.png", "idiom" : "universal", "scale" : "2x" },
|
||||||
|
{ "filename" : "WinterGramSnowflake@3x.png", "idiom" : "universal", "scale" : "3x" }
|
||||||
|
],
|
||||||
|
"info" : { "author" : "xcode", "version" : 1 }
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
6
Telegram/Telegram-iOS/DefaultAppIcon.xcassets/WntGramBackplateShape.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{ "filename" : "WntGramBackplateShape.png", "idiom" : "universal", "scale" : "1x" }
|
||||||
|
],
|
||||||
|
"info" : { "author" : "xcode", "version" : 1 }
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 2.3 KiB |
8
Telegram/Telegram-iOS/DefaultAppIcon.xcassets/WntGramBanner.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{ "idiom" : "universal", "scale" : "1x" },
|
||||||
|
{ "filename" : "WntGramBanner@2x.png", "idiom" : "universal", "scale" : "2x" },
|
||||||
|
{ "filename" : "WntGramBanner@3x.png", "idiom" : "universal", "scale" : "3x" }
|
||||||
|
],
|
||||||
|
"info" : { "author" : "xcode", "version" : 1 }
|
||||||
|
}
|
||||||
BIN
Telegram/Telegram-iOS/DefaultAppIcon.xcassets/WntGramBanner.imageset/WntGramBanner@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 249 KiB |
BIN
Telegram/Telegram-iOS/DefaultAppIcon.xcassets/WntGramBanner.imageset/WntGramBanner@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 460 KiB |
8
Telegram/Telegram-iOS/DefaultAppIcon.xcassets/WntGramBannerDefault.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{ "idiom" : "universal", "scale" : "1x" },
|
||||||
|
{ "filename" : "WntGramBannerDefault@2x.png", "idiom" : "universal", "scale" : "2x" },
|
||||||
|
{ "filename" : "WntGramBannerDefault@3x.png", "idiom" : "universal", "scale" : "3x" }
|
||||||
|
],
|
||||||
|
"info" : { "author" : "xcode", "version" : 1 }
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 216 KiB |
|
After Width: | Height: | Size: 377 KiB |
8
Telegram/Telegram-iOS/DefaultAppIcon.xcassets/WntGramDeveloperBadge.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{ "idiom" : "universal", "scale" : "1x" },
|
||||||
|
{ "filename" : "WntGramDeveloperBadge@2x.png", "idiom" : "universal", "scale" : "2x" },
|
||||||
|
{ "filename" : "WntGramDeveloperBadge@3x.png", "idiom" : "universal", "scale" : "3x" }
|
||||||
|
],
|
||||||
|
"info" : { "author" : "xcode", "version" : 1 }
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
6
Telegram/Telegram-iOS/DefaultAppIcon.xcassets/WntGramSnowflakeShape.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{ "filename" : "WntGramSnowflakeShape.png", "idiom" : "universal", "scale" : "1x" }
|
||||||
|
],
|
||||||
|
"info" : { "author" : "xcode", "version" : 1 }
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 4.1 KiB |
|
|
@ -85,11 +85,31 @@
|
||||||
<key>UIPrerenderedIcon</key>
|
<key>UIPrerenderedIcon</key>
|
||||||
<true/>
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
|
<key>WinterGramDark</key>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleIconFiles</key>
|
||||||
|
<array>
|
||||||
|
<string>WinterGramDark</string>
|
||||||
|
<string>WinterGramDarkNotificationIcon</string>
|
||||||
|
</array>
|
||||||
|
<key>UIPrerenderedIcon</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>WinterGramLight</key>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleIconFiles</key>
|
||||||
|
<array>
|
||||||
|
<string>WinterGramLight</string>
|
||||||
|
<string>WinterGramLightNotificationIcon</string>
|
||||||
|
</array>
|
||||||
|
<key>UIPrerenderedIcon</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<key>CFBundlePrimaryIcon</key>
|
<key>CFBundlePrimaryIcon</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundleIconName</key>
|
<key>CFBundleIconName</key>
|
||||||
<string>AppIconLLC</string>
|
<string>WinterGramDarkIcon</string>
|
||||||
<key>UIPrerenderedIcon</key>
|
<key>UIPrerenderedIcon</key>
|
||||||
<true/>
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
|
|
@ -171,11 +191,33 @@
|
||||||
<key>UIPrerenderedIcon</key>
|
<key>UIPrerenderedIcon</key>
|
||||||
<true/>
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
|
<key>WinterGramDark</key>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleIconFiles</key>
|
||||||
|
<array>
|
||||||
|
<string>WinterGramDarkIpad</string>
|
||||||
|
<string>WinterGramDarkLargeIpad</string>
|
||||||
|
<string>WinterGramDarkNotificationIcon</string>
|
||||||
|
</array>
|
||||||
|
<key>UIPrerenderedIcon</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>WinterGramLight</key>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleIconFiles</key>
|
||||||
|
<array>
|
||||||
|
<string>WinterGramLightIpad</string>
|
||||||
|
<string>WinterGramLightLargeIpad</string>
|
||||||
|
<string>WinterGramLightNotificationIcon</string>
|
||||||
|
</array>
|
||||||
|
<key>UIPrerenderedIcon</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<key>CFBundlePrimaryIcon</key>
|
<key>CFBundlePrimaryIcon</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundleIconName</key>
|
<key>CFBundleIconName</key>
|
||||||
<string>AppIconLLC</string>
|
<string>WinterGramDarkIcon</string>
|
||||||
<key>UIPrerenderedIcon</key>
|
<key>UIPrerenderedIcon</key>
|
||||||
<true/>
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
|
|
@ -277,17 +319,17 @@
|
||||||
<key>NSCameraUsageDescription</key>
|
<key>NSCameraUsageDescription</key>
|
||||||
<string>We need this so that you can take and share photos and videos.</string>
|
<string>We need this so that you can take and share photos and videos.</string>
|
||||||
<key>NSContactsUsageDescription</key>
|
<key>NSContactsUsageDescription</key>
|
||||||
<string>Telegram stores your contacts heavily encrypted in the cloud to let you connect with your friends across all your devices.</string>
|
<string>WinterGram stores your contacts heavily encrypted in the cloud to let you connect with your friends across all your devices.</string>
|
||||||
<key>NSFaceIDUsageDescription</key>
|
<key>NSFaceIDUsageDescription</key>
|
||||||
<string>You can use Face ID to unlock the app.</string>
|
<string>You can use Face ID to unlock the app.</string>
|
||||||
<key>NSLocationAlwaysUsageDescription</key>
|
<key>NSLocationAlwaysUsageDescription</key>
|
||||||
<string>When you send your location to your friends, Telegram needs access to show them a map. You also need this to send locations from an Apple Watch.</string>
|
<string>When you send your location to your friends, WinterGram needs access to show them a map. You also need this to send locations from an Apple Watch.</string>
|
||||||
<key>NSLocationWhenInUseUsageDescription</key>
|
<key>NSLocationWhenInUseUsageDescription</key>
|
||||||
<string>When you send your location to your friends, Telegram needs access to show them a map.</string>
|
<string>When you send your location to your friends, WinterGram needs access to show them a map.</string>
|
||||||
<key>NSMicrophoneUsageDescription</key>
|
<key>NSMicrophoneUsageDescription</key>
|
||||||
<string>We need this so that you can record and share voice messages and videos with sound.</string>
|
<string>We need this so that you can record and share voice messages and videos with sound.</string>
|
||||||
<key>NSMotionUsageDescription</key>
|
<key>NSMotionUsageDescription</key>
|
||||||
<string>When you send your location to your friends, Telegram needs access to show them a map.</string>
|
<string>When you send your location to your friends, WinterGram needs access to show them a map.</string>
|
||||||
<key>NSPhotoLibraryAddUsageDescription</key>
|
<key>NSPhotoLibraryAddUsageDescription</key>
|
||||||
<string>We need this so that you can share photos and videos from your photo library.</string>
|
<string>We need this so that you can share photos and videos from your photo library.</string>
|
||||||
<key>NSPhotoLibraryUsageDescription</key>
|
<key>NSPhotoLibraryUsageDescription</key>
|
||||||
|
|
@ -355,13 +397,13 @@
|
||||||
<string>public.data</string>
|
<string>public.data</string>
|
||||||
</array>
|
</array>
|
||||||
<key>UTTypeDescription</key>
|
<key>UTTypeDescription</key>
|
||||||
<string>Telegram iOS Color Theme File</string>
|
<string>WinterGram iOS Color Theme File</string>
|
||||||
<key>UTTypeIconFiles</key>
|
<key>UTTypeIconFiles</key>
|
||||||
<array>
|
<array>
|
||||||
<string>BlueIcon@3x.png</string>
|
<string>BlueIcon@3x.png</string>
|
||||||
</array>
|
</array>
|
||||||
<key>UTTypeIdentifier</key>
|
<key>UTTypeIdentifier</key>
|
||||||
<string>org.telegram.Telegram-iOS.theme</string>
|
<string>dev.reekeer.wintergram.theme</string>
|
||||||
<key>UTTypeTagSpecification</key>
|
<key>UTTypeTagSpecification</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>public.filename-extension</key>
|
<key>public.filename-extension</key>
|
||||||
|
|
|
||||||
|
|
@ -111,17 +111,17 @@
|
||||||
<key>NSCameraUsageDescription</key>
|
<key>NSCameraUsageDescription</key>
|
||||||
<string>We need this so that you can take and share photos and videos.</string>
|
<string>We need this so that you can take and share photos and videos.</string>
|
||||||
<key>NSContactsUsageDescription</key>
|
<key>NSContactsUsageDescription</key>
|
||||||
<string>Telegram stores your contacts heavily encrypted in the cloud to let you connect with your friends across all your devices.</string>
|
<string>WinterGram stores your contacts heavily encrypted in the cloud to let you connect with your friends across all your devices.</string>
|
||||||
<key>NSFaceIDUsageDescription</key>
|
<key>NSFaceIDUsageDescription</key>
|
||||||
<string>You can use Face ID to unlock the app.</string>
|
<string>You can use Face ID to unlock the app.</string>
|
||||||
<key>NSLocationAlwaysUsageDescription</key>
|
<key>NSLocationAlwaysUsageDescription</key>
|
||||||
<string>When you send your location to your friends, Telegram needs access to show them a map. You also need this to send locations from an Apple Watch.</string>
|
<string>When you send your location to your friends, WinterGram needs access to show them a map. You also need this to send locations from an Apple Watch.</string>
|
||||||
<key>NSLocationWhenInUseUsageDescription</key>
|
<key>NSLocationWhenInUseUsageDescription</key>
|
||||||
<string>When you send your location to your friends, Telegram needs access to show them a map.</string>
|
<string>When you send your location to your friends, WinterGram needs access to show them a map.</string>
|
||||||
<key>NSMicrophoneUsageDescription</key>
|
<key>NSMicrophoneUsageDescription</key>
|
||||||
<string>We need this so that you can record and share voice messages and videos with sound.</string>
|
<string>We need this so that you can record and share voice messages and videos with sound.</string>
|
||||||
<key>NSMotionUsageDescription</key>
|
<key>NSMotionUsageDescription</key>
|
||||||
<string>When you send your location to your friends, Telegram needs access to show them a map.</string>
|
<string>When you send your location to your friends, WinterGram needs access to show them a map.</string>
|
||||||
<key>NSPhotoLibraryAddUsageDescription</key>
|
<key>NSPhotoLibraryAddUsageDescription</key>
|
||||||
<string>We need this so that you can share photos and videos from your photo library.</string>
|
<string>We need this so that you can share photos and videos from your photo library.</string>
|
||||||
<key>NSPhotoLibraryUsageDescription</key>
|
<key>NSPhotoLibraryUsageDescription</key>
|
||||||
|
|
@ -189,13 +189,13 @@
|
||||||
<string>public.data</string>
|
<string>public.data</string>
|
||||||
</array>
|
</array>
|
||||||
<key>UTTypeDescription</key>
|
<key>UTTypeDescription</key>
|
||||||
<string>Telegram iOS Color Theme File</string>
|
<string>WinterGram iOS Color Theme File</string>
|
||||||
<key>UTTypeIconFiles</key>
|
<key>UTTypeIconFiles</key>
|
||||||
<array>
|
<array>
|
||||||
<string>BlueIcon@3x.png</string>
|
<string>BlueIcon@3x.png</string>
|
||||||
</array>
|
</array>
|
||||||
<key>UTTypeIdentifier</key>
|
<key>UTTypeIdentifier</key>
|
||||||
<string>org.telegram.Telegram-iOS.theme</string>
|
<string>dev.reekeer.wintergram.theme</string>
|
||||||
<key>UTTypeTagSpecification</key>
|
<key>UTTypeTagSpecification</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>public.filename-extension</key>
|
<key>public.filename-extension</key>
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 73 KiB |
|
After Width: | Height: | Size: 2 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 8.6 KiB |
|
After Width: | Height: | Size: 27 KiB |