This commit is contained in:
Peter 2019-08-30 23:32:32 +04:00
parent ee8deffc76
commit f1d1754aa5
326 changed files with 4981 additions and 2895 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><Scheme LastUpgradeVersion="9999" version="1.7"><BuildAction buildImplicitDependencies="YES" parallelizeBuildables="YES"><BuildActionEntries><BuildActionEntry buildForAnalyzing="YES" buildForArchiving="YES" buildForProfiling="YES" buildForRunning="YES" buildForTesting="YES"><BuildableReference BlueprintIdentifier="E66DC04E0001020100000000" BlueprintName="App" BuildableIdentifier="primary" BuildableName="App.app" ReferencedContainer="container:App.xcodeproj"/></BuildActionEntry><BuildActionEntry buildForAnalyzing="YES" buildForArchiving="YES" buildForProfiling="YES" buildForRunning="YES" buildForTesting="YES"><BuildableReference BlueprintIdentifier="E66DC04EC43AA77A00000000" BlueprintName="AppLibrary" BuildableIdentifier="primary" BuildableName="libAppLibrary.a" ReferencedContainer="container:App.xcodeproj"/></BuildActionEntry></BuildActionEntries></BuildAction><TestAction buildConfiguration="Debug" shouldUseLaunchSchemeArgsEnv="YES"><Testables/></TestAction><LaunchAction buildConfiguration="Debug"/><ProfileAction buildConfiguration="Release"/><AnalyzeAction buildConfiguration="Debug"/><ArchiveAction buildConfiguration="Release" revealArchiveInOrganizer="YES"/></Scheme>
<?xml version="1.0" encoding="UTF-8" standalone="no"?><Scheme LastUpgradeVersion="9999" version="1.7"><BuildAction buildImplicitDependencies="YES" parallelizeBuildables="YES"><BuildActionEntries><BuildActionEntry buildForAnalyzing="YES" buildForArchiving="YES" buildForProfiling="YES" buildForRunning="YES" buildForTesting="YES"><BuildableReference BlueprintIdentifier="E66DC04EB2C34D2100000000" BlueprintName="Telegram" BuildableIdentifier="primary" BuildableName="Telegram.app" ReferencedContainer="container:App.xcodeproj"/></BuildActionEntry><BuildActionEntry buildForAnalyzing="YES" buildForArchiving="YES" buildForProfiling="YES" buildForRunning="YES" buildForTesting="YES"><BuildableReference BlueprintIdentifier="E66DC04EC43AA77A00000000" BlueprintName="AppLibrary" BuildableIdentifier="primary" BuildableName="libAppLibrary.a" ReferencedContainer="container:App.xcodeproj"/></BuildActionEntry></BuildActionEntries></BuildAction><TestAction buildConfiguration="Debug" shouldUseLaunchSchemeArgsEnv="YES"><Testables/></TestAction><LaunchAction buildConfiguration="Debug"/><ProfileAction buildConfiguration="Release"/><AnalyzeAction buildConfiguration="Debug"/><ArchiveAction buildConfiguration="Release" revealArchiveInOrganizer="YES"/></Scheme>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -19,6 +19,7 @@ ui_tests = [
static_library_dependencies = [
]
framework_dependencies = [
"//submodules/MtProtoKit:MtProtoKit",
"//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit",
@ -29,6 +30,18 @@ framework_dependencies = [
"//submodules/TelegramUI:TelegramUI",
]
resource_dependencies = [
"//submodules/LegacyComponents:LegacyComponentsResources",
"//submodules/TelegramUI:TelegramUIAssets",
"//submodules/TelegramUI:TelegramUIResources",
"//:AppResources",
"//:AppStringResources",
"//:Icons",
"//:AppIcons",
"//:AdditionalIcons",
"//:LaunchScreen",
]
build_phase_scripts = [
]
@ -56,7 +69,7 @@ apple_binary(
"//App:",
"//App/...",
],
configs = app_binary_configs("App"),
configs = app_binary_configs("Telegram"),
swift_version = native.read_config("swift", "version"),
srcs = [
"SupportFiles/Empty.swift",
@ -64,32 +77,32 @@ apple_binary(
deps = [
":AppLibrary",
]
+ resource_dependencies,
)
xcode_workspace_config(
name = "workspace",
workspace_name = "App",
src_target = ":App",
workspace_name = "Telegram_Buck",
src_target = ":Telegram",
)
apple_bundle(
name = "App",
name = "Telegram",
visibility = [
"//App:",
],
extension = "app",
binary = ":AppBinary",
product_name = "App",
product_name = "Telegram",
info_plist = "Info.plist",
info_plist_substitutions = app_info_plist_substitutions("App"),
info_plist_substitutions = app_info_plist_substitutions("Telegram"),
deps = [
#"//submodules/Emoji:EmojiFiles",
]
+ framework_bundle_dependencies(framework_dependencies),
)
apple_package(
name = "AppPackage",
bundle = ":App",
bundle = ":Telegram",
)

View File

@ -2,19 +2,180 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleAllowMixedLocalizations</key>
<true/>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>${APP_NAME}</string>
<key>CFBundleExecutable</key>
<string>App</string>
<key>CFBundleIconFiles</key>
<array>
<string>Icon.png</string>
<string>Icon@2x.png</string>
<string>Icon-72.png</string>
<string>Icon-72@2x.png</string>
<string>Icon-Small-50.png</string>
<string>Icon-Small-50@2x.png</string>
</array>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>Black</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>BlackIcon</string>
<string>BlackNotificationIcon</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
<key>BlackClassic</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>BlackClassicIcon</string>
<string>BlackClassicNotificationIcon</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
<key>BlackFilled</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>BlackFilledIcon</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
<key>Blue</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>BlueIcon</string>
<string>BlueNotificationIcon</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
<key>BlueClassic</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>BlueClassicIcon</string>
<string>BlueClassicNotificationIcon</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
<key>BlueFilled</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>BlueFilledIcon</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
<key>WhiteFilled</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>WhiteFilledIcon</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconName</key>
<string>AppIconLLC</string>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
</dict>
<key>CFBundleIcons~ipad</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>Black</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>BlackIconIpad</string>
<string>BlackIconLargeIpad</string>
<string>BlackNotificationIcon</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
<key>BlackClassic</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>BlackClassicIconIpad</string>
<string>BlackClassicIconLargeIpad</string>
<string>BlackClassicNotificationIcon</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
<key>BlackFilled</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>BlackFilledIconIpad</string>
<string>BlackFilledIconLargeIpad</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
<key>Blue</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>BlueIconIpad</string>
<string>BlueIconLargeIpad</string>
<string>BlueNotificationIcon</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
<key>BlueClassic</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>BlueClassicIconIpad</string>
<string>BlueClassicIconLargeIpad</string>
<string>BlueClassicNotificationIcon</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
<key>BlueFilled</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>BlueFilledIconIpad</string>
<string>BlueFilledIconLargeIpad</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
<key>WhiteFilled</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>WhiteFilledIcon</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconName</key>
<string>AppIconLLC</string>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
</dict>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
@ -24,17 +185,134 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<string>5.11</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>CFBundleURLName</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleURLSchemes</key>
<array>
<string>telegram</string>
</array>
</dict>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER).compatibility</string>
<key>CFBundleURLSchemes</key>
<array>
<string>tg</string>
<string>$(APP_SPECIFIC_URL_SCHEME)</string>
</array>
</dict>
<dict>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>CFBundleURLName</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER).dropbox</string>
<key>CFBundleURLSchemes</key>
<array>
<string>db-pa9wtoz9l514anx</string>
</array>
</dict>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<string>${BUILD_NUMBER}</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>instagram</string>
<string>comgooglemaps-x-callback</string>
<string>foursquare</string>
<string>here-location</string>
<string>yandexmaps</string>
<string>yandexnavi</string>
<string>comgooglemaps</string>
<string>youtube</string>
<string>twitter</string>
<string>vk</string>
<string>waze</string>
<string>googlechrome</string>
<string>googlechromes</string>
<string>firefox</string>
<string>touch-http</string>
<string>touch-https</string>
<string>yandexbrowser-open-url</string>
<string>vimeo</string>
<string>vine</string>
<string>coub</string>
<string>uber</string>
<string>citymapper</string>
<string>lyft</string>
<string>opera-http</string>
<string>opera-https</string>
<string>firefox-focus</string>
<string>ddgQuickLink</string>
<string>moovit</string>
</array>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>NSCameraUsageDescription</key>
<string>We need this so that you can take and share photos and videos.</string>
<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>
<key>NSFaceIDUsageDescription</key>
<string>You can use Face ID to unlock the app.</string>
<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>
<key>NSLocationWhenInUseUsageDescription</key>
<string>When you send your location to your friends, Telegram needs access to show them a map.</string>
<key>NSMicrophoneUsageDescription</key>
<string>We need this so that you can record and share voice messages and videos with sound.</string>
<key>NSMotionUsageDescription</key>
<string>When you send your location to your friends, Telegram needs access to show them a map.</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>We need this so that you can share photos and videos from your photo library.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>We need this so that you can share photos and videos from your photo library.</string>
<key>NSSiriUsageDescription</key>
<string>You can use Siri to send messages.</string>
<key>NSUserActivityTypes</key>
<array>
<string>INSendMessageIntent</string>
<string>RemindAboutChatIntent</string>
</array>
<key>UIAppFonts</key>
<array>
<string>SFCompactRounded-Semibold.otf</string>
</array>
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
<string>fetch</string>
<string>location</string>
<string>remote-notification</string>
<string>voip</string>
</array>
<key>UIFileSharingEnabled</key>
<false/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
<string>armv7</string>
</array>
<key>UIRequiresPersistentWiFi</key>
<true/>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleDefault</string>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
@ -48,5 +326,35 @@
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>UIViewEdgeAntialiasing</key>
<false/>
<key>UIViewGroupOpacity</key>
<false/>
<key>UTImportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>Telegram iOS Color Theme File</string>
<key>UTTypeIconFiles</key>
<array>
<string>BlueIcon@3x.png</string>
</array>
<key>UTTypeIdentifier</key>
<string>org.telegram.Telegram-iOS.theme</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>tgios-theme</string>
</array>
</dict>
</dict>
</array>
</dict>
</plist>

52
App/Info_bak.plist Normal file
View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>App</string>
<key>CFBundleIconFiles</key>
<array>
<string>Icon.png</string>
<string>Icon@2x.png</string>
<string>Icon-72.png</string>
<string>Icon-72@2x.png</string>
<string>Icon-Small-50.png</string>
<string>Icon-Small-50@2x.png</string>
</array>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -20,6 +20,20 @@
ReferencedContainer = "container:../submodules/AsyncDisplayKit/AsyncDisplayKit.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E66DC04EB3E1D9E300000000"
BuildableName = "libAppBundle.a"
BlueprintName = "AppBundle"
ReferencedContainer = "container:../submodules/AppBundle/AppBundle.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
@ -1280,6 +1294,20 @@
ReferencedContainer = "container:../submodules/ComposePollUI/ComposePollUI.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E66DC04EE09F1DE500000000"
BuildableName = "libReactionSelectionNode.a"
BlueprintName = "ReactionSelectionNode"
ReferencedContainer = "container:../submodules/ReactionSelectionNode/ReactionSelectionNode.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
@ -1868,6 +1896,20 @@
ReferencedContainer = "container:../submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E66DC04E639FD30200000000"
BuildableName = "libMessageReactionListUI.a"
BlueprintName = "MessageReactionListUI"
ReferencedContainer = "container:../submodules/MessageReactionListUI/MessageReactionListUI.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
@ -2092,20 +2134,6 @@
ReferencedContainer = "container:../submodules/RaiseToListen/RaiseToListen.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E66DC04EE09F1DE500000000"
BuildableName = "libReactionSelectionNode.a"
BlueprintName = "ReactionSelectionNode"
ReferencedContainer = "container:../submodules/ReactionSelectionNode/ReactionSelectionNode.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
@ -2324,9 +2352,9 @@
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E66DC04E0001020100000000"
BuildableName = "App.app"
BlueprintName = "App"
BlueprintIdentifier = "E66DC04EB2C34D2100000000"
BuildableName = "Telegram.app"
BlueprintName = "Telegram"
ReferencedContainer = "container:App.xcodeproj">
</BuildableReference>
</BuildActionEntry>
@ -2356,9 +2384,9 @@
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E66DC04E0001020100000000"
BuildableName = "App.app"
BlueprintName = "App"
BlueprintIdentifier = "E66DC04EB2C34D2100000000"
BuildableName = "Telegram.app"
BlueprintName = "Telegram"
ReferencedContainer = "container:App.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
@ -2375,9 +2403,9 @@
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E66DC04E0001020100000000"
BuildableName = "App.app"
BlueprintName = "App"
BlueprintIdentifier = "E66DC04EB2C34D2100000000"
BuildableName = "Telegram.app"
BlueprintName = "Telegram"
ReferencedContainer = "container:App.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>

49
BUCK Normal file
View File

@ -0,0 +1,49 @@
apple_resource(
name = "AppResources",
files = glob([
"Telegram-iOS/Resources/**/*",
], exclude = ["Telegram-iOS/Resources/**/.*"]),
visibility = ["PUBLIC"],
)
apple_resource(
name = "AppStringResources",
files = [],
variants = glob([
"Telegram-iOS/*.lproj/Localizable.strings",
]),
visibility = ["PUBLIC"],
)
apple_asset_catalog(
name = 'Icons',
dirs = [
"Telegram-iOS/Icons.xcassets",
],
visibility = ["PUBLIC"],
)
apple_asset_catalog(
name = 'AppIcons',
dirs = [
"Telegram-iOS/AppIcons.xcassets",
],
visibility = ["PUBLIC"],
)
apple_resource(
name = "AdditionalIcons",
files = glob([
"Telegram-iOS/*.png",
]),
visibility = ["PUBLIC"],
)
apple_resource(
name = 'LaunchScreen',
files = [
'Telegram-iOS/Base.lproj/LaunchScreen.xib',
],
visibility = ["PUBLIC"],
)

View File

@ -1,9 +1,20 @@
AppConfig = {
"apiId": "8",
"apiHash": "7245de8e747a0d6fbe11f7cc14fcc0bb",
"hockeyAppId": "ad8831329ffc8f8aff9a2b0b86558b24",
"isInternalBuild": "true",
"isAppStoreBuild": "false",
"appstoreId": "686449807",
"appSpecificUrlScheme": "tgapp",
}
def appConfig():
apiId = native.read_config("custom", "apiId")
apiHash = native.read_config("custom", "apiHash")
hockeyAppId = native.read_config("custom", "hockeyAppId")
isInternalBuild = native.read_config("custom", "isInternalBuild")
isAppStoreBuild = native.read_config("custom", "isAppStoreBuild")
appStoreId = native.read_config("custom", "appStoreId")
appSpecificUrlScheme = native.read_config("custom", "appSpecificUrlScheme")
buildNumber = native.read_config("custom", "buildNumber")
return {
"apiId": apiId,
"apiHash": apiHash,
"hockeyAppId": hockeyAppId,
"isInternalBuild": isInternalBuild,
"isAppStoreBuild": isAppStoreBuild,
"appStoreId": appStoreId,
"appSpecificUrlScheme": appSpecificUrlScheme,
"buildNumber": buildNumber,
}

View File

@ -14,23 +14,37 @@ def apple_lib(
swift_version = None,
modular = True,
compiler_flags = None,
platform_compiler_flags = None,
swift_compiler_flags = None,
warning_as_error = False,
suppress_warnings = False,
has_cpp = False,
framework = False):
swift_version = swift_version or native.read_config('swift', 'version')
compiler_flags = compiler_flags or []
swift_compiler_flags = swift_compiler_flags or []
if native.read_config("xcode", "beta") == "True":
warning_as_error = False
if platform_compiler_flags != None:
if compiler_flags != None:
fail("compiler_flags and platform_compiler_flags are mutually exclusive")
compiler_flags = []
for i in range(len(platform_compiler_flags)):
if warning_as_error:
platform_compiler_flags[i][1].append("-Werror")
elif suppress_warnings:
platform_compiler_flags[i][1].append("-w")
else:
compiler_flags = compiler_flags or []
if warning_as_error:
compiler_flags.append("-Werror")
elif suppress_warnings:
compiler_flags.append("-w")
if warning_as_error:
compiler_flags.append("-Werror")
swift_compiler_flags.append("-warnings-as-errors")
elif suppress_warnings:
compiler_flags.append("-w")
swift_compiler_flags.append("-suppress-warnings")
if framework:
@ -61,6 +75,7 @@ def apple_lib(
configs = framework_library_configs(name),
modular = modular,
compiler_flags = compiler_flags,
platform_compiler_flags = platform_compiler_flags,
swift_compiler_flags = swift_compiler_flags,
preferred_linkage = "shared",
link_style = "static",
@ -84,6 +99,7 @@ def apple_lib(
configs = framework_library_configs(name),
modular = modular,
compiler_flags = compiler_flags,
platform_compiler_flags = platform_compiler_flags,
swift_compiler_flags = swift_compiler_flags,
preferred_linkage = "shared",
link_style = "static",
@ -116,6 +132,7 @@ def apple_lib(
configs = library_configs(),
modular = modular,
compiler_flags = compiler_flags,
platform_compiler_flags = platform_compiler_flags,
swift_compiler_flags = swift_compiler_flags,
)
@ -134,6 +151,7 @@ def static_library(
info_plist_substitutions = {},
modular = True,
compiler_flags = None,
platform_compiler_flags = None,
swift_compiler_flags = None,
warning_as_error = False,
suppress_warnings = True):
@ -145,6 +163,7 @@ def static_library(
headers = headers,
modular = modular,
compiler_flags = compiler_flags,
platform_compiler_flags = platform_compiler_flags,
swift_compiler_flags = swift_compiler_flags,
extra_xcode_files = extra_xcode_files,
deps = deps,
@ -170,6 +189,7 @@ def framework(
info_plist_substitutions = {},
modular = True,
compiler_flags = None,
platform_compiler_flags = None,
swift_compiler_flags = None,
warning_as_error = False,
suppress_warnings = True):
@ -181,6 +201,7 @@ def framework(
headers = headers,
modular = modular,
compiler_flags = compiler_flags,
platform_compiler_flags = platform_compiler_flags,
swift_compiler_flags = swift_compiler_flags,
extra_xcode_files = extra_xcode_files,
deps = deps,

View File

@ -1,4 +1,5 @@
load("//Config:utils.bzl", "config_with_updated_linker_flags", "configs_with_config")
load("//Config:app_configuration.bzl", "appConfig")
DEVELOPMENT_LANGUAGE = "en"
@ -94,6 +95,7 @@ def app_binary_configs(name):
"CODE_SIGN_ENTITLEMENTS": "Telegram-iOS.entitlements",
"DEVELOPMENT_TEAM": "X834Q8SBVP",
"PROVISIONING_PROFILE_SPECIFIER": "match Development org.telegram.Telegram-iOS",
"ASSETCATALOG_COMPILER_APPICON_NAME": "AppIcon",
}
binary_config = merge_dict(SHARED_CONFIGS, binary_specific_config)
binary_config = merge_dict(binary_config, optimization_config())
@ -116,7 +118,10 @@ def app_info_plist_substitutions(name):
"EXECUTABLE_NAME": name,
"PRODUCT_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS",
"PRODUCT_NAME": name,
"APP_NAME": name,
"CURRENT_PROJECT_VERSION": "1",
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
"APP_SPECIFIC_URL_SCHEME": appConfig()["appSpecificUrlScheme"],
"BUILD_NUMBER": appConfig()["buildNumber"],
}
return substitutions

View File

@ -1,17 +1,21 @@
.PHONY : build build_arm64 build_verbose targets project kill_xcode clean
BUCK_OPTIONS=--config custom.apiId="${TELEGRAM_API_ID}" --config custom.apiHash="${TELGRAM_API_HASH}" --config custom.hockeyAppId="${TELGRAM_HOCKEYAPP_ID}" --config custom.isInternalBuild="${TELEGRAM_IS_INTERNAL_BUILD}" --config custom.isAppStoreBuild="${TELEGRAM_IS_APPSTORE_BUILD}" --config custom.appStoreId="${TELEGRAM_APPSTORE_ID}" --config custom.appSpecificUrlScheme="${TELEGRAM_APP_SPECIFIC_URL_SCHEME}" --config custom.buildNumber="${TELEGRAM_BUILD_NUMBER}"
BUCK=/Users/peter/build/buck-next/buck/buck-out/gen/programs/buck.pex
build:
$(BUCK) build //App:AppPackage#iphoneos-arm64,iphoneos-armv7
sh package_app.sh $(BUCK) iphoneos-arm64,iphoneos-armv7
check_env:
sh check_env.sh
build_arm64:
$(BUCK) build //App:AppPackage#iphoneos-arm64
sh package_app.sh $(BUCK) iphoneos-arm64
build: check_env
$(BUCK) build //App:AppPackage#iphoneos-arm64,iphoneos-armv7 ${BUCK_OPTIONS}
sh package_app.sh $(BUCK) "${BUCK_OPTIONS}" iphoneos-arm64,iphoneos-armv7
build_verbose:
$(BUCK) build //App:AppPackage#iphoneos-armv7,iphoneos-arm64 --verbose 8
build_arm64: check_env
$(BUCK) build //App:AppPackage#iphoneos-arm64 ${BUCK_OPTIONS}
sh package_app.sh $(BUCK) "${BUCK_OPTIONS}" iphoneos-arm64
build_verbose: check_env
$(BUCK) build //App:AppPackage#iphoneos-armv7,iphoneos-arm64 --verbose 8 ${BUCK_OPTIONS}
targets:
$(BUCK) targets //...
@ -23,7 +27,6 @@ kill_xcode:
clean: kill_xcode
sh clean.sh
project: kill_xcode
$(BUCK) project //App:workspace --config custom.mode=project
open App/App.xcworkspace
project: check_env kill_xcode
$(BUCK) project //App:workspace --config custom.mode=project ${BUCK_OPTIONS}
open App/Telegram_Buck.xcworkspace

View File

@ -219,20 +219,20 @@
09EC5CDA22CBBF9600292E42 /* telegram_plane1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 09EC5CD922CBBF9600292E42 /* telegram_plane1@2x.png */; };
09FDAEE62140477F00BF856F /* MtProtoKitDynamic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09FDAEE52140477F00BF856F /* MtProtoKitDynamic.framework */; };
D000CACF21FB6E380011B15D /* NotificationService.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = D000CAC821FB6E370011B15D /* NotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
D001D5AA1F878DA300DF975A /* PhoneCountries.txt in Resources */ = {isa = PBXBuildFile; fileRef = D001D5A91F878DA300DF975A /* PhoneCountries.txt */; };
D008185022B5797A008A895F /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008184F22B5797A008A895F /* BuildConfig.framework */; };
D008185222B57986008A895F /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008185122B57986008A895F /* BuildConfig.framework */; };
D008185422B57994008A895F /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008185322B57994008A895F /* BuildConfig.framework */; };
D008185622B579A1008A895F /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008185522B579A1008A895F /* BuildConfig.framework */; };
D008185822B579AD008A895F /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008185722B579AD008A895F /* BuildConfig.framework */; };
D00818A522B58CCB008A895F /* WatchCommonWatch.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00818A422B58CCB008A895F /* WatchCommonWatch.framework */; };
D00859A91B28189D00EAF753 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D00859A81B28189D00EAF753 /* Images.xcassets */; };
D00859A91B28189D00EAF753 /* Icons.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D00859A81B28189D00EAF753 /* Icons.xcassets */; };
D00859AC1B28189D00EAF753 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = D00859AA1B28189D00EAF753 /* LaunchScreen.xib */; };
D00ED75A1FE94630001F38BD /* AppIntentVocabulary.plist in Resources */ = {isa = PBXBuildFile; fileRef = D00ED7581FE94630001F38BD /* AppIntentVocabulary.plist */; };
D00ED75D1FE95287001F38BD /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D00ED75B1FE95287001F38BD /* InfoPlist.strings */; };
D015E04D225D2D8F00CB9E8A /* WebP.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D015E04C225D2D8F00CB9E8A /* WebP.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
D015E050225D303F00CB9E8A /* WebP.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D015E04C225D2D8F00CB9E8A /* WebP.framework */; };
D015E051225D303F00CB9E8A /* WebP.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D015E04C225D2D8F00CB9E8A /* WebP.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
D01748C7231976B200AF3D3A /* LegacyComponentsResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D01748C6231976B100AF3D3A /* LegacyComponentsResources.bundle */; };
D021D4D9219CAEDD0064BEBA /* Config-Fork.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = D021D4D8219CAEDD0064BEBA /* Config-Fork.xcconfig */; };
D02CF5FD215D9ABF00E0F56A /* UserNotifications.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0AA1A671D568BA400152314 /* UserNotifications.framework */; };
D02CF5FE215D9ABF00E0F56A /* UserNotificationsUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0AA1A691D568BA400152314 /* UserNotificationsUI.framework */; };
@ -400,6 +400,94 @@
D0E8C2E02285EA6A009F26E8 /* BlackIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E8C2DF2285EA6A009F26E8 /* BlackIcon@3x.png */; };
D0ECCB7F1FE9C38500609802 /* Telegram_iOS_UITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ECCB7E1FE9C38500609802 /* Telegram_iOS_UITests.swift */; };
D0ECCB8A1FE9C4AC00609802 /* SnapshotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ECCB891FE9C4AC00609802 /* SnapshotHelper.swift */; };
D0EFF27C2319835B00CF5164 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF27B2319835A00CF5164 /* Images.xcassets */; };
D0EFF2D52319838800CF5164 /* PhoneCountries.txt in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF27D2319838400CF5164 /* PhoneCountries.txt */; };
D0EFF2D62319838800CF5164 /* currencies.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF27E2319838500CF5164 /* currencies.json */; };
D0EFF2D72319838800CF5164 /* Emoji.mapping in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF27F2319838500CF5164 /* Emoji.mapping */; };
D0EFF2D82319838800CF5164 /* lol.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2812319838500CF5164 /* lol.tgs */; };
D0EFF2D92319838800CF5164 /* thumbsup.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2822319838500CF5164 /* thumbsup.tgs */; };
D0EFF2DA2319838800CF5164 /* poker.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2832319838500CF5164 /* poker.tgs */; };
D0EFF2DB2319838800CF5164 /* cry.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2842319838500CF5164 /* cry.tgs */; };
D0EFF2DC2319838800CF5164 /* meh.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2852319838500CF5164 /* meh.tgs */; };
D0EFF2DD2319838800CF5164 /* sad.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2862319838500CF5164 /* sad.tgs */; };
D0EFF2DE2319838800CF5164 /* surprised.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2872319838500CF5164 /* surprised.tgs */; };
D0EFF2DF2319838800CF5164 /* ok.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2882319838500CF5164 /* ok.tgs */; };
D0EFF2E02319838800CF5164 /* heart.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2892319838500CF5164 /* heart.tgs */; };
D0EFF2E12319838800CF5164 /* poop.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF28A2319838500CF5164 /* poop.tgs */; };
D0EFF2E22319838800CF5164 /* celebrate.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF28B2319838600CF5164 /* celebrate.tgs */; };
D0EFF2E32319838800CF5164 /* smile.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF28C2319838600CF5164 /* smile.tgs */; };
D0EFF2E42319838800CF5164 /* ChatWallpaperBuiltin0.jpg in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF28D2319838600CF5164 /* ChatWallpaperBuiltin0.jpg */; };
D0EFF2E52319838800CF5164 /* stp_card_visa_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF28F2319838600CF5164 /* stp_card_visa_template@3x.png */; };
D0EFF2E62319838800CF5164 /* stp_card_form_back@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2902319838600CF5164 /* stp_card_form_back@3x.png */; };
D0EFF2E72319838800CF5164 /* stp_card_amex@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2912319838600CF5164 /* stp_card_amex@3x.png */; };
D0EFF2E82319838800CF5164 /* stp_card_diners@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2922319838600CF5164 /* stp_card_diners@2x.png */; };
D0EFF2E92319838800CF5164 /* stp_card_diners_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2932319838600CF5164 /* stp_card_diners_template@2x.png */; };
D0EFF2EA2319838800CF5164 /* stp_card_amex_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2942319838600CF5164 /* stp_card_amex_template@3x.png */; };
D0EFF2EB2319838800CF5164 /* stp_card_diners_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2952319838600CF5164 /* stp_card_diners_template@3x.png */; };
D0EFF2EC2319838800CF5164 /* stp_card_amex_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2962319838600CF5164 /* stp_card_amex_template@2x.png */; };
D0EFF2ED2319838800CF5164 /* stp_card_diners@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2972319838600CF5164 /* stp_card_diners@3x.png */; };
D0EFF2EE2319838800CF5164 /* stp_card_amex@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2982319838600CF5164 /* stp_card_amex@2x.png */; };
D0EFF2EF2319838800CF5164 /* stp_card_form_back@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2992319838600CF5164 /* stp_card_form_back@2x.png */; };
D0EFF2F02319838800CF5164 /* stp_card_visa_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF29A2319838600CF5164 /* stp_card_visa_template@2x.png */; };
D0EFF2F12319838800CF5164 /* stp_card_form_front@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF29B2319838600CF5164 /* stp_card_form_front@2x.png */; };
D0EFF2F22319838800CF5164 /* stp_card_applepay_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF29C2319838600CF5164 /* stp_card_applepay_template@2x.png */; };
D0EFF2F32319838800CF5164 /* stp_card_cvc_amex@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF29D2319838600CF5164 /* stp_card_cvc_amex@3x.png */; };
D0EFF2F42319838800CF5164 /* stp_card_discover@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF29E2319838600CF5164 /* stp_card_discover@3x.png */; };
D0EFF2F52319838800CF5164 /* stp_card_cvc@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF29F2319838600CF5164 /* stp_card_cvc@2x.png */; };
D0EFF2F62319838800CF5164 /* stp_card_jcb_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A02319838600CF5164 /* stp_card_jcb_template@3x.png */; };
D0EFF2F72319838800CF5164 /* stp_card_jcb@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A12319838600CF5164 /* stp_card_jcb@3x.png */; };
D0EFF2F82319838800CF5164 /* stp_card_jcb@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A22319838600CF5164 /* stp_card_jcb@2x.png */; };
D0EFF2F92319838800CF5164 /* stp_card_cvc@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A32319838600CF5164 /* stp_card_cvc@3x.png */; };
D0EFF2FA2319838800CF5164 /* stp_card_jcb_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A42319838600CF5164 /* stp_card_jcb_template@2x.png */; };
D0EFF2FB2319838800CF5164 /* stp_card_discover@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A52319838600CF5164 /* stp_card_discover@2x.png */; };
D0EFF2FC2319838800CF5164 /* stp_card_cvc_amex@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A62319838600CF5164 /* stp_card_cvc_amex@2x.png */; };
D0EFF2FD2319838800CF5164 /* stp_card_applepay_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A72319838600CF5164 /* stp_card_applepay_template@3x.png */; };
D0EFF2FE2319838800CF5164 /* stp_card_form_front@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A82319838600CF5164 /* stp_card_form_front@3x.png */; };
D0EFF2FF2319838800CF5164 /* stp_card_visa@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A92319838600CF5164 /* stp_card_visa@3x.png */; };
D0EFF3002319838800CF5164 /* stp_card_placeholder_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2AA2319838600CF5164 /* stp_card_placeholder_template@3x.png */; };
D0EFF3012319838800CF5164 /* stp_card_applepay@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2AB2319838600CF5164 /* stp_card_applepay@2x.png */; };
D0EFF3022319838800CF5164 /* stp_card_applepay@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2AC2319838600CF5164 /* stp_card_applepay@3x.png */; };
D0EFF3032319838800CF5164 /* stp_card_placeholder_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2AD2319838600CF5164 /* stp_card_placeholder_template@2x.png */; };
D0EFF3042319838800CF5164 /* stp_card_visa@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2AE2319838600CF5164 /* stp_card_visa@2x.png */; };
D0EFF3052319838800CF5164 /* stp_card_mastercard_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2AF2319838600CF5164 /* stp_card_mastercard_template@3x.png */; };
D0EFF3062319838800CF5164 /* stp_card_discover_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B02319838600CF5164 /* stp_card_discover_template@2x.png */; };
D0EFF3072319838800CF5164 /* stp_card_form_applepay@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B12319838600CF5164 /* stp_card_form_applepay@3x.png */; };
D0EFF3082319838800CF5164 /* stp_card_mastercard@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B22319838600CF5164 /* stp_card_mastercard@2x.png */; };
D0EFF3092319838800CF5164 /* stp_card_mastercard@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B32319838600CF5164 /* stp_card_mastercard@3x.png */; };
D0EFF30A2319838800CF5164 /* stp_card_discover_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B42319838600CF5164 /* stp_card_discover_template@3x.png */; };
D0EFF30B2319838800CF5164 /* stp_card_form_applepay@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B52319838600CF5164 /* stp_card_form_applepay@2x.png */; };
D0EFF30C2319838800CF5164 /* stp_card_mastercard_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B62319838600CF5164 /* stp_card_mastercard_template@2x.png */; };
D0EFF30D2319838800CF5164 /* anim_read.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B82319838700CF5164 /* anim_read.json */; };
D0EFF30E2319838800CF5164 /* anim_archive.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B92319838700CF5164 /* anim_archive.json */; };
D0EFF30F2319838800CF5164 /* anim_pin.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2BA2319838700CF5164 /* anim_pin.json */; };
D0EFF3102319838800CF5164 /* anim_infotip.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2BB2319838700CF5164 /* anim_infotip.json */; };
D0EFF3112319838800CF5164 /* anim_unmute.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2BC2319838700CF5164 /* anim_unmute.json */; };
D0EFF3122319838800CF5164 /* anim_unpin.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2BD2319838700CF5164 /* anim_unpin.json */; };
D0EFF3132319838800CF5164 /* anim_success.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2BE2319838700CF5164 /* anim_success.json */; };
D0EFF3142319838800CF5164 /* anim_unread.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2BF2319838700CF5164 /* anim_unread.json */; };
D0EFF3152319838800CF5164 /* anim_archiveswipe.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C02319838700CF5164 /* anim_archiveswipe.json */; };
D0EFF3162319838800CF5164 /* anim_delete.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C12319838700CF5164 /* anim_delete.json */; };
D0EFF3172319838800CF5164 /* anim_archiveAvatar.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C22319838700CF5164 /* anim_archiveAvatar.json */; };
D0EFF3182319838800CF5164 /* anim_unarchive.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C32319838700CF5164 /* anim_unarchive.json */; };
D0EFF3192319838800CF5164 /* anim_ungroup.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C42319838700CF5164 /* anim_ungroup.json */; };
D0EFF31A2319838800CF5164 /* anim_hide.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C52319838700CF5164 /* anim_hide.json */; };
D0EFF31B2319838800CF5164 /* anim_group.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C62319838700CF5164 /* anim_group.json */; };
D0EFF31C2319838800CF5164 /* anim_mute.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C72319838700CF5164 /* anim_mute.json */; };
D0EFF31D2319838800CF5164 /* PresentationStrings.mapping in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C82319838700CF5164 /* PresentationStrings.mapping */; };
D0EFF31E2319838800CF5164 /* VimeoUserScript.js in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2CA2319838700CF5164 /* VimeoUserScript.js */; };
D0EFF31F2319838800CF5164 /* TwitchUserScript.js in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2CB2319838700CF5164 /* TwitchUserScript.js */; };
D0EFF3202319838800CF5164 /* Youtube.html in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2CC2319838700CF5164 /* Youtube.html */; };
D0EFF3212319838800CF5164 /* Twitch.html in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2CD2319838700CF5164 /* Twitch.html */; };
D0EFF3222319838800CF5164 /* Vimeo.html in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2CE2319838700CF5164 /* Vimeo.html */; };
D0EFF3232319838800CF5164 /* Instagram.html in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2CF2319838700CF5164 /* Instagram.html */; };
D0EFF3242319838800CF5164 /* Generic.html in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2D02319838700CF5164 /* Generic.html */; };
D0EFF3252319838800CF5164 /* GenericUserScript.js in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2D12319838700CF5164 /* GenericUserScript.js */; };
D0EFF3262319838800CF5164 /* YoutubeUserScript.js in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2D22319838700CF5164 /* YoutubeUserScript.js */; };
D0EFF3272319838800CF5164 /* SFCompactRounded-Semibold.otf in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2D42319838700CF5164 /* SFCompactRounded-Semibold.otf */; };
D0EFF32B231983BF00CF5164 /* MessageSent.caf in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF329231983BF00CF5164 /* MessageSent.caf */; };
D0EFF32C231983BF00CF5164 /* notification.caf in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF32A231983BF00CF5164 /* notification.caf */; };
D0EFF33023198D3200CF5164 /* NavigationBackArrowLight@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF32E23198D3200CF5164 /* NavigationBackArrowLight@2x.png */; };
D0EFF33123198D3200CF5164 /* NavigationShadow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF32F23198D3200CF5164 /* NavigationShadow@2x.png */; };
D0F575132083B96B00F1C1E1 /* CloudKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0F575122083B96B00F1C1E1 /* CloudKit.framework */; };
D0FC1948201D2DA800FEDBB2 /* SFCompactRounded-Semibold.otf in Resources */ = {isa = PBXBuildFile; fileRef = D0FC1947201D2DA700FEDBB2 /* SFCompactRounded-Semibold.otf */; };
/* End PBXBuildFile section */
@ -881,7 +969,6 @@
D000CAC221FB6E170011B15D /* NotificationService-AppStore.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "NotificationService-AppStore.entitlements"; sourceTree = "<group>"; };
D000CAC321FB6E170011B15D /* NotificationService-AppStoreLLC.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "NotificationService-AppStoreLLC.entitlements"; sourceTree = "<group>"; };
D000CAC821FB6E370011B15D /* NotificationService.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = NotificationService.appex; sourceTree = BUILT_PRODUCTS_DIR; };
D001D5A91F878DA300DF975A /* PhoneCountries.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PhoneCountries.txt; path = "Telegram-iOS/Resources/PhoneCountries.txt"; sourceTree = "<group>"; };
D006CFA121A8D12600FDCD32 /* ModernProto.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ModernProto.framework; path = "../../../Library/Developer/Xcode/DerivedData/Telegram-iOS-ffbqcdyqpehxdvcwhyaorlehrrdc/Build/Products/Debug Hockeyapp-iphoneos/ModernProto.framework"; sourceTree = "<group>"; };
D008184B22B578EC008A895F /* WatchCommon.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WatchCommon.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D008184D22B5796E008A895F /* BuildConfig.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = BuildConfig.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@ -895,13 +982,14 @@
D00818CE22B595DB008A895F /* LightweightAccountData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LightweightAccountData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D008599C1B28189D00EAF753 /* Telegram.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Telegram.app; sourceTree = BUILT_PRODUCTS_DIR; };
D00859A01B28189D00EAF753 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
D00859A81B28189D00EAF753 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
D00859A81B28189D00EAF753 /* Icons.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Icons.xcassets; sourceTree = "<group>"; };
D00859AB1B28189D00EAF753 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
D00859B61B28189D00EAF753 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
D00859B71B28189D00EAF753 /* Telegram_iOSTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Telegram_iOSTests.swift; sourceTree = "<group>"; };
D00ED7591FE94630001F38BD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = en; path = en.lproj/AppIntentVocabulary.plist; sourceTree = "<group>"; };
D00ED75C1FE95287001F38BD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
D015E04C225D2D8F00CB9E8A /* WebP.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WebP.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D01748C6231976B100AF3D3A /* LegacyComponentsResources.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = LegacyComponentsResources.bundle; path = submodules/LegacyComponents/LegacyComponents/Resources/LegacyComponentsResources.bundle; sourceTree = "<group>"; };
D01A47521F4DBEB100383CC1 /* libHockeySDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libHockeySDK.a; path = "../../build/HockeySDK-iOS/Support/build/Debug-iphoneos/libHockeySDK.a"; sourceTree = "<group>"; };
D01A47541F4DBED700383CC1 /* HockeySDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = HockeySDK.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D021D4D7219CAEDD0064BEBA /* Telegram-iOS-Fork.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "Telegram-iOS-Fork.entitlements"; sourceTree = "<group>"; };
@ -1129,6 +1217,94 @@
D0ECCB801FE9C38500609802 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
D0ECCB891FE9C4AC00609802 /* SnapshotHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SnapshotHelper.swift; sourceTree = "<group>"; };
D0ED633C21FF3F28001D4648 /* NotificationService-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NotificationService-Bridging-Header.h"; sourceTree = "<group>"; };
D0EFF27B2319835A00CF5164 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = submodules/TelegramUI/Images.xcassets; sourceTree = "<group>"; };
D0EFF27D2319838400CF5164 /* PhoneCountries.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PhoneCountries.txt; path = submodules/TelegramUI/TelegramUI/Resources/PhoneCountries.txt; sourceTree = "<group>"; };
D0EFF27E2319838500CF5164 /* currencies.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = currencies.json; path = submodules/TelegramUI/TelegramUI/Resources/currencies.json; sourceTree = "<group>"; };
D0EFF27F2319838500CF5164 /* Emoji.mapping */ = {isa = PBXFileReference; lastKnownFileType = file; name = Emoji.mapping; path = submodules/TelegramUI/TelegramUI/Resources/Emoji.mapping; sourceTree = "<group>"; };
D0EFF2812319838500CF5164 /* lol.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = lol.tgs; sourceTree = "<group>"; };
D0EFF2822319838500CF5164 /* thumbsup.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = thumbsup.tgs; sourceTree = "<group>"; };
D0EFF2832319838500CF5164 /* poker.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = poker.tgs; sourceTree = "<group>"; };
D0EFF2842319838500CF5164 /* cry.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = cry.tgs; sourceTree = "<group>"; };
D0EFF2852319838500CF5164 /* meh.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = meh.tgs; sourceTree = "<group>"; };
D0EFF2862319838500CF5164 /* sad.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = sad.tgs; sourceTree = "<group>"; };
D0EFF2872319838500CF5164 /* surprised.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = surprised.tgs; sourceTree = "<group>"; };
D0EFF2882319838500CF5164 /* ok.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = ok.tgs; sourceTree = "<group>"; };
D0EFF2892319838500CF5164 /* heart.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = heart.tgs; sourceTree = "<group>"; };
D0EFF28A2319838500CF5164 /* poop.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = poop.tgs; sourceTree = "<group>"; };
D0EFF28B2319838600CF5164 /* celebrate.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = celebrate.tgs; sourceTree = "<group>"; };
D0EFF28C2319838600CF5164 /* smile.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = smile.tgs; sourceTree = "<group>"; };
D0EFF28D2319838600CF5164 /* ChatWallpaperBuiltin0.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = ChatWallpaperBuiltin0.jpg; path = submodules/TelegramUI/TelegramUI/Resources/ChatWallpaperBuiltin0.jpg; sourceTree = "<group>"; };
D0EFF28F2319838600CF5164 /* stp_card_visa_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_visa_template@3x.png"; sourceTree = "<group>"; };
D0EFF2902319838600CF5164 /* stp_card_form_back@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_back@3x.png"; sourceTree = "<group>"; };
D0EFF2912319838600CF5164 /* stp_card_amex@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_amex@3x.png"; sourceTree = "<group>"; };
D0EFF2922319838600CF5164 /* stp_card_diners@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_diners@2x.png"; sourceTree = "<group>"; };
D0EFF2932319838600CF5164 /* stp_card_diners_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_diners_template@2x.png"; sourceTree = "<group>"; };
D0EFF2942319838600CF5164 /* stp_card_amex_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_amex_template@3x.png"; sourceTree = "<group>"; };
D0EFF2952319838600CF5164 /* stp_card_diners_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_diners_template@3x.png"; sourceTree = "<group>"; };
D0EFF2962319838600CF5164 /* stp_card_amex_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_amex_template@2x.png"; sourceTree = "<group>"; };
D0EFF2972319838600CF5164 /* stp_card_diners@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_diners@3x.png"; sourceTree = "<group>"; };
D0EFF2982319838600CF5164 /* stp_card_amex@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_amex@2x.png"; sourceTree = "<group>"; };
D0EFF2992319838600CF5164 /* stp_card_form_back@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_back@2x.png"; sourceTree = "<group>"; };
D0EFF29A2319838600CF5164 /* stp_card_visa_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_visa_template@2x.png"; sourceTree = "<group>"; };
D0EFF29B2319838600CF5164 /* stp_card_form_front@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_front@2x.png"; sourceTree = "<group>"; };
D0EFF29C2319838600CF5164 /* stp_card_applepay_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_applepay_template@2x.png"; sourceTree = "<group>"; };
D0EFF29D2319838600CF5164 /* stp_card_cvc_amex@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_cvc_amex@3x.png"; sourceTree = "<group>"; };
D0EFF29E2319838600CF5164 /* stp_card_discover@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_discover@3x.png"; sourceTree = "<group>"; };
D0EFF29F2319838600CF5164 /* stp_card_cvc@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_cvc@2x.png"; sourceTree = "<group>"; };
D0EFF2A02319838600CF5164 /* stp_card_jcb_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_jcb_template@3x.png"; sourceTree = "<group>"; };
D0EFF2A12319838600CF5164 /* stp_card_jcb@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_jcb@3x.png"; sourceTree = "<group>"; };
D0EFF2A22319838600CF5164 /* stp_card_jcb@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_jcb@2x.png"; sourceTree = "<group>"; };
D0EFF2A32319838600CF5164 /* stp_card_cvc@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_cvc@3x.png"; sourceTree = "<group>"; };
D0EFF2A42319838600CF5164 /* stp_card_jcb_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_jcb_template@2x.png"; sourceTree = "<group>"; };
D0EFF2A52319838600CF5164 /* stp_card_discover@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_discover@2x.png"; sourceTree = "<group>"; };
D0EFF2A62319838600CF5164 /* stp_card_cvc_amex@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_cvc_amex@2x.png"; sourceTree = "<group>"; };
D0EFF2A72319838600CF5164 /* stp_card_applepay_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_applepay_template@3x.png"; sourceTree = "<group>"; };
D0EFF2A82319838600CF5164 /* stp_card_form_front@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_front@3x.png"; sourceTree = "<group>"; };
D0EFF2A92319838600CF5164 /* stp_card_visa@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_visa@3x.png"; sourceTree = "<group>"; };
D0EFF2AA2319838600CF5164 /* stp_card_placeholder_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_placeholder_template@3x.png"; sourceTree = "<group>"; };
D0EFF2AB2319838600CF5164 /* stp_card_applepay@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_applepay@2x.png"; sourceTree = "<group>"; };
D0EFF2AC2319838600CF5164 /* stp_card_applepay@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_applepay@3x.png"; sourceTree = "<group>"; };
D0EFF2AD2319838600CF5164 /* stp_card_placeholder_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_placeholder_template@2x.png"; sourceTree = "<group>"; };
D0EFF2AE2319838600CF5164 /* stp_card_visa@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_visa@2x.png"; sourceTree = "<group>"; };
D0EFF2AF2319838600CF5164 /* stp_card_mastercard_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_mastercard_template@3x.png"; sourceTree = "<group>"; };
D0EFF2B02319838600CF5164 /* stp_card_discover_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_discover_template@2x.png"; sourceTree = "<group>"; };
D0EFF2B12319838600CF5164 /* stp_card_form_applepay@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_applepay@3x.png"; sourceTree = "<group>"; };
D0EFF2B22319838600CF5164 /* stp_card_mastercard@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_mastercard@2x.png"; sourceTree = "<group>"; };
D0EFF2B32319838600CF5164 /* stp_card_mastercard@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_mastercard@3x.png"; sourceTree = "<group>"; };
D0EFF2B42319838600CF5164 /* stp_card_discover_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_discover_template@3x.png"; sourceTree = "<group>"; };
D0EFF2B52319838600CF5164 /* stp_card_form_applepay@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_applepay@2x.png"; sourceTree = "<group>"; };
D0EFF2B62319838600CF5164 /* stp_card_mastercard_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_mastercard_template@2x.png"; sourceTree = "<group>"; };
D0EFF2B82319838700CF5164 /* anim_read.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_read.json; sourceTree = "<group>"; };
D0EFF2B92319838700CF5164 /* anim_archive.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_archive.json; sourceTree = "<group>"; };
D0EFF2BA2319838700CF5164 /* anim_pin.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_pin.json; sourceTree = "<group>"; };
D0EFF2BB2319838700CF5164 /* anim_infotip.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_infotip.json; sourceTree = "<group>"; };
D0EFF2BC2319838700CF5164 /* anim_unmute.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unmute.json; sourceTree = "<group>"; };
D0EFF2BD2319838700CF5164 /* anim_unpin.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unpin.json; sourceTree = "<group>"; };
D0EFF2BE2319838700CF5164 /* anim_success.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_success.json; sourceTree = "<group>"; };
D0EFF2BF2319838700CF5164 /* anim_unread.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unread.json; sourceTree = "<group>"; };
D0EFF2C02319838700CF5164 /* anim_archiveswipe.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_archiveswipe.json; sourceTree = "<group>"; };
D0EFF2C12319838700CF5164 /* anim_delete.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_delete.json; sourceTree = "<group>"; };
D0EFF2C22319838700CF5164 /* anim_archiveAvatar.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_archiveAvatar.json; sourceTree = "<group>"; };
D0EFF2C32319838700CF5164 /* anim_unarchive.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unarchive.json; sourceTree = "<group>"; };
D0EFF2C42319838700CF5164 /* anim_ungroup.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_ungroup.json; sourceTree = "<group>"; };
D0EFF2C52319838700CF5164 /* anim_hide.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_hide.json; sourceTree = "<group>"; };
D0EFF2C62319838700CF5164 /* anim_group.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_group.json; sourceTree = "<group>"; };
D0EFF2C72319838700CF5164 /* anim_mute.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_mute.json; sourceTree = "<group>"; };
D0EFF2C82319838700CF5164 /* PresentationStrings.mapping */ = {isa = PBXFileReference; lastKnownFileType = file; name = PresentationStrings.mapping; path = submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping; sourceTree = "<group>"; };
D0EFF2CA2319838700CF5164 /* VimeoUserScript.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = VimeoUserScript.js; sourceTree = "<group>"; };
D0EFF2CB2319838700CF5164 /* TwitchUserScript.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = TwitchUserScript.js; sourceTree = "<group>"; };
D0EFF2CC2319838700CF5164 /* Youtube.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Youtube.html; sourceTree = "<group>"; };
D0EFF2CD2319838700CF5164 /* Twitch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Twitch.html; sourceTree = "<group>"; };
D0EFF2CE2319838700CF5164 /* Vimeo.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Vimeo.html; sourceTree = "<group>"; };
D0EFF2CF2319838700CF5164 /* Instagram.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Instagram.html; sourceTree = "<group>"; };
D0EFF2D02319838700CF5164 /* Generic.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Generic.html; sourceTree = "<group>"; };
D0EFF2D12319838700CF5164 /* GenericUserScript.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = GenericUserScript.js; sourceTree = "<group>"; };
D0EFF2D22319838700CF5164 /* YoutubeUserScript.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = YoutubeUserScript.js; sourceTree = "<group>"; };
D0EFF2D42319838700CF5164 /* SFCompactRounded-Semibold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SFCompactRounded-Semibold.otf"; sourceTree = "<group>"; };
D0EFF329231983BF00CF5164 /* MessageSent.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = MessageSent.caf; sourceTree = "<group>"; };
D0EFF32A231983BF00CF5164 /* notification.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = notification.caf; sourceTree = "<group>"; };
D0EFF32E23198D3200CF5164 /* NavigationBackArrowLight@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "NavigationBackArrowLight@2x.png"; path = "Telegram-iOS/Resources/NavigationBackArrowLight@2x.png"; sourceTree = "<group>"; };
D0EFF32F23198D3200CF5164 /* NavigationShadow@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "NavigationShadow@2x.png"; path = "Telegram-iOS/Resources/NavigationShadow@2x.png"; sourceTree = "<group>"; };
D0F575122083B96B00F1C1E1 /* CloudKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CloudKit.framework; path = System/Library/Frameworks/CloudKit.framework; sourceTree = SDKROOT; };
D0FC1947201D2DA700FEDBB2 /* SFCompactRounded-Semibold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "SFCompactRounded-Semibold.otf"; path = "Telegram-iOS/Resources/SFCompactRounded-Semibold.otf"; sourceTree = "<group>"; };
/* End PBXFileReference section */
@ -1951,7 +2127,7 @@
D079FD001F06BBD10038FADE /* Telegram-iOS-AppStore.entitlements */,
D0E3A7071B285B5000A402D9 /* Telegram-iOS-Hockeyapp.entitlements */,
D021D4D7219CAEDD0064BEBA /* Telegram-iOS-Fork.entitlements */,
D00859A81B28189D00EAF753 /* Images.xcassets */,
D00859A81B28189D00EAF753 /* Icons.xcassets */,
D00859AA1B28189D00EAF753 /* LaunchScreen.xib */,
D008599F1B28189D00EAF753 /* Supporting Files */,
);
@ -2085,6 +2261,21 @@
D023EBB31DDB2F0E00BD496D /* Resources */ = {
isa = PBXGroup;
children = (
D0EFF32E23198D3200CF5164 /* NavigationBackArrowLight@2x.png */,
D0EFF32F23198D3200CF5164 /* NavigationShadow@2x.png */,
D0EFF328231983BF00CF5164 /* Sounds */,
D0EFF2B72319838700CF5164 /* Animations */,
D0EFF2802319838500CF5164 /* BuiltinReactions */,
D0EFF28D2319838600CF5164 /* ChatWallpaperBuiltin0.jpg */,
D0EFF27E2319838500CF5164 /* currencies.json */,
D0EFF27F2319838500CF5164 /* Emoji.mapping */,
D0EFF2D32319838700CF5164 /* Fonts */,
D0EFF27D2319838400CF5164 /* PhoneCountries.txt */,
D0EFF2C82319838700CF5164 /* PresentationStrings.mapping */,
D0EFF28E2319838600CF5164 /* Stripe */,
D0EFF2C92319838700CF5164 /* WebEmbed */,
D0EFF27B2319835A00CF5164 /* Images.xcassets */,
D01748C6231976B100AF3D3A /* LegacyComponentsResources.bundle */,
D0E8B8AC2044496C00605593 /* voip_busy.caf */,
D0E8B8A82044496B00605593 /* voip_connecting.mp3 */,
D0E8B8A92044496C00605593 /* voip_end.caf */,
@ -2092,7 +2283,6 @@
D0E8B8AB2044496C00605593 /* voip_ringback.caf */,
D0FC1947201D2DA700FEDBB2 /* SFCompactRounded-Semibold.otf */,
D0CFBB921FD88C2900B65C0D /* begin_record.caf */,
D001D5A91F878DA300DF975A /* PhoneCountries.txt */,
D04DCC0A1F71C80000B021D7 /* notifications */,
D050F21B1E49DEDE00988324 /* intro */,
);
@ -2480,6 +2670,134 @@
path = "Telegram-iOS UITests";
sourceTree = "<group>";
};
D0EFF2802319838500CF5164 /* BuiltinReactions */ = {
isa = PBXGroup;
children = (
D0EFF2812319838500CF5164 /* lol.tgs */,
D0EFF2822319838500CF5164 /* thumbsup.tgs */,
D0EFF2832319838500CF5164 /* poker.tgs */,
D0EFF2842319838500CF5164 /* cry.tgs */,
D0EFF2852319838500CF5164 /* meh.tgs */,
D0EFF2862319838500CF5164 /* sad.tgs */,
D0EFF2872319838500CF5164 /* surprised.tgs */,
D0EFF2882319838500CF5164 /* ok.tgs */,
D0EFF2892319838500CF5164 /* heart.tgs */,
D0EFF28A2319838500CF5164 /* poop.tgs */,
D0EFF28B2319838600CF5164 /* celebrate.tgs */,
D0EFF28C2319838600CF5164 /* smile.tgs */,
);
name = BuiltinReactions;
path = submodules/TelegramUI/TelegramUI/Resources/BuiltinReactions;
sourceTree = "<group>";
};
D0EFF28E2319838600CF5164 /* Stripe */ = {
isa = PBXGroup;
children = (
D0EFF28F2319838600CF5164 /* stp_card_visa_template@3x.png */,
D0EFF2902319838600CF5164 /* stp_card_form_back@3x.png */,
D0EFF2912319838600CF5164 /* stp_card_amex@3x.png */,
D0EFF2922319838600CF5164 /* stp_card_diners@2x.png */,
D0EFF2932319838600CF5164 /* stp_card_diners_template@2x.png */,
D0EFF2942319838600CF5164 /* stp_card_amex_template@3x.png */,
D0EFF2952319838600CF5164 /* stp_card_diners_template@3x.png */,
D0EFF2962319838600CF5164 /* stp_card_amex_template@2x.png */,
D0EFF2972319838600CF5164 /* stp_card_diners@3x.png */,
D0EFF2982319838600CF5164 /* stp_card_amex@2x.png */,
D0EFF2992319838600CF5164 /* stp_card_form_back@2x.png */,
D0EFF29A2319838600CF5164 /* stp_card_visa_template@2x.png */,
D0EFF29B2319838600CF5164 /* stp_card_form_front@2x.png */,
D0EFF29C2319838600CF5164 /* stp_card_applepay_template@2x.png */,
D0EFF29D2319838600CF5164 /* stp_card_cvc_amex@3x.png */,
D0EFF29E2319838600CF5164 /* stp_card_discover@3x.png */,
D0EFF29F2319838600CF5164 /* stp_card_cvc@2x.png */,
D0EFF2A02319838600CF5164 /* stp_card_jcb_template@3x.png */,
D0EFF2A12319838600CF5164 /* stp_card_jcb@3x.png */,
D0EFF2A22319838600CF5164 /* stp_card_jcb@2x.png */,
D0EFF2A32319838600CF5164 /* stp_card_cvc@3x.png */,
D0EFF2A42319838600CF5164 /* stp_card_jcb_template@2x.png */,
D0EFF2A52319838600CF5164 /* stp_card_discover@2x.png */,
D0EFF2A62319838600CF5164 /* stp_card_cvc_amex@2x.png */,
D0EFF2A72319838600CF5164 /* stp_card_applepay_template@3x.png */,
D0EFF2A82319838600CF5164 /* stp_card_form_front@3x.png */,
D0EFF2A92319838600CF5164 /* stp_card_visa@3x.png */,
D0EFF2AA2319838600CF5164 /* stp_card_placeholder_template@3x.png */,
D0EFF2AB2319838600CF5164 /* stp_card_applepay@2x.png */,
D0EFF2AC2319838600CF5164 /* stp_card_applepay@3x.png */,
D0EFF2AD2319838600CF5164 /* stp_card_placeholder_template@2x.png */,
D0EFF2AE2319838600CF5164 /* stp_card_visa@2x.png */,
D0EFF2AF2319838600CF5164 /* stp_card_mastercard_template@3x.png */,
D0EFF2B02319838600CF5164 /* stp_card_discover_template@2x.png */,
D0EFF2B12319838600CF5164 /* stp_card_form_applepay@3x.png */,
D0EFF2B22319838600CF5164 /* stp_card_mastercard@2x.png */,
D0EFF2B32319838600CF5164 /* stp_card_mastercard@3x.png */,
D0EFF2B42319838600CF5164 /* stp_card_discover_template@3x.png */,
D0EFF2B52319838600CF5164 /* stp_card_form_applepay@2x.png */,
D0EFF2B62319838600CF5164 /* stp_card_mastercard_template@2x.png */,
);
name = Stripe;
path = submodules/TelegramUI/TelegramUI/Resources/Stripe;
sourceTree = "<group>";
};
D0EFF2B72319838700CF5164 /* Animations */ = {
isa = PBXGroup;
children = (
D0EFF2B82319838700CF5164 /* anim_read.json */,
D0EFF2B92319838700CF5164 /* anim_archive.json */,
D0EFF2BA2319838700CF5164 /* anim_pin.json */,
D0EFF2BB2319838700CF5164 /* anim_infotip.json */,
D0EFF2BC2319838700CF5164 /* anim_unmute.json */,
D0EFF2BD2319838700CF5164 /* anim_unpin.json */,
D0EFF2BE2319838700CF5164 /* anim_success.json */,
D0EFF2BF2319838700CF5164 /* anim_unread.json */,
D0EFF2C02319838700CF5164 /* anim_archiveswipe.json */,
D0EFF2C12319838700CF5164 /* anim_delete.json */,
D0EFF2C22319838700CF5164 /* anim_archiveAvatar.json */,
D0EFF2C32319838700CF5164 /* anim_unarchive.json */,
D0EFF2C42319838700CF5164 /* anim_ungroup.json */,
D0EFF2C52319838700CF5164 /* anim_hide.json */,
D0EFF2C62319838700CF5164 /* anim_group.json */,
D0EFF2C72319838700CF5164 /* anim_mute.json */,
);
name = Animations;
path = submodules/TelegramUI/TelegramUI/Resources/Animations;
sourceTree = "<group>";
};
D0EFF2C92319838700CF5164 /* WebEmbed */ = {
isa = PBXGroup;
children = (
D0EFF2CA2319838700CF5164 /* VimeoUserScript.js */,
D0EFF2CB2319838700CF5164 /* TwitchUserScript.js */,
D0EFF2CC2319838700CF5164 /* Youtube.html */,
D0EFF2CD2319838700CF5164 /* Twitch.html */,
D0EFF2CE2319838700CF5164 /* Vimeo.html */,
D0EFF2CF2319838700CF5164 /* Instagram.html */,
D0EFF2D02319838700CF5164 /* Generic.html */,
D0EFF2D12319838700CF5164 /* GenericUserScript.js */,
D0EFF2D22319838700CF5164 /* YoutubeUserScript.js */,
);
name = WebEmbed;
path = submodules/TelegramUI/TelegramUI/Resources/WebEmbed;
sourceTree = "<group>";
};
D0EFF2D32319838700CF5164 /* Fonts */ = {
isa = PBXGroup;
children = (
D0EFF2D42319838700CF5164 /* SFCompactRounded-Semibold.otf */,
);
name = Fonts;
path = submodules/TelegramUI/TelegramUI/Resources/Fonts;
sourceTree = "<group>";
};
D0EFF328231983BF00CF5164 /* Sounds */ = {
isa = PBXGroup;
children = (
D0EFF329231983BF00CF5164 /* MessageSent.caf */,
D0EFF32A231983BF00CF5164 /* notification.caf */,
);
name = Sounds;
path = submodules/TelegramUI/TelegramUI/Sounds;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@ -2827,21 +3145,32 @@
buildActionMask = 2147483647;
files = (
D0CE6F6B213EDA4400BCD44B /* InfoPlist.strings in Resources */,
D0EFF2E02319838800CF5164 /* heart.tgs in Resources */,
D08DB0AC213F4D1D00F2ADBF /* ic_bubble_dot@2x.png in Resources */,
D08DB0B0213F4D1D00F2ADBF /* ic_pin@2x.png in Resources */,
D04DCC211F71C80000B021D7 /* 0.m4a in Resources */,
D04DCC261F71C80000B021D7 /* 103.m4a in Resources */,
09A218F222A1570A00DE6898 /* BlueFilledIcon@2x.png in Resources */,
D0EFF2EC2319838800CF5164 /* stp_card_amex_template@2x.png in Resources */,
D0EFF30B2319838800CF5164 /* stp_card_form_applepay@2x.png in Resources */,
D0EFF2F52319838800CF5164 /* stp_card_cvc@2x.png in Resources */,
09E9600922C23FF200B13673 /* BlueNotificationIcon.png in Resources */,
D0EFF30F2319838800CF5164 /* anim_pin.json in Resources */,
090E777722A6945900CD99F5 /* BlueClassicIcon@2x.png in Resources */,
D0CE6F69213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */,
D08DB0C0213F4D1D00F2ADBF /* telegram_sphere@2x.png in Resources */,
D0EFF3062319838800CF5164 /* stp_card_discover_template@2x.png in Resources */,
D08DB0AB213F4D1D00F2ADBF /* ic_bubble@2x.png in Resources */,
D0EFF32C231983BF00CF5164 /* notification.caf in Resources */,
D04DCC341F71C80000B021D7 /* 7.m4a in Resources */,
09E9600722C23FF200B13673 /* BlackNotificationIcon@3x.png in Resources */,
09EBE2A522B004EA00F670AB /* BlueFilledIconIpad.png in Resources */,
094DDF5C22E8C310004B0256 /* AppIntentVocabulary.plist in Resources */,
094DDF3C22E7A98E004B0256 /* Localizable.strings in Resources */,
D0EFF2F62319838800CF5164 /* stp_card_jcb_template@3x.png in Resources */,
D0EFF2D92319838800CF5164 /* thumbsup.tgs in Resources */,
D0EFF3022319838800CF5164 /* stp_card_applepay@3x.png in Resources */,
D0EFF2E62319838800CF5164 /* stp_card_form_back@3x.png in Resources */,
094DDF3422E7A61B004B0256 /* AppIntentVocabulary.plist in Resources */,
D0CE6F60213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */,
D0CE6F63213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */,
@ -2855,21 +3184,40 @@
D0CE6F68213EDA4400BCD44B /* InfoPlist.strings in Resources */,
09A218EE22A1570A00DE6898 /* BlueFilledIcon@3x.png in Resources */,
09E9600C22C23FF200B13673 /* BlueNotificationIcon@3x.png in Resources */,
D0EFF2FE2319838800CF5164 /* stp_card_form_front@3x.png in Resources */,
09E9601422C2441000B13673 /* BlackClassicNotificationIcon@3x.png in Resources */,
D0CE6F6A213EDA4400BCD44B /* Localizable.strings in Resources */,
D0EFF3132319838800CF5164 /* anim_success.json in Resources */,
D0EFF3212319838800CF5164 /* Twitch.html in Resources */,
D0EFF2FF2319838800CF5164 /* stp_card_visa@3x.png in Resources */,
D0EFF2F02319838800CF5164 /* stp_card_visa_template@2x.png in Resources */,
09A4193522B7A4D500637EB4 /* BlackClassicIconIpad@2x.png in Resources */,
D0EFF3122319838800CF5164 /* anim_unpin.json in Resources */,
D0EFF3112319838800CF5164 /* anim_unmute.json in Resources */,
D0EFF2E32319838800CF5164 /* smile.tgs in Resources */,
D0EFF3142319838800CF5164 /* anim_unread.json in Resources */,
09E9601622C2441000B13673 /* BlueClassicNotificationIcon@2x.png in Resources */,
D0EFF2D52319838800CF5164 /* PhoneCountries.txt in Resources */,
09E9601322C2441000B13673 /* BlackClassicNotificationIcon@2x.png in Resources */,
D0EFF3052319838800CF5164 /* stp_card_mastercard_template@3x.png in Resources */,
D0E8C2DE2285EA55009F26E8 /* BlackIcon@2x.png in Resources */,
D0EFF3272319838800CF5164 /* SFCompactRounded-Semibold.otf in Resources */,
D09DCBB71D0C856B00F51FFE /* Localizable.strings in Resources */,
094DDF5722E8C310004B0256 /* Localizable.strings in Resources */,
D0EFF2E92319838800CF5164 /* stp_card_diners_template@2x.png in Resources */,
D0CE6F66213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */,
D0EFF2E72319838800CF5164 /* stp_card_amex@3x.png in Resources */,
D08DB0B8213F4D1D00F2ADBF /* powerful_mask@2x.png in Resources */,
D08DB0B4213F4D1D00F2ADBF /* knot_down@2x.png in Resources */,
D0EFF2DB2319838800CF5164 /* cry.tgs in Resources */,
D0EFF2F72319838800CF5164 /* stp_card_jcb@3x.png in Resources */,
094DDF4822E7A9A8004B0256 /* AppIntentVocabulary.plist in Resources */,
09EC5CDA22CBBF9600292E42 /* telegram_plane1@2x.png in Resources */,
D0EFF3082319838800CF5164 /* stp_card_mastercard@2x.png in Resources */,
D08DB0BC213F4D1D00F2ADBF /* start_arrow@2x.png in Resources */,
D0EFF2FB2319838800CF5164 /* stp_card_discover@2x.png in Resources */,
D08DB0B6213F4D1D00F2ADBF /* powerful_infinity@2x.png in Resources */,
D0EFF3042319838800CF5164 /* stp_card_visa@2x.png in Resources */,
094DDF5B22E8C310004B0256 /* InfoPlist.strings in Resources */,
09EBE2AA22B004EA00F670AB /* BlueIconLargeIpad@2x.png in Resources */,
D0CE6F5B213EDA4400BCD44B /* Localizable.strings in Resources */,
@ -2877,10 +3225,13 @@
094DDF5922E8C310004B0256 /* AppIntentVocabulary.plist in Resources */,
09A4193422B7A4D500637EB4 /* BlackClassicIconIpad.png in Resources */,
094DDF4622E7A9A8004B0256 /* Localizable.strings in Resources */,
D0EFF27C2319835B00CF5164 /* Images.xcassets in Resources */,
09A4193222B7A4D500637EB4 /* BlueClassicIconIpad.png in Resources */,
D0EFF2D82319838800CF5164 /* lol.tgs in Resources */,
D0CE6F62213EDA4400BCD44B /* InfoPlist.strings in Resources */,
D08DB0A8213F4D1D00F2ADBF /* fast_arrow_shadow@2x.png in Resources */,
D0CFBB931FD88C2900B65C0D /* begin_record.caf in Resources */,
D0EFF3002319838800CF5164 /* stp_card_placeholder_template@3x.png in Resources */,
D04DCC2C1F71C80000B021D7 /* 109.m4a in Resources */,
D08DB0BD213F4D1D00F2ADBF /* start_arrow_ipad.png in Resources */,
09EBE2AB22B004EA00F670AB /* BlackIconLargeIpad@2x.png in Resources */,
@ -2888,92 +3239,147 @@
D0CE6F64213EDA4400BCD44B /* Localizable.strings in Resources */,
D0CE6F6C213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */,
094DDF3E22E7A98E004B0256 /* AppIntentVocabulary.plist in Resources */,
D0EFF3252319838800CF5164 /* GenericUserScript.js in Resources */,
094DDF3D22E7A98E004B0256 /* InfoPlist.strings in Resources */,
D04DCC231F71C80000B021D7 /* 100.m4a in Resources */,
D0EFF2EF2319838800CF5164 /* stp_card_form_back@2x.png in Resources */,
D0EFF33123198D3200CF5164 /* NavigationShadow@2x.png in Resources */,
D0EFF31D2319838800CF5164 /* PresentationStrings.mapping in Resources */,
D0EFF2EE2319838800CF5164 /* stp_card_amex@2x.png in Resources */,
09E9600A22C23FF200B13673 /* BlueNotificationIcon@2x.png in Resources */,
094DDF3222E7A61B004B0256 /* Localizable.strings in Resources */,
09A218EF22A1570A00DE6898 /* BlueIcon@2x.png in Resources */,
D04DCC281F71C80000B021D7 /* 105.m4a in Resources */,
D0EFF32B231983BF00CF5164 /* MessageSent.caf in Resources */,
D08DB0BB213F4D1D00F2ADBF /* private_screw@2x.png in Resources */,
D0CE6F5F213EDA4400BCD44B /* InfoPlist.strings in Resources */,
D0EFF2EA2319838800CF5164 /* stp_card_amex_template@3x.png in Resources */,
D04DCC2D1F71C80000B021D7 /* 110.m4a in Resources */,
094DDF5A22E8C310004B0256 /* Localizable.strings in Resources */,
D0EFF2DF2319838800CF5164 /* ok.tgs in Resources */,
D04DCC2B1F71C80000B021D7 /* 108.m4a in Resources */,
D00859AC1B28189D00EAF753 /* LaunchScreen.xib in Resources */,
D08DB0B5213F4D1D00F2ADBF /* knot_up1@2x.png in Resources */,
D0E8B8AD2044496C00605593 /* voip_connecting.mp3 in Resources */,
D0EFF31F2319838800CF5164 /* TwitchUserScript.js in Resources */,
D0EFF2F42319838800CF5164 /* stp_card_discover@3x.png in Resources */,
D08DB0BE213F4D1D00F2ADBF /* start_arrow_ipad@2x.png in Resources */,
D08DB0A9213F4D1D00F2ADBF /* fast_body@2x.png in Resources */,
D04DCC321F71C80000B021D7 /* 5.m4a in Resources */,
D04DCC241F71C80000B021D7 /* 101.m4a in Resources */,
09A4193122B7A4D500637EB4 /* BlackClassicIconLargeIpad@2x.png in Resources */,
D0EFF3262319838800CF5164 /* YoutubeUserScript.js in Resources */,
D0EFF2E42319838800CF5164 /* ChatWallpaperBuiltin0.jpg in Resources */,
D04DCC351F71C80000B021D7 /* 8.m4a in Resources */,
D0EFF3182319838800CF5164 /* anim_unarchive.json in Resources */,
D0EFF2DA2319838800CF5164 /* poker.tgs in Resources */,
D08DB0B1213F4D1D00F2ADBF /* ic_smile@2x.png in Resources */,
D0EFF3102319838800CF5164 /* anim_infotip.json in Resources */,
D0EFF2DC2319838800CF5164 /* meh.tgs in Resources */,
09EBE2A722B004EA00F670AB /* BlueIconIpad.png in Resources */,
D0EFF33023198D3200CF5164 /* NavigationBackArrowLight@2x.png in Resources */,
D0CE6F57213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */,
D0EFF2FD2319838800CF5164 /* stp_card_applepay_template@3x.png in Resources */,
D0CE6F59213EDA4400BCD44B /* InfoPlist.strings in Resources */,
D08DB0B9213F4D1D00F2ADBF /* powerful_star@2x.png in Resources */,
D04DCC271F71C80000B021D7 /* 104.m4a in Resources */,
09E9600B22C23FF200B13673 /* BlackNotificationIcon@2x.png in Resources */,
090E777522A6945900CD99F5 /* BlueClassicIcon@3x.png in Resources */,
D0EFF2F92319838800CF5164 /* stp_card_cvc@3x.png in Resources */,
D0EFF2FA2319838800CF5164 /* stp_card_jcb_template@2x.png in Resources */,
D0EFF2F12319838800CF5164 /* stp_card_form_front@2x.png in Resources */,
09A218F122A1570A00DE6898 /* BlackFilledIcon@3x.png in Resources */,
D04DCC2A1F71C80000B021D7 /* 107.m4a in Resources */,
D08DB0BA213F4D1D00F2ADBF /* private_door@2x.png in Resources */,
D0EFF2E52319838800CF5164 /* stp_card_visa_template@3x.png in Resources */,
09A218F022A1570A00DE6898 /* BlackFilledIcon@2x.png in Resources */,
D0EFF30C2319838800CF5164 /* stp_card_mastercard_template@2x.png in Resources */,
D08DB0AE213F4D1D00F2ADBF /* ic_cam_lens@2x.png in Resources */,
D0EFF3192319838800CF5164 /* anim_ungroup.json in Resources */,
D0EFF30D2319838800CF5164 /* anim_read.json in Resources */,
D0EFF2D72319838800CF5164 /* Emoji.mapping in Resources */,
D0EFF3202319838800CF5164 /* Youtube.html in Resources */,
09A218F322A1570A00DE6898 /* BlueIcon@3x.png in Resources */,
D0EFF2F32319838800CF5164 /* stp_card_cvc_amex@3x.png in Resources */,
D0EFF2D62319838800CF5164 /* currencies.json in Resources */,
D04DCC2F1F71C80000B021D7 /* 2.m4a in Resources */,
D0EFF2DE2319838800CF5164 /* surprised.tgs in Resources */,
09EBE2AC22B004EA00F670AB /* BlackIconIpad.png in Resources */,
D0EFF2E12319838800CF5164 /* poop.tgs in Resources */,
D0EFF31B2319838800CF5164 /* anim_group.json in Resources */,
09EBE2B022B004EA00F670AB /* BlueFilledIconLargeIpad@2x.png in Resources */,
D0EFF3222319838800CF5164 /* Vimeo.html in Resources */,
D0EFF2E22319838800CF5164 /* celebrate.tgs in Resources */,
D0CE6F58213EDA4400BCD44B /* Localizable.strings in Resources */,
D08DB0AF213F4D1D00F2ADBF /* ic_pencil@2x.png in Resources */,
094DDF5822E8C310004B0256 /* InfoPlist.strings in Resources */,
D0EFF2DD2319838800CF5164 /* sad.tgs in Resources */,
09E9601822C2441000B13673 /* BlueClassicNotificationIcon@3x.png in Resources */,
D01748C7231976B200AF3D3A /* LegacyComponentsResources.bundle in Resources */,
D0CE6F67213EDA4400BCD44B /* Localizable.strings in Resources */,
D0EFF3242319838800CF5164 /* Generic.html in Resources */,
09A4193322B7A4D500637EB4 /* BlueClassicIconLargeIpad@2x.png in Resources */,
D04DCC291F71C80000B021D7 /* 106.m4a in Resources */,
D0CE6F5E213EDA4400BCD44B /* Localizable.strings in Resources */,
D052974622B0073F004ABAF6 /* WhiteFilledIcon@3x.png in Resources */,
D08DB0B7213F4D1D00F2ADBF /* powerful_infinity_white@2x.png in Resources */,
D00859A91B28189D00EAF753 /* Images.xcassets in Resources */,
D00859A91B28189D00EAF753 /* Icons.xcassets in Resources */,
094DDF0922E7A0D3004B0256 /* InfoPlist.strings in Resources */,
D001D5AA1F878DA300DF975A /* PhoneCountries.txt in Resources */,
D0EFF3172319838800CF5164 /* anim_archiveAvatar.json in Resources */,
D0EFF3092319838800CF5164 /* stp_card_mastercard@3x.png in Resources */,
D0EFF2F22319838800CF5164 /* stp_card_applepay_template@2x.png in Resources */,
094DDF0822E7A0D3004B0256 /* Localizable.strings in Resources */,
094DDF4722E7A9A8004B0256 /* InfoPlist.strings in Resources */,
D0CE6F56213EDA4400BCD44B /* InfoPlist.strings in Resources */,
D0CE6F65213EDA4400BCD44B /* InfoPlist.strings in Resources */,
D0EFF31E2319838800CF5164 /* VimeoUserScript.js in Resources */,
D0E8B8B12044496C00605593 /* voip_busy.caf in Resources */,
D0EFF3072319838800CF5164 /* stp_card_form_applepay@3x.png in Resources */,
D0EFF3152319838800CF5164 /* anim_archiveswipe.json in Resources */,
D0EFF3032319838800CF5164 /* stp_card_placeholder_template@2x.png in Resources */,
09EBE2A622B004EA00F670AB /* BlueIconIpad@2x.png in Resources */,
D08DB0A7213F4D1D00F2ADBF /* fast_arrow@2x.png in Resources */,
094DDF0A22E7A0D3004B0256 /* AppIntentVocabulary.plist in Resources */,
D0E8B8AF2044496C00605593 /* voip_fail.caf in Resources */,
D0CE6F55213EDA4400BCD44B /* Localizable.strings in Resources */,
D0EFF2E82319838800CF5164 /* stp_card_diners@2x.png in Resources */,
D08DB0B2213F4D1D00F2ADBF /* ic_smile_eye@2x.png in Resources */,
D08DB0B3213F4D1D00F2ADBF /* ic_videocam@2x.png in Resources */,
D04DCC2E1F71C80000B021D7 /* 111.m4a in Resources */,
D08DB0AA213F4D1D00F2ADBF /* fast_spiral@2x.png in Resources */,
D0EFF2EB2319838800CF5164 /* stp_card_diners_template@3x.png in Resources */,
D0CE6F5C213EDA4400BCD44B /* InfoPlist.strings in Resources */,
D052974722B0073F004ABAF6 /* WhiteFilledIcon@2x.png in Resources */,
D0CE6F5D213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */,
D0CE6F61213EDA4400BCD44B /* Localizable.strings in Resources */,
D04DCC311F71C80000B021D7 /* 4.m4a in Resources */,
D0FC1948201D2DA800FEDBB2 /* SFCompactRounded-Semibold.otf in Resources */,
D0EFF31C2319838800CF5164 /* anim_mute.json in Resources */,
D04DCC331F71C80000B021D7 /* 6.m4a in Resources */,
D04DCC251F71C80000B021D7 /* 102.m4a in Resources */,
09EBE2A822B004EA00F670AB /* BlackFilledIconIpad@2x.png in Resources */,
D021D4D9219CAEDD0064BEBA /* Config-Fork.xcconfig in Resources */,
D0EFF31A2319838800CF5164 /* anim_hide.json in Resources */,
D08DB0AD213F4D1D00F2ADBF /* ic_cam@2x.png in Resources */,
D0EFF3232319838800CF5164 /* Instagram.html in Resources */,
D0EFF30E2319838800CF5164 /* anim_archive.json in Resources */,
094DDF3322E7A61B004B0256 /* InfoPlist.strings in Resources */,
090E777622A6945900CD99F5 /* BlackClassicIcon@3x.png in Resources */,
D0E8B8B02044496C00605593 /* voip_ringback.caf in Resources */,
09E9600822C23FF200B13673 /* BlackNotificationIcon.png in Resources */,
D0EFF2ED2319838800CF5164 /* stp_card_diners@3x.png in Resources */,
D0EFF2F82319838800CF5164 /* stp_card_jcb@2x.png in Resources */,
D0EFF3012319838800CF5164 /* stp_card_applepay@2x.png in Resources */,
09EBE2A922B004EA00F670AB /* BlackFilledIconLargeIpad@2x.png in Resources */,
D0EFF30A2319838800CF5164 /* stp_card_discover_template@3x.png in Resources */,
090E777422A6945900CD99F5 /* BlackClassicIcon@2x.png in Resources */,
D0EFF2FC2319838800CF5164 /* stp_card_cvc_amex@2x.png in Resources */,
D00ED75A1FE94630001F38BD /* AppIntentVocabulary.plist in Resources */,
D04DCC221F71C80000B021D7 /* 1.m4a in Resources */,
09EBE2AD22B004EA00F670AB /* BlackFilledIconIpad.png in Resources */,
09E9601522C2441000B13673 /* BlueClassicNotificationIcon.png in Resources */,
D0E8C2E02285EA6A009F26E8 /* BlackIcon@3x.png in Resources */,
D0EFF3162319838800CF5164 /* anim_delete.json in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

View File

@ -60,6 +60,9 @@
<Group
location = "container:"
name = "Utils">
<FileRef
location = "group:submodules/AppBundle/AppBundle_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/AccountContext/AccountContext_Xcode.xcodeproj">
</FileRef>
@ -177,7 +180,7 @@
location = "container:"
name = "Image Processing">
<FileRef
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/YuvConversion/YuvConversion_Xcode.xcodeproj">
location = "group:submodules/YuvConversion/YuvConversion_Xcode.xcodeproj">
</FileRef>
<FileRef
location = "group:submodules/ImageBlur/ImageBlur_Xcode.xcodeproj">

View File

Before

Width:  |  Height:  |  Size: 370 KiB

After

Width:  |  Height:  |  Size: 370 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,232 +0,0 @@
1876;JM;Jamaica
1869;KN;Saint Kitts & Nevis
1868;TT;Trinidad & Tobago
1784;VC;Saint Vincent & the Grenadines
1767;DM;Dominica
1758;LC;Saint Lucia
1721;SX;Sint Maarten
1684;AS;American Samoa
1671;GU;Guam
1670;MP;Northern Mariana Islands
1664;MS;Montserrat
1649;TC;Turks & Caicos Islands
1473;GD;Grenada
1441;BM;Bermuda
1345;KY;Cayman Islands
1340;VI;US Virgin Islands
1284;VG;British Virgin Islands
1268;AG;Antigua & Barbuda
1264;AI;Anguilla
1246;BB;Barbados
1242;BS;Bahamas
998;UZ;Uzbekistan
996;KG;Kyrgyzstan
995;GE;Georgia
994;AZ;Azerbaijan
993;TM;Turkmenistan
992;TJ;Tajikistan
977;NP;Nepal
976;MN;Mongolia
975;BT;Bhutan
974;QA;Qatar
973;BH;Bahrain
972;IL;Israel
971;AE;United Arab Emirates
970;PS;Palestine
968;OM;Oman
967;YE;Yemen
966;SA;Saudi Arabia
965;KW;Kuwait
964;IQ;Iraq
963;SY;Syrian Arab Republic
962;JO;Jordan
961;LB;Lebanon
960;MV;Maldives
886;TW;Taiwan
880;BD;Bangladesh
856;LA;Laos
855;KH;Cambodia
853;MO;Macau
852;HK;Hong Kong
850;KP;North Korea
692;MH;Marshall Islands
691;FM;Micronesia
690;TK;Tokelau
689;PF;French Polynesia
688;TV;Tuvalu
687;NC;New Caledonia
686;KI;Kiribati
685;WS;Samoa
683;NU;Niue
682;CK;Cook Islands
681;WF;Wallis & Futuna
680;PW;Palau
679;FJ;Fiji
678;VU;Vanuatu
677;SB;Solomon Islands
676;TO;Tonga
675;PG;Papua New Guinea
674;NR;Nauru
673;BN;Brunei Darussalam
672;NF;Norfolk Island
670;TL;Timor-Leste
599;BQ;Bonaire, Sint Eustatius & Saba
599;CW;Curaçao
598;UY;Uruguay
597;SR;Suriname
596;MQ;Martinique
595;PY;Paraguay
594;GF;French Guiana
593;EC;Ecuador
592;GY;Guyana
591;BO;Bolivia
590;GP;Guadeloupe
509;HT;Haiti
508;PM;Saint Pierre & Miquelon
507;PA;Panama
506;CR;Costa Rica
505;NI;Nicaragua
504;HN;Honduras
503;SV;El Salvador
502;GT;Guatemala
501;BZ;Belize
500;FK;Falkland Islands
423;LI;Liechtenstein
421;SK;Slovakia
420;CZ;Czech Republic
383;XK;Kosovo
389;MK;Macedonia
387;BA;Bosnia & Herzegovina
386;SI;Slovenia
385;HR;Croatia
382;ME;Montenegro
381;RS;Serbia
380;UA;Ukraine
378;SM;San Marino
377;MC;Monaco
376;AD;Andorra
375;BY;Belarus
374;AM;Armenia
373;MD;Moldova
372;EE;Estonia
371;LV;Latvia
370;LT;Lithuania
359;BG;Bulgaria
358;FI;Finland
357;CY;Cyprus
356;MT;Malta
355;AL;Albania
354;IS;Iceland
353;IE;Ireland
352;LU;Luxembourg
351;PT;Portugal
350;GI;Gibraltar
299;GL;Greenland
298;FO;Faroe Islands
297;AW;Aruba
291;ER;Eritrea
290;SH;Saint Helena
269;KM;Comoros
268;SZ;Swaziland
267;BW;Botswana
266;LS;Lesotho
265;MW;Malawi
264;NA;Namibia
263;ZW;Zimbabwe
262;RE;Réunion
261;MG;Madagascar
260;ZM;Zambia
258;MZ;Mozambique
257;BI;Burundi
256;UG;Uganda
255;TZ;Tanzania
254;KE;Kenya
253;DJ;Djibouti
252;SO;Somalia
251;ET;Ethiopia
250;RW;Rwanda
249;SD;Sudan
248;SC;Seychelles
247;SH;Saint Helena
246;IO;Diego Garcia
245;GW;Guinea-Bissau
244;AO;Angola
243;CD;Congo (Dem. Rep.)
242;CG;Congo (Rep.)
241;GA;Gabon
240;GQ;Equatorial Guinea
239;ST;São Tomé & Príncipe
238;CV;Cape Verde
237;CM;Cameroon
236;CF;Central African Rep.
235;TD;Chad
234;NG;Nigeria
233;GH;Ghana
232;SL;Sierra Leone
231;LR;Liberia
230;MU;Mauritius
229;BJ;Benin
228;TG;Togo
227;NE;Niger
226;BF;Burkina Faso
225;CI;Côte d`Ivoire
224;GN;Guinea
223;ML;Mali
222;MR;Mauritania
221;SN;Senegal
220;GM;Gambia
218;LY;Libya
216;TN;Tunisia
213;DZ;Algeria
212;MA;Morocco
211;SS;South Sudan
98;IR;Iran
95;MM;Myanmar
94;LK;Sri Lanka
93;AF;Afghanistan
92;PK;Pakistan
91;IN;India
90;TR;Turkey
86;CN;China
84;VN;Vietnam
82;KR;South Korea
81;JP;Japan
66;TH;Thailand
65;SG;Singapore
64;NZ;New Zealand
63;PH;Philippines
62;ID;Indonesia
61;AU;Australia
60;MY;Malaysia
58;VE;Venezuela
57;CO;Colombia
56;CL;Chile
55;BR;Brazil
54;AR;Argentina
53;CU;Cuba
52;MX;Mexico
51;PE;Peru
49;DE;Germany
48;PL;Poland
47;NO;Norway
46;SE;Sweden
45;DK;Denmark
44;GB;United Kingdom
43;AT;Austria
41;CH;Switzerland
40;RO;Romania
39;IT;Italy
36;HU;Hungary
34;ES;Spain
33;FR;France
32;BE;Belgium
31;NL;Netherlands
30;GR;Greece
27;ZA;South Africa
20;EG;Egypt
7;RU;Russian Federation
7;KZ;Kazakhstan
1;US;USA
1;PR;Puerto Rico
1;DO;Dominican Rep.
1;CA;Canada

6
check_env.sh Normal file
View File

@ -0,0 +1,6 @@
#!/bin/bash
if [ -z "$TELEGRAM_ENV_SET" ]; then
echo "Error: Telegram build environment is not set up. Use sh public.sh make ${command}"
exit 1
fi

View File

View File

@ -1,14 +1,16 @@
#!/bin/sh
set -x
set -e
if [ -z "$1" ] || [ -z "$2" ]; then
echo "Usage: sh package_app.sh path/to/buck platform-flavors"
exit 1
fi
PLATFORM_FLAVORS="$2"
BUCK="$1"
BUCK_OPTIONS="$2"
PLATFORM_FLAVORS="$3"
BUILD_PATH="build"
APP_NAME="Telegram"
@ -26,19 +28,19 @@ mkdir -p "$DSYMS_DIR"
cp "buck-out/gen/App/AppPackage#$PLATFORM_FLAVORS.ipa" "$IPA_PATH.original"
rm -rf "$IPA_PATH.original.unpacked"
rm "$BUILD_PATH/${APP_NAME}_signed.ipa"
rm -f "$BUILD_PATH/${APP_NAME}_signed.ipa"
mkdir -p "$IPA_PATH.original.unpacked"
unzip "$IPA_PATH.original" -d "$IPA_PATH.original.unpacked/"
rm "$IPA_PATH.original"
UNPACKED_PATH="$IPA_PATH.original.unpacked"
APP_PATH="$UNPACKED_PATH/Payload/App.app"
APP_PATH="$UNPACKED_PATH/Payload/Telegram.app"
FRAMEWORKS_DIR="$APP_PATH/Frameworks"
rm -rf "$IPA_PATH.original.unpacked/SwiftSupport/iphoneos/"*
rm -rf "$FRAMEWORKS_DIR"/*
for DEPENDENCY in $($BUCK query "kind('apple_library|apple_binary', deps('//App:App#$PLATFORM_FLAVORS', 1))"); do
for DEPENDENCY in $(${BUCK} query "kind('apple_library|apple_binary', deps('//App:Telegram#$PLATFORM_FLAVORS', 1))" ${BUCK_OPTIONS}); do
case "$DEPENDENCY" in
*"#"*)
;;
@ -49,8 +51,10 @@ for DEPENDENCY in $($BUCK query "kind('apple_library|apple_binary', deps('//App:
DEPENDENCY_PATH=$(echo "$DEPENDENCY" | sed -e "s#^//##" | sed -e "s#:#/#")
DEPENDENCY_NAME=$(echo "$DEPENDENCY" | sed -e "s/#.*//" | sed -e "s/^.*\://")
DYLIB_PATH="buck-out/gen/$DEPENDENCY_PATH/lib$DEPENDENCY_NAME.dylib"
TARGET_DYLIB_PATH="$FRAMEWORKS_DIR/lib$DEPENDENCY_NAME.dylib"
cp "$DYLIB_PATH" "$TARGET_DYLIB_PATH"
if [ -f "$DYLIB_PATH" ]; then
TARGET_DYLIB_PATH="$FRAMEWORKS_DIR/lib$DEPENDENCY_NAME.dylib"
cp "$DYLIB_PATH" "$TARGET_DYLIB_PATH"
fi
DSYM_PATH="buck-out/gen/$(echo "$DEPENDENCY" | sed -e "s/#/#apple-dsym,/" | sed -e "s#^//##" | sed -e "s#:#/#").dSYM"
cp -f -r "$DSYM_PATH" "$DSYMS_DIR/"
done
@ -59,7 +63,7 @@ for LIB in $(ls "$FRAMEWORKS_DIR"/*.dylib); do
strip -S -T "$LIB"
done
xcrun swift-stdlib-tool --scan-folder "$IPA_PATH.original.unpacked/Payload/App.app" --scan-folder "$IPA_PATH.original.unpacked/Payload/App.app/Frameworks" --strip-bitcode --platform iphoneos --copy --destination "$IPA_PATH.original.unpacked/SwiftSupport/iphoneos"
xcrun swift-stdlib-tool --scan-folder "$IPA_PATH.original.unpacked/Payload/Telegram.app" --scan-folder "$IPA_PATH.original.unpacked/Payload/Telegram.app/Frameworks" --strip-bitcode --platform iphoneos --copy --destination "$IPA_PATH.original.unpacked/SwiftSupport/iphoneos"
for LIB in $(ls "$IPA_PATH.original.unpacked/SwiftSupport/iphoneos/"*.dylib); do
codesign --remove-signature "$LIB"

View File

@ -288,6 +288,17 @@
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
</dict>
<key>1DD70E297819F1E000000000</key>
<dict>
<key>isa</key>
<string>PBXFileReference</string>
<key>name</key>
<string>ThemeUpdateManager.swift</string>
<key>path</key>
<string>Sources/ThemeUpdateManager.swift</string>
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
</dict>
<key>1DD70E29A055C05700000000</key>
<dict>
<key>isa</key>
@ -355,6 +366,7 @@
<string>1DD70E29BEA4BC8700000000</string>
<string>1DD70E29A82E88C500000000</string>
<string>1DD70E290F2FA2FD00000000</string>
<string>1DD70E297819F1E000000000</string>
<string>1DD70E29A055C05700000000</string>
<string>1DD70E29900C6ACF00000000</string>
<string>1DD70E29CEBFB42300000000</string>
@ -873,6 +885,13 @@
<key>fileRef</key>
<string>1DD70E290F2FA2FD00000000</string>
</dict>
<key>E7A30F047819F1E000000000</key>
<dict>
<key>isa</key>
<string>PBXBuildFile</string>
<key>fileRef</key>
<string>1DD70E297819F1E000000000</string>
</dict>
<key>E7A30F04A055C05700000000</key>
<dict>
<key>isa</key>
@ -924,6 +943,7 @@
<string>E7A30F04BEA4BC8700000000</string>
<string>E7A30F04A82E88C500000000</string>
<string>E7A30F040F2FA2FD00000000</string>
<string>E7A30F047819F1E000000000</string>
<string>E7A30F04A055C05700000000</string>
<string>E7A30F04900C6ACF00000000</string>
<string>E7A30F04CEBFB42300000000</string>

View File

@ -68,17 +68,6 @@
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
</dict>
<key>1DD70E291289FAA500000000</key>
<dict>
<key>isa</key>
<string>PBXFileReference</string>
<key>name</key>
<string>FrameworkBundle.swift</string>
<key>path</key>
<string>Sources/FrameworkBundle.swift</string>
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
</dict>
<key>1DD70E2968DC800500000000</key>
<dict>
<key>isa</key>
@ -104,7 +93,6 @@
<string>1DD70E29F846183C00000000</string>
<string>1DD70E29D847F9AB00000000</string>
<string>1DD70E291FD1D5AC00000000</string>
<string>1DD70E291289FAA500000000</string>
<string>1DD70E2968DC800500000000</string>
</array>
</dict>
@ -397,13 +385,6 @@
<key>fileRef</key>
<string>1DD70E291FD1D5AC00000000</string>
</dict>
<key>E7A30F041289FAA500000000</key>
<dict>
<key>isa</key>
<string>PBXBuildFile</string>
<key>fileRef</key>
<string>1DD70E291289FAA500000000</string>
</dict>
<key>E7A30F0468DC800500000000</key>
<dict>
<key>isa</key>
@ -421,7 +402,6 @@
<string>E7A30F04F846183C00000000</string>
<string>E7A30F04D847F9AB00000000</string>
<string>E7A30F041FD1D5AC00000000</string>
<string>E7A30F041289FAA500000000</string>
<string>E7A30F0468DC800500000000</string>
</array>
</dict>

View File

@ -29,7 +29,7 @@
D06018A922F361F900796784 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D06018A822F361F800796784 /* UIKit.framework */; };
D06018AB22F361FC00796784 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D06018AA22F361FC00796784 /* AsyncDisplayKit.framework */; };
D06018AD22F361FF00796784 /* Lottie.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D06018AC22F361FF00796784 /* Lottie.framework */; };
D06018AF22F3641F00796784 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06018AE22F3641F00796784 /* FrameworkBundle.swift */; };
D0EFF2442319802E00CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF2432319802E00CF5164 /* AppBundle.framework */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
@ -57,7 +57,7 @@
D06018A822F361F800796784 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
D06018AA22F361FC00796784 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D06018AC22F361FF00796784 /* Lottie.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Lottie.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D06018AE22F3641F00796784 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = "<group>"; };
D0EFF2432319802E00CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -65,6 +65,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D0EFF2442319802E00CF5164 /* AppBundle.framework in Frameworks */,
D03E3E8E2304B6EC0049C28B /* YuvConversion.framework in Frameworks */,
D03E3E642304B5640049C28B /* MobileCoreServices.framework in Frameworks */,
D03E3E622304B55F0049C28B /* SwiftSignalKit.framework in Frameworks */,
@ -114,7 +115,6 @@
D03E3E4E2304B50A0049C28B /* AnimatedStickerUtils.swift */,
D06018A322F361E800796784 /* AnimationNode.swift */,
D060186F22F35FCD00796784 /* AnimationUI.h */,
D06018AE22F3641F00796784 /* FrameworkBundle.swift */,
);
path = Sources;
sourceTree = "<group>";
@ -122,6 +122,7 @@
D06018A522F361F400796784 /* Frameworks */ = {
isa = PBXGroup;
children = (
D0EFF2432319802E00CF5164 /* AppBundle.framework */,
D03E3E8D2304B6EC0049C28B /* YuvConversion.framework */,
D03E3E632304B5640049C28B /* MobileCoreServices.framework */,
D03E3E612304B55F0049C28B /* SwiftSignalKit.framework */,
@ -224,7 +225,6 @@
files = (
D03E3E672304B61A0049C28B /* AnimationRenderer.swift in Sources */,
D03E3E4F2304B50A0049C28B /* AnimatedStickerNode.swift in Sources */,
D06018AF22F3641F00796784 /* FrameworkBundle.swift in Sources */,
D03E3E502304B50A0049C28B /* AnimatedStickerUtils.swift in Sources */,
D03E3E682304B61A0049C28B /* SoftwareAnimationRenderer.swift in Sources */,
D06018A422F361E800796784 /* AnimationNode.swift in Sources */,

View File

@ -18,6 +18,7 @@ static_library(
"//submodules/GZip:GZip",
"//submodules/RLottie:RLottie",
"//submodules/lottie-ios:Lottie",
"//submodules/AppBundle:AppBundle",
],
frameworks = [
"$SDKROOT/System/Library/Frameworks/Foundation.framework",

View File

@ -2,6 +2,7 @@ import Foundation
import UIKit
import AsyncDisplayKit
import Lottie
import AppBundle
public final class AnimationNode : ASDisplayNode {
private let scale: CGFloat
@ -24,8 +25,8 @@ public final class AnimationNode : ASDisplayNode {
super.init()
self.setViewBlock({
if let animation = animation, let url = frameworkBundle.url(forResource: animation, withExtension: "json"), let composition = LOTComposition(filePath: url.path) {
let view = LOTAnimationView(model: composition, in: frameworkBundle)
if let animation = animation, let url = getAppBundle().url(forResource: animation, withExtension: "json"), let composition = LOTComposition(filePath: url.path) {
let view = LOTAnimationView(model: composition, in: getAppBundle())
view.animationSpeed = self.speed
view.backgroundColor = .clear
view.isOpaque = false
@ -48,7 +49,7 @@ public final class AnimationNode : ASDisplayNode {
}
public func setAnimation(name: String) {
if let url = frameworkBundle.url(forResource: name, withExtension: "json"), let composition = LOTComposition(filePath: url.path) {
if let url = getAppBundle().url(forResource: name, withExtension: "json"), let composition = LOTComposition(filePath: url.path) {
self.animationView()?.sceneModel = composition
}
}

View File

@ -1,6 +0,0 @@
import Foundation
private class FrameworkBundleClass: NSObject {
}
let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self)

View File

@ -0,0 +1,343 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>archiveVersion</key>
<string>1</string>
<key>classes</key>
<dict>
</dict>
<key>objectVersion</key>
<string>46</string>
<key>objects</key>
<dict>
<key>1DD70E29001F47FB00000000</key>
<dict>
<key>isa</key>
<string>PBXFileReference</string>
<key>name</key>
<string>BUCK</string>
<key>path</key>
<string>BUCK</string>
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
<key>explicitFileType</key>
<string>text.script.python</string>
</dict>
<key>1DD70E2942D2F31D00000000</key>
<dict>
<key>isa</key>
<string>PBXFileReference</string>
<key>name</key>
<string>AppBundle.h</string>
<key>path</key>
<string>Sources/AppBundle.h</string>
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
<key>lastKnownFileType</key>
<string>sourcecode.c.h</string>
</dict>
<key>1DD70E2942D2F32200000000</key>
<dict>
<key>isa</key>
<string>PBXFileReference</string>
<key>name</key>
<string>AppBundle.m</string>
<key>path</key>
<string>Sources/AppBundle.m</string>
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
<key>lastKnownFileType</key>
<string>sourcecode.c.objc</string>
</dict>
<key>B401C979EAB5339800000000</key>
<dict>
<key>isa</key>
<string>PBXGroup</string>
<key>name</key>
<string>Sources</string>
<key>sourceTree</key>
<string><![CDATA[<group>]]></string>
<key>children</key>
<array>
<string>1DD70E2942D2F31D00000000</string>
<string>1DD70E2942D2F32200000000</string>
</array>
</dict>
<key>B401C979B3E1D9E300000000</key>
<dict>
<key>isa</key>
<string>PBXGroup</string>
<key>name</key>
<string>AppBundle</string>
<key>sourceTree</key>
<string><![CDATA[<group>]]></string>
<key>children</key>
<array>
<string>1DD70E29001F47FB00000000</string>
<string>B401C979EAB5339800000000</string>
</array>
</dict>
<key>1DD70E293DCA7C7200000000</key>
<dict>
<key>isa</key>
<string>PBXFileReference</string>
<key>name</key>
<string>AppBundle-Debug.xcconfig</string>
<key>path</key>
<string>../../buck-out/gen/submodules/AppBundle/AppBundle-Debug.xcconfig</string>
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
<key>explicitFileType</key>
<string>text.xcconfig</string>
</dict>
<key>1DD70E29DA3FBF5C00000000</key>
<dict>
<key>isa</key>
<string>PBXFileReference</string>
<key>name</key>
<string>AppBundle-Profile.xcconfig</string>
<key>path</key>
<string>../../buck-out/gen/submodules/AppBundle/AppBundle-Profile.xcconfig</string>
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
<key>explicitFileType</key>
<string>text.xcconfig</string>
</dict>
<key>1DD70E294DD66ABE00000000</key>
<dict>
<key>isa</key>
<string>PBXFileReference</string>
<key>name</key>
<string>AppBundle-Release.xcconfig</string>
<key>path</key>
<string>../../buck-out/gen/submodules/AppBundle/AppBundle-Release.xcconfig</string>
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
<key>explicitFileType</key>
<string>text.xcconfig</string>
</dict>
<key>B401C9792F7F325000000000</key>
<dict>
<key>isa</key>
<string>PBXGroup</string>
<key>name</key>
<string>Buck (Do Not Modify)</string>
<key>sourceTree</key>
<string><![CDATA[<group>]]></string>
<key>children</key>
<array>
<string>1DD70E293DCA7C7200000000</string>
<string>1DD70E29DA3FBF5C00000000</string>
<string>1DD70E294DD66ABE00000000</string>
</array>
</dict>
<key>B401C979B781F65D00000000</key>
<dict>
<key>isa</key>
<string>PBXGroup</string>
<key>name</key>
<string>Configurations</string>
<key>sourceTree</key>
<string><![CDATA[<group>]]></string>
<key>children</key>
<array>
<string>B401C9792F7F325000000000</string>
</array>
</dict>
<key>1DD70E295222FB7100000000</key>
<dict>
<key>isa</key>
<string>PBXFileReference</string>
<key>name</key>
<string>libAppBundle.a</string>
<key>path</key>
<string>libAppBundle.a</string>
<key>sourceTree</key>
<string>BUILT_PRODUCTS_DIR</string>
<key>explicitFileType</key>
<string>archive.ar</string>
</dict>
<key>B401C979C806358400000000</key>
<dict>
<key>isa</key>
<string>PBXGroup</string>
<key>name</key>
<string>Products</string>
<key>sourceTree</key>
<string><![CDATA[<group>]]></string>
<key>children</key>
<array>
<string>1DD70E295222FB7100000000</string>
</array>
</dict>
<key>B401C979EFB6AC4600000000</key>
<dict>
<key>isa</key>
<string>PBXGroup</string>
<key>name</key>
<string>mainGroup</string>
<key>sourceTree</key>
<string><![CDATA[<group>]]></string>
<key>children</key>
<array>
<string>B401C979B3E1D9E300000000</string>
<string>B401C979B781F65D00000000</string>
<string>B401C979C806358400000000</string>
</array>
</dict>
<key>E7A30F0442D2F32200000000</key>
<dict>
<key>isa</key>
<string>PBXBuildFile</string>
<key>fileRef</key>
<string>1DD70E2942D2F32200000000</string>
</dict>
<key>1870857F0000000000000000</key>
<dict>
<key>isa</key>
<string>PBXSourcesBuildPhase</string>
<key>files</key>
<array>
<string>E7A30F0442D2F32200000000</string>
</array>
</dict>
<key>4952437303EDA63300000000</key>
<dict>
<key>isa</key>
<string>XCBuildConfiguration</string>
<key>name</key>
<string>Debug</string>
<key>buildSettings</key>
<dict>
</dict>
<key>baseConfigurationReference</key>
<string>1DD70E293DCA7C7200000000</string>
</dict>
<key>4952437350C7218900000000</key>
<dict>
<key>isa</key>
<string>XCBuildConfiguration</string>
<key>name</key>
<string>Profile</string>
<key>buildSettings</key>
<dict>
</dict>
<key>baseConfigurationReference</key>
<string>1DD70E29DA3FBF5C00000000</string>
</dict>
<key>49524373A439BFE700000000</key>
<dict>
<key>isa</key>
<string>XCBuildConfiguration</string>
<key>name</key>
<string>Release</string>
<key>buildSettings</key>
<dict>
</dict>
<key>baseConfigurationReference</key>
<string>1DD70E294DD66ABE00000000</string>
</dict>
<key>218C37090000000000000000</key>
<dict>
<key>isa</key>
<string>XCConfigurationList</string>
<key>buildConfigurations</key>
<array>
<string>4952437303EDA63300000000</string>
<string>4952437350C7218900000000</string>
<string>49524373A439BFE700000000</string>
</array>
<key>defaultConfigurationIsVisible</key>
<false/>
</dict>
<key>E66DC04EB3E1D9E300000000</key>
<dict>
<key>isa</key>
<string>PBXNativeTarget</string>
<key>name</key>
<string>AppBundle</string>
<key>productName</key>
<string>AppBundle</string>
<key>productReference</key>
<string>1DD70E295222FB7100000000</string>
<key>productType</key>
<string>com.apple.product-type.library.static</string>
<key>dependencies</key>
<array>
</array>
<key>buildPhases</key>
<array>
<string>1870857F0000000000000000</string>
</array>
<key>buildConfigurationList</key>
<string>218C37090000000000000000</string>
</dict>
<key>4952437303EDA63300000001</key>
<dict>
<key>isa</key>
<string>XCBuildConfiguration</string>
<key>name</key>
<string>Debug</string>
<key>buildSettings</key>
<dict>
</dict>
</dict>
<key>4952437350C7218900000001</key>
<dict>
<key>isa</key>
<string>XCBuildConfiguration</string>
<key>name</key>
<string>Profile</string>
<key>buildSettings</key>
<dict>
</dict>
</dict>
<key>49524373A439BFE700000001</key>
<dict>
<key>isa</key>
<string>XCBuildConfiguration</string>
<key>name</key>
<string>Release</string>
<key>buildSettings</key>
<dict>
</dict>
</dict>
<key>218C37090000000000000001</key>
<dict>
<key>isa</key>
<string>XCConfigurationList</string>
<key>buildConfigurations</key>
<array>
<string>4952437303EDA63300000001</string>
<string>4952437350C7218900000001</string>
<string>49524373A439BFE700000001</string>
</array>
<key>defaultConfigurationIsVisible</key>
<false/>
</dict>
<key>96C84793B3E1D9E300000000</key>
<dict>
<key>isa</key>
<string>PBXProject</string>
<key>mainGroup</key>
<string>B401C979EFB6AC4600000000</string>
<key>targets</key>
<array>
<string>E66DC04EB3E1D9E300000000</string>
</array>
<key>buildConfigurationList</key>
<string>218C37090000000000000001</string>
<key>compatibilityVersion</key>
<string>Xcode 3.2</string>
<key>attributes</key>
<dict>
<key>LastUpgradeCheck</key>
<string>9999</string>
</dict>
</dict>
</dict>
<key>rootObject</key>
<string>96C84793B3E1D9E300000000</string>
</dict>
</plist>

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><Scheme LastUpgradeVersion="9999" version="1.7"><BuildAction buildImplicitDependencies="YES" parallelizeBuildables="YES"><BuildActionEntries><BuildActionEntry buildForAnalyzing="YES" buildForArchiving="YES" buildForProfiling="YES" buildForRunning="YES" buildForTesting="YES"><BuildableReference BlueprintIdentifier="E66DC04EB3E1D9E300000000" BlueprintName="AppBundle" BuildableIdentifier="primary" BuildableName="libAppBundle.a" ReferencedContainer="container:AppBundle.xcodeproj"/></BuildActionEntry></BuildActionEntries></BuildAction><TestAction buildConfiguration="Debug" shouldUseLaunchSchemeArgsEnv="YES"><Testables/></TestAction><LaunchAction buildConfiguration="Debug"/><ProfileAction buildConfiguration="Release"/><AnalyzeAction buildConfiguration="Debug"/><ArchiveAction buildConfiguration="Release" revealArchiveInOrganizer="YES"/></Scheme>

View File

@ -0,0 +1,528 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 50;
objects = {
/* Begin PBXBuildFile section */
D01748D923197B1000AF3D3A /* AppBundle.h in Headers */ = {isa = PBXBuildFile; fileRef = D01748D723197B1000AF3D3A /* AppBundle.h */; settings = {ATTRIBUTES = (Public, ); }; };
D01748E523197B4800AF3D3A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D01748E423197B4800AF3D3A /* Foundation.framework */; };
D01748E723197B6500AF3D3A /* AppBundle.m in Sources */ = {isa = PBXBuildFile; fileRef = D01748E623197B6500AF3D3A /* AppBundle.m */; };
D0EFF23A23197E5600CF5164 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF23923197E5600CF5164 /* UIKit.framework */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
D01748D423197B1000AF3D3A /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D01748D723197B1000AF3D3A /* AppBundle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppBundle.h; sourceTree = "<group>"; };
D01748D823197B1000AF3D3A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
D01748E423197B4800AF3D3A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
D01748E623197B6500AF3D3A /* AppBundle.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppBundle.m; sourceTree = "<group>"; };
D0EFF23923197E5600CF5164 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
D01748D123197B1000AF3D3A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D0EFF23A23197E5600CF5164 /* UIKit.framework in Frameworks */,
D01748E523197B4800AF3D3A /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
D01748CA23197B1000AF3D3A = {
isa = PBXGroup;
children = (
D01748D823197B1000AF3D3A /* Info.plist */,
D01748D623197B1000AF3D3A /* Sources */,
D01748D523197B1000AF3D3A /* Products */,
D01748E323197B4700AF3D3A /* Frameworks */,
);
sourceTree = "<group>";
};
D01748D523197B1000AF3D3A /* Products */ = {
isa = PBXGroup;
children = (
D01748D423197B1000AF3D3A /* AppBundle.framework */,
);
name = Products;
sourceTree = "<group>";
};
D01748D623197B1000AF3D3A /* Sources */ = {
isa = PBXGroup;
children = (
D01748E623197B6500AF3D3A /* AppBundle.m */,
D01748D723197B1000AF3D3A /* AppBundle.h */,
);
path = Sources;
sourceTree = "<group>";
};
D01748E323197B4700AF3D3A /* Frameworks */ = {
isa = PBXGroup;
children = (
D0EFF23923197E5600CF5164 /* UIKit.framework */,
D01748E423197B4800AF3D3A /* Foundation.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
D01748CF23197B1000AF3D3A /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
D01748D923197B1000AF3D3A /* AppBundle.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
D01748D323197B1000AF3D3A /* AppBundle */ = {
isa = PBXNativeTarget;
buildConfigurationList = D01748DC23197B1000AF3D3A /* Build configuration list for PBXNativeTarget "AppBundle" */;
buildPhases = (
D01748CF23197B1000AF3D3A /* Headers */,
D01748D023197B1000AF3D3A /* Sources */,
D01748D123197B1000AF3D3A /* Frameworks */,
D01748D223197B1000AF3D3A /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = AppBundle;
productName = AppBundle;
productReference = D01748D423197B1000AF3D3A /* AppBundle.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
D01748CB23197B1000AF3D3A /* Project object */ = {
isa = PBXProject;
attributes = {
DefaultBuildSystemTypeForWorkspace = Latest;
LastUpgradeCheck = 1030;
ORGANIZATIONNAME = "Telegram Messenger LLP";
TargetAttributes = {
D01748D323197B1000AF3D3A = {
CreatedOnToolsVersion = 10.3;
};
};
};
buildConfigurationList = D01748CE23197B1000AF3D3A /* Build configuration list for PBXProject "AppBundle_Xcode" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = D01748CA23197B1000AF3D3A;
productRefGroup = D01748D523197B1000AF3D3A /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
D01748D323197B1000AF3D3A /* AppBundle */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
D01748D223197B1000AF3D3A /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
D01748D023197B1000AF3D3A /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
D01748E723197B6500AF3D3A /* AppBundle.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
D01748DA23197B1000AF3D3A /* DebugAppStoreLLC */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = DebugAppStoreLLC;
};
D01748DB23197B1000AF3D3A /* ReleaseAppStoreLLC */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = ReleaseAppStoreLLC;
};
D01748DD23197B1000AF3D3A /* DebugAppStoreLLC */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Manual;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MACH_O_TYPE = staticlib;
PRODUCT_BUNDLE_IDENTIFIER = org.telegram.AppBundle;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = DebugAppStoreLLC;
};
D01748DE23197B1000AF3D3A /* ReleaseAppStoreLLC */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Manual;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MACH_O_TYPE = staticlib;
PRODUCT_BUNDLE_IDENTIFIER = org.telegram.AppBundle;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = ReleaseAppStoreLLC;
};
D01748DF23197B3200AF3D3A /* DebugHockeyapp */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = DebugHockeyapp;
};
D01748E023197B3200AF3D3A /* DebugHockeyapp */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Manual;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MACH_O_TYPE = staticlib;
PRODUCT_BUNDLE_IDENTIFIER = org.telegram.AppBundle;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = DebugHockeyapp;
};
D01748E123197B3B00AF3D3A /* ReleaseHockeyappInternal */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = ReleaseHockeyappInternal;
};
D01748E223197B3B00AF3D3A /* ReleaseHockeyappInternal */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Manual;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MACH_O_TYPE = staticlib;
PRODUCT_BUNDLE_IDENTIFIER = org.telegram.AppBundle;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = ReleaseHockeyappInternal;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
D01748CE23197B1000AF3D3A /* Build configuration list for PBXProject "AppBundle_Xcode" */ = {
isa = XCConfigurationList;
buildConfigurations = (
D01748DA23197B1000AF3D3A /* DebugAppStoreLLC */,
D01748DF23197B3200AF3D3A /* DebugHockeyapp */,
D01748DB23197B1000AF3D3A /* ReleaseAppStoreLLC */,
D01748E123197B3B00AF3D3A /* ReleaseHockeyappInternal */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = ReleaseAppStoreLLC;
};
D01748DC23197B1000AF3D3A /* Build configuration list for PBXNativeTarget "AppBundle" */ = {
isa = XCConfigurationList;
buildConfigurations = (
D01748DD23197B1000AF3D3A /* DebugAppStoreLLC */,
D01748E023197B3200AF3D3A /* DebugHockeyapp */,
D01748DE23197B1000AF3D3A /* ReleaseAppStoreLLC */,
D01748E223197B3B00AF3D3A /* ReleaseHockeyappInternal */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = ReleaseAppStoreLLC;
};
/* End XCConfigurationList section */
};
rootObject = D01748CB23197B1000AF3D3A /* Project object */;
}

21
submodules/AppBundle/BUCK Normal file
View File

@ -0,0 +1,21 @@
load("//Config:buck_rule_macros.bzl", "static_library")
static_library(
name = "AppBundle",
srcs = glob([
"Sources/**/*.swift",
"Sources/**/*.m",
]),
headers = glob([
"Sources/**/*.h",
]),
exported_headers = glob([
"Sources/**/*.h",
]),
deps = [
],
frameworks = [
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
"$SDKROOT/System/Library/Frameworks/UIKit.framework",
],
)

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
</dict>
</plist>

View File

@ -0,0 +1,16 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
//! Project version number for AppBundle.
FOUNDATION_EXPORT double AppBundleVersionNumber;
//! Project version string for AppBundle.
FOUNDATION_EXPORT const unsigned char AppBundleVersionString[];
NSBundle * _Nonnull getAppBundle(void);
@interface UIImage (AppBundle)
- (instancetype _Nullable)initWithBundleImageName:(NSString * _Nonnull)bundleImageName;
@end

View File

@ -0,0 +1,19 @@
#import "AppBundle.h"
NSBundle * _Nonnull getAppBundle() {
NSBundle *bundle = [NSBundle mainBundle];
if ([[bundle.bundleURL pathExtension] isEqualToString:@"appex"]) {
bundle = [NSBundle bundleWithURL:[[bundle.bundleURL URLByDeletingLastPathComponent] URLByDeletingLastPathComponent]];
} else if ([[bundle.bundleURL pathExtension] isEqualToString:@"Frameworks"]) {
bundle = [NSBundle bundleWithURL:[bundle.bundleURL URLByDeletingLastPathComponent]];
}
return bundle;
}
@implementation UIImage (AppBundle)
- (instancetype _Nullable)initWithBundleImageName:(NSString * _Nonnull)bundleImageName {
return [UIImage imageNamed:bundleImageName inBundle:getAppBundle() compatibleWithTraitCollection:nil];
}
@end

View File

@ -35,17 +35,6 @@
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
</dict>
<key>1DD70E291289FAA500000000</key>
<dict>
<key>isa</key>
<string>PBXFileReference</string>
<key>name</key>
<string>FrameworkBundle.swift</string>
<key>path</key>
<string>Sources/FrameworkBundle.swift</string>
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
</dict>
<key>1DD70E29D83ECBE000000000</key>
<dict>
<key>isa</key>
@ -68,7 +57,6 @@
<key>children</key>
<array>
<string>1DD70E29119E958000000000</string>
<string>1DD70E291289FAA500000000</string>
<string>1DD70E29D83ECBE000000000</string>
</array>
</dict>
@ -368,13 +356,6 @@
<key>fileRef</key>
<string>1DD70E29119E958000000000</string>
</dict>
<key>E7A30F041289FAA500000000</key>
<dict>
<key>isa</key>
<string>PBXBuildFile</string>
<key>fileRef</key>
<string>1DD70E291289FAA500000000</string>
</dict>
<key>E7A30F04D83ECBE000000000</key>
<dict>
<key>isa</key>
@ -389,7 +370,6 @@
<key>files</key>
<array>
<string>E7A30F04119E958000000000</string>
<string>E7A30F041289FAA500000000</string>
<string>E7A30F04D83ECBE000000000</string>
</array>
</dict>

View File

@ -16,7 +16,7 @@
D0879B0D22F7088F00C4D6B3 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879B0C22F7088F00C4D6B3 /* Display.framework */; };
D0879B0F22F7089400C4D6B3 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879B0E22F7089400C4D6B3 /* TelegramPresentationData.framework */; };
D0879B1522F70BAF00C4D6B3 /* PeerAvatar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879B1422F70BAF00C4D6B3 /* PeerAvatar.swift */; };
D0879B1722F70BFB00C4D6B3 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879B1622F70BFB00C4D6B3 /* FrameworkBundle.swift */; };
D0EFF2582319812900CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF2572319812900CF5164 /* AppBundle.framework */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
@ -31,7 +31,7 @@
D0879B0C22F7088F00C4D6B3 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0879B0E22F7089400C4D6B3 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0879B1422F70BAF00C4D6B3 /* PeerAvatar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerAvatar.swift; sourceTree = "<group>"; };
D0879B1622F70BFB00C4D6B3 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = "<group>"; };
D0EFF2572319812900CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -39,6 +39,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D0EFF2582319812900CF5164 /* AppBundle.framework in Frameworks */,
D0879B0F22F7089400C4D6B3 /* TelegramPresentationData.framework in Frameworks */,
D0879B0D22F7088F00C4D6B3 /* Display.framework in Frameworks */,
D0879B0B22F7088B00C4D6B3 /* AsyncDisplayKit.framework in Frameworks */,
@ -74,7 +75,6 @@
children = (
D0879B1422F70BAF00C4D6B3 /* PeerAvatar.swift */,
D0879B0122F7087800C4D6B3 /* AvatarNode.swift */,
D0879B1622F70BFB00C4D6B3 /* FrameworkBundle.swift */,
D0879AF522F7079F00C4D6B3 /* AvatarNode.h */,
);
path = Sources;
@ -83,6 +83,7 @@
D0879B0322F7087F00C4D6B3 /* Frameworks */ = {
isa = PBXGroup;
children = (
D0EFF2572319812900CF5164 /* AppBundle.framework */,
D0879B0E22F7089400C4D6B3 /* TelegramPresentationData.framework */,
D0879B0C22F7088F00C4D6B3 /* Display.framework */,
D0879B0A22F7088B00C4D6B3 /* AsyncDisplayKit.framework */,
@ -175,7 +176,6 @@
files = (
D0879B1522F70BAF00C4D6B3 /* PeerAvatar.swift in Sources */,
D0879B0222F7087800C4D6B3 /* AvatarNode.swift in Sources */,
D0879B1722F70BFB00C4D6B3 /* FrameworkBundle.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

View File

@ -11,6 +11,7 @@ static_library(
"//submodules/TelegramCore:TelegramCore#shared",
"//submodules/TelegramPresentationData:TelegramPresentationData",
"//submodules/AnimationUI:AnimationUI",
"//submodules/AppBundle:AppBundle",
],
frameworks = [
"$SDKROOT/System/Library/Frameworks/Foundation.framework",

View File

@ -7,6 +7,7 @@ import TelegramCore
import SwiftSignalKit
import TelegramPresentationData
import AnimationUI
import AppBundle
private let deletedIcon = UIImage(bundleImageName: "Avatar/DeletedIcon")?.precomposed()
private let savedMessagesIcon = generateTintedImage(image: UIImage(bundleImageName: "Avatar/SavedMessagesIcon"), color: .white)

View File

@ -1,13 +0,0 @@
import Foundation
import UIKit
private class FrameworkBundleClass: NSObject {
}
let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self)
extension UIImage {
convenience init?(bundleImageName: String) {
self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil)
}
}

View File

@ -18,6 +18,7 @@ static_library(
"//submodules/TelegramNotices:TelegramNotices",
"//submodules/Stripe:Stripe",
"//submodules/CountrySelectionUI:CountrySelectionUI",
"//submodules/AppBundle:AppBundle",
],
frameworks = [
"$SDKROOT/System/Library/Frameworks/Foundation.framework",

View File

@ -299,17 +299,6 @@
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
</dict>
<key>1DD70E291289FAA500000000</key>
<dict>
<key>isa</key>
<string>PBXFileReference</string>
<key>name</key>
<string>FrameworkBundle.swift</string>
<key>path</key>
<string>Sources/FrameworkBundle.swift</string>
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
</dict>
<key>B401C979EAB5339800000000</key>
<dict>
<key>isa</key>
@ -345,7 +334,6 @@
<string>1DD70E29CC5195E600000000</string>
<string>1DD70E29938515F200000000</string>
<string>1DD70E29CDAC281400000000</string>
<string>1DD70E291289FAA500000000</string>
</array>
</dict>
<key>B401C97922643F8800000000</key>
@ -1176,13 +1164,6 @@
<key>fileRef</key>
<string>1DD70E29CDAC281400000000</string>
</dict>
<key>E7A30F041289FAA500000000</key>
<dict>
<key>isa</key>
<string>PBXBuildFile</string>
<key>fileRef</key>
<string>1DD70E291289FAA500000000</string>
</dict>
<key>1870857F0000000000000000</key>
<dict>
<key>isa</key>
@ -1214,7 +1195,6 @@
<string>E7A30F04CC5195E600000000</string>
<string>E7A30F04938515F200000000</string>
<string>E7A30F04CDAC281400000000</string>
<string>E7A30F041289FAA500000000</string>
</array>
</dict>
<key>E7A30F04D65BA68200000000</key>

View File

@ -40,12 +40,12 @@
D0C9C7B52301FFE500FAB518 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C7B42301FFE500FAB518 /* TelegramCore.framework */; };
D0C9C7B72301FFE900FAB518 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C7B62301FFE900FAB518 /* SwiftSignalKit.framework */; };
D0C9C7B92301FFEF00FAB518 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C7B82301FFEF00FAB518 /* TelegramPresentationData.framework */; };
D0C9C7BF2302023D00FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C7BE2302023D00FAB518 /* FrameworkBundle.swift */; };
D0C9C7E32302035800FAB518 /* LocalAuth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C7E22302035800FAB518 /* LocalAuth.framework */; };
D0C9C7E72302041100FAB518 /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C7E62302041100FAB518 /* AccountContext.framework */; };
D0C9C7E9230205A500FAB518 /* ItemListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C7E8230205A500FAB518 /* ItemListUI.framework */; };
D0C9C7EB230205D700FAB518 /* PasswordSetupUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C7EA230205D700FAB518 /* PasswordSetupUI.framework */; };
D0C9C7EF2302061E00FAB518 /* PhotoResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C7EE2302061E00FAB518 /* PhotoResources.framework */; };
D0EFF27A2319832400CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF2792319832400CF5164 /* AppBundle.framework */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
@ -84,12 +84,12 @@
D0C9C7B42301FFE500FAB518 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9C7B62301FFE900FAB518 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9C7B82301FFEF00FAB518 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9C7BE2302023D00FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = "<group>"; };
D0C9C7E22302035800FAB518 /* LocalAuth.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocalAuth.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9C7E62302041100FAB518 /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9C7E8230205A500FAB518 /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9C7EA230205D700FAB518 /* PasswordSetupUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PasswordSetupUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9C7EE2302061E00FAB518 /* PhotoResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PhotoResources.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0EFF2792319832400CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -97,6 +97,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D0EFF27A2319832400CF5164 /* AppBundle.framework in Frameworks */,
D0C9C7EF2302061E00FAB518 /* PhotoResources.framework in Frameworks */,
D0C9C7EB230205D700FAB518 /* PasswordSetupUI.framework in Frameworks */,
D0C9C7E9230205A500FAB518 /* ItemListUI.framework in Frameworks */,
@ -161,7 +162,6 @@
D0C9C77D2301FFCA00FAB518 /* BotPaymentTextItemNode.swift */,
D0C9C7812301FFCA00FAB518 /* BotReceiptController.swift */,
D0C9C7862301FFCB00FAB518 /* BotReceiptControllerNode.swift */,
D0C9C7BE2302023D00FAB518 /* FrameworkBundle.swift */,
D0C9C6CB2301FC9300FAB518 /* BotPaymentsUI.h */,
);
path = Sources;
@ -170,6 +170,7 @@
D0C9C7AB2301FFD300FAB518 /* Frameworks */ = {
isa = PBXGroup;
children = (
D0EFF2792319832400CF5164 /* AppBundle.framework */,
D0C9C7EE2302061E00FAB518 /* PhotoResources.framework */,
D0C9C7EA230205D700FAB518 /* PasswordSetupUI.framework */,
D0C9C7E8230205A500FAB518 /* ItemListUI.framework */,
@ -286,7 +287,6 @@
D0C9C7A12301FFD000FAB518 /* BotCheckoutWebInteractionControllerNode.swift in Sources */,
D0C9C7922301FFD000FAB518 /* BotCheckoutPasswordEntryController.swift in Sources */,
D0C9C7932301FFD000FAB518 /* BotPaymentActionItemNode.swift in Sources */,
D0C9C7BF2302023D00FAB518 /* FrameworkBundle.swift in Sources */,
D0C9C7A72301FFD000FAB518 /* BotCheckoutNativeCardEntryControllerNode.swift in Sources */,
D0C9C7A52301FFD000FAB518 /* BotPaymentFieldItemNode.swift in Sources */,
D0C9C79C2301FFD000FAB518 /* BotCheckoutWebInteractionController.swift in Sources */,

View File

@ -5,6 +5,7 @@ import AsyncDisplayKit
import SwiftSignalKit
import TelegramCore
import AccountContext
import AppBundle
struct BotCheckoutPaymentWebToken: Equatable {
let title: String

View File

@ -1,13 +0,0 @@
import Foundation
import UIKit
private class FrameworkBundleClass: NSObject {
}
let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self)
extension UIImage {
convenience init?(bundleImageName: String) {
self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil)
}
}

View File

@ -1,5 +1,5 @@
load("//Config:buck_rule_macros.bzl", "static_library")
load("//Config:app_configuration.bzl", "AppConfig")
load("//Config:app_configuration.bzl", "appConfig")
static_library(
name = "BuildConfig",
@ -7,14 +7,13 @@ static_library(
"Sources/*.m",
]),
compiler_flags = [
'-DAPP_CONFIG_API_ID=' + AppConfig["apiId"],
'-DAPP_CONFIG_API_HASH="' + AppConfig["apiHash"] + '"',
'-DAPP_CONFIG_HOCKEYAPP_ID="' + AppConfig["hockeyAppId"] + '"',
'-DAPP_CONFIG_IS_INTERNAL_BUILD=' + AppConfig["isInternalBuild"],
'-DAPP_CONFIG_IS_APPSTORE_BUILD=' + AppConfig["isAppStoreBuild"],
'-DAPP_CONFIG_APPSTORE_ID=' + AppConfig["appstoreId"],
'-DAPP_SPECIFIC_URL_SCHEME="' + AppConfig["appSpecificUrlScheme"] + '"',
'-DAPP_CONFIG_API_ID=' + appConfig()["apiId"],
'-DAPP_CONFIG_API_HASH="' + appConfig()["apiHash"] + '"',
'-DAPP_CONFIG_HOCKEYAPP_ID="' + appConfig()["hockeyAppId"] + '"',
'-DAPP_CONFIG_IS_INTERNAL_BUILD=' + appConfig()["isInternalBuild"],
'-DAPP_CONFIG_IS_APPSTORE_BUILD=' + appConfig()["isAppStoreBuild"],
'-DAPP_CONFIG_APPSTORE_ID=' + appConfig()["appStoreId"],
'-DAPP_SPECIFIC_URL_SCHEME="' + appConfig()["appSpecificUrlScheme"] + '"',
],
headers = glob([
"Sources/*.h",

View File

@ -101,17 +101,6 @@
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
</dict>
<key>1DD70E291289FAA500000000</key>
<dict>
<key>isa</key>
<string>PBXFileReference</string>
<key>name</key>
<string>FrameworkBundle.swift</string>
<key>path</key>
<string>Sources/FrameworkBundle.swift</string>
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
</dict>
<key>B401C979EAB5339800000000</key>
<dict>
<key>isa</key>
@ -129,7 +118,6 @@
<string>1DD70E29AB92F37700000000</string>
<string>1DD70E2970B6869800000000</string>
<string>1DD70E291FE77B5B00000000</string>
<string>1DD70E291289FAA500000000</string>
</array>
</dict>
<key>B401C979C8F48FD000000000</key>
@ -750,13 +738,6 @@
<key>fileRef</key>
<string>1DD70E291FE77B5B00000000</string>
</dict>
<key>E7A30F041289FAA500000000</key>
<dict>
<key>isa</key>
<string>PBXBuildFile</string>
<key>fileRef</key>
<string>1DD70E291289FAA500000000</string>
</dict>
<key>1870857F0000000000000000</key>
<dict>
<key>isa</key>
@ -770,7 +751,6 @@
<string>E7A30F04AB92F37700000000</string>
<string>E7A30F0470B6869800000000</string>
<string>E7A30F041FE77B5B00000000</string>
<string>E7A30F041289FAA500000000</string>
</array>
</dict>
<key>E7A30F04D65BA68200000000</key>

View File

@ -30,7 +30,6 @@
D0C9CA7C23022DCC00FAB518 /* TelegramUIPreferences.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CA7B23022DCC00FAB518 /* TelegramUIPreferences.framework */; };
D0C9CA7E23022DD900FAB518 /* TelegramNotices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CA7D23022DD900FAB518 /* TelegramNotices.framework */; };
D0C9CA8023022E1F00FAB518 /* MergeLists.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CA7F23022E1F00FAB518 /* MergeLists.framework */; };
D0C9CA8423022E6600FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CA8323022E6600FAB518 /* FrameworkBundle.swift */; };
D0C9CA8623022FCD00FAB518 /* CallListHoleItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CA8523022FCD00FAB518 /* CallListHoleItem.swift */; };
/* End PBXBuildFile section */
@ -60,7 +59,6 @@
D0C9CA7B23022DCC00FAB518 /* TelegramUIPreferences.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramUIPreferences.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9CA7D23022DD900FAB518 /* TelegramNotices.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramNotices.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9CA7F23022E1F00FAB518 /* MergeLists.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MergeLists.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9CA8323022E6600FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = "<group>"; };
D0C9CA8523022FCD00FAB518 /* CallListHoleItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallListHoleItem.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
@ -119,7 +117,6 @@
D0C9CA5523022D5E00FAB518 /* CallListNodeEntries.swift */,
D0C9CA5623022D5E00FAB518 /* CallListNodeLocation.swift */,
D0C9CA5723022D5E00FAB518 /* CallListViewTransition.swift */,
D0C9CA8323022E6600FAB518 /* FrameworkBundle.swift */,
D0C9CA4823022CEB00FAB518 /* CallListUI.h */,
);
path = Sources;
@ -234,7 +231,6 @@
D0C9CA5B23022D5F00FAB518 /* CallListNodeEntries.swift in Sources */,
D0C9CA5F23022D5F00FAB518 /* CallListController.swift in Sources */,
D0C9CA5E23022D5F00FAB518 /* CallListControllerNode.swift in Sources */,
D0C9CA8423022E6600FAB518 /* FrameworkBundle.swift in Sources */,
D0C9CA5A23022D5F00FAB518 /* CallListCallItem.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;

View File

@ -9,6 +9,7 @@ import TelegramPresentationData
import ItemListUI
import AccountContext
import AlertUI
import AppBundle
public enum CallListControllerMode {
case tab

View File

@ -1,13 +0,0 @@
import Foundation
import UIKit
private class FrameworkBundleClass: NSObject {
}
let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self)
extension UIImage {
convenience init?(bundleImageName: String) {
self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil)
}
}

View File

@ -36,6 +36,7 @@ static_library(
"//submodules/ContactsPeerItem:ContactsPeerItem",
"//submodules/ContactListUI:ContactListUI",
"//submodules/PhotoResources:PhotoResources",
"//submodules/AppBundle:AppBundle",
],
frameworks = [
"$SDKROOT/System/Library/Frameworks/Foundation.framework",

View File

@ -281,17 +281,6 @@
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
</dict>
<key>1DD70E291289FAA500000000</key>
<dict>
<key>isa</key>
<string>PBXFileReference</string>
<key>name</key>
<string>FrameworkBundle.swift</string>
<key>path</key>
<string>Sources/FrameworkBundle.swift</string>
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
</dict>
<key>B401C979EAB5339800000000</key>
<dict>
<key>isa</key>
@ -312,7 +301,6 @@
<string>1DD70E299588C17700000000</string>
<string>1DD70E294EC20C1300000000</string>
<string>1DD70E29E691DAEC00000000</string>
<string>1DD70E291289FAA500000000</string>
</array>
</dict>
<key>B401C9790758854A00000000</key>
@ -1465,13 +1453,6 @@
<key>fileRef</key>
<string>1DD70E29E691DAEC00000000</string>
</dict>
<key>E7A30F041289FAA500000000</key>
<dict>
<key>isa</key>
<string>PBXBuildFile</string>
<key>fileRef</key>
<string>1DD70E291289FAA500000000</string>
</dict>
<key>1870857F0000000000000000</key>
<dict>
<key>isa</key>
@ -1499,7 +1480,6 @@
<string>E7A30F049588C17700000000</string>
<string>E7A30F044EC20C1300000000</string>
<string>E7A30F04E691DAEC00000000</string>
<string>E7A30F041289FAA500000000</string>
</array>
</dict>
<key>E7A30F04D65BA68200000000</key>

View File

@ -55,12 +55,12 @@
D0C9CB012302373000FAB518 /* PeerOnlineMarkerNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB002302373000FAB518 /* PeerOnlineMarkerNode.framework */; };
D0C9CB032302373000FAB518 /* PeerPresenceStatusManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB022302373000FAB518 /* PeerPresenceStatusManager.framework */; };
D0C9CB052302373000FAB518 /* TemporaryCachedPeerDataManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB042302373000FAB518 /* TemporaryCachedPeerDataManager.framework */; };
D0C9CB07230237D000FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CB06230237D000FAB518 /* FrameworkBundle.swift */; };
D0C9CB442302B15D00FAB518 /* ChatTitleActivityNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB432302B15D00FAB518 /* ChatTitleActivityNode.framework */; };
D0C9CB802302B37B00FAB518 /* DeleteChatPeerActionSheetItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB7F2302B37B00FAB518 /* DeleteChatPeerActionSheetItem.framework */; };
D0C9CBB42302B64C00FAB518 /* LanguageSuggestionUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBB32302B64C00FAB518 /* LanguageSuggestionUI.framework */; };
D0C9CBE62303387E00FAB518 /* ContactsPeerItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBE52303387E00FAB518 /* ContactsPeerItem.framework */; };
D0C9CBE82303407100FAB518 /* ContactListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBE72303407100FAB518 /* ContactListUI.framework */; };
D0EFF272231982C700CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF271231982C700CF5164 /* AppBundle.framework */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
@ -114,12 +114,12 @@
D0C9CB002302373000FAB518 /* PeerOnlineMarkerNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerOnlineMarkerNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9CB022302373000FAB518 /* PeerPresenceStatusManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerPresenceStatusManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9CB042302373000FAB518 /* TemporaryCachedPeerDataManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TemporaryCachedPeerDataManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9CB06230237D000FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = "<group>"; };
D0C9CB432302B15D00FAB518 /* ChatTitleActivityNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ChatTitleActivityNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9CB7F2302B37B00FAB518 /* DeleteChatPeerActionSheetItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DeleteChatPeerActionSheetItem.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9CBB32302B64C00FAB518 /* LanguageSuggestionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LanguageSuggestionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9CBE52303387E00FAB518 /* ContactsPeerItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ContactsPeerItem.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9CBE72303407100FAB518 /* ContactListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ContactListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0EFF271231982C700CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -127,6 +127,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D0EFF272231982C700CF5164 /* AppBundle.framework in Frameworks */,
D0C9CBE82303407100FAB518 /* ContactListUI.framework in Frameworks */,
D0C9CBE62303387E00FAB518 /* ContactsPeerItem.framework in Frameworks */,
D0C9CBB42302B64C00FAB518 /* LanguageSuggestionUI.framework in Frameworks */,
@ -195,7 +196,6 @@
D0C9CAA9230235E400FAB518 /* ChatListTitleLockView.swift */,
D0C9CAA7230235E300FAB518 /* ChatListTitleProxyNode.swift */,
D0C9CAA8230235E400FAB518 /* ChatListTitleView.swift */,
D0C9CB06230237D000FAB518 /* FrameworkBundle.swift */,
D0C9CA98230234D400FAB518 /* ChatListUI.h */,
);
path = Sources;
@ -204,6 +204,7 @@
D0C9CAB62302360600FAB518 /* Frameworks */ = {
isa = PBXGroup;
children = (
D0EFF271231982C700CF5164 /* AppBundle.framework */,
D0C9CBE72303407100FAB518 /* ContactListUI.framework */,
D0C9CBE52303387E00FAB518 /* ContactsPeerItem.framework */,
D0C9CBB32302B64C00FAB518 /* LanguageSuggestionUI.framework */,
@ -346,7 +347,6 @@
D0C9CAAD230235E500FAB518 /* ChatListSearchContainerNode.swift in Sources */,
D0C9CAB1230235E500FAB518 /* ChatListTitleView.swift in Sources */,
D0C9CAF4230236F700FAB518 /* ChatListViewTransition.swift in Sources */,
D0C9CB07230237D000FAB518 /* FrameworkBundle.swift in Sources */,
D0C9CAF5230236F700FAB518 /* ChatListNodeEntries.swift in Sources */,
D0C9CAF1230236F700FAB518 /* ChatListBadgeNode.swift in Sources */,
D0C9CAB5230235E500FAB518 /* ChatListEmptyNode.swift in Sources */,

View File

@ -15,6 +15,7 @@ import TelegramNotices
import SearchUI
import DeleteChatPeerActionSheetItem
import LanguageSuggestionUI
import AppBundle
public func useSpecialTabBarIcons() -> Bool {
return (Date(timeIntervalSince1970: 1545642000)...Date(timeIntervalSince1970: 1546387200)).contains(Date())

View File

@ -4,6 +4,7 @@ import Display
import AsyncDisplayKit
import TelegramPresentationData
import ActivityIndicator
import AppBundle
enum ChatTitleProxyStatus {
case connecting

View File

@ -1,13 +0,0 @@
import Foundation
import UIKit
private class FrameworkBundleClass: NSObject {
}
let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self)
extension UIImage {
convenience init?(bundleImageName: String) {
self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil)
}
}

View File

@ -6,6 +6,7 @@ import Display
import SwiftSignalKit
import TelegramPresentationData
import ListSectionHeaderNode
import AppBundle
class ChatListArchiveInfoItem: ListViewItem {
let theme: PresentationTheme

View File

@ -24,6 +24,7 @@ static_library(
"//submodules/TelegramNotices:TelegramNotices",
"//submodules/AlertUI:AlertUI",
"//submodules/ShareController:ShareController",
"//submodules/AppBundle:AppBundle",
],
frameworks = [
"$SDKROOT/System/Library/Frameworks/Foundation.framework",

View File

@ -168,17 +168,6 @@
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
</dict>
<key>1DD70E291289FAA500000000</key>
<dict>
<key>isa</key>
<string>PBXFileReference</string>
<key>name</key>
<string>FrameworkBundle.swift</string>
<key>path</key>
<string>Sources/FrameworkBundle.swift</string>
<key>sourceTree</key>
<string>SOURCE_ROOT</string>
</dict>
<key>1DD70E2947849BFD00000000</key>
<dict>
<key>isa</key>
@ -229,7 +218,6 @@
<string>1DD70E29D5D22BD400000000</string>
<string>1DD70E2955D77CF600000000</string>
<string>1DD70E2912C86E8D00000000</string>
<string>1DD70E291289FAA500000000</string>
<string>1DD70E2947849BFD00000000</string>
<string>1DD70E29CB13B09F00000000</string>
<string>1DD70E29D3C9BBF800000000</string>
@ -1066,13 +1054,6 @@
<key>fileRef</key>
<string>1DD70E2912C86E8D00000000</string>
</dict>
<key>E7A30F041289FAA500000000</key>
<dict>
<key>isa</key>
<string>PBXBuildFile</string>
<key>fileRef</key>
<string>1DD70E291289FAA500000000</string>
</dict>
<key>E7A30F0447849BFD00000000</key>
<dict>
<key>isa</key>
@ -1107,7 +1088,6 @@
<string>E7A30F04D5D22BD400000000</string>
<string>E7A30F0455D77CF600000000</string>
<string>E7A30F0412C86E8D00000000</string>
<string>E7A30F041289FAA500000000</string>
<string>E7A30F0447849BFD00000000</string>
<string>E7A30F04CB13B09F00000000</string>
<string>E7A30F04D3C9BBF800000000</string>

View File

@ -26,7 +26,6 @@
D0C9C831230207E600FAB518 /* ContactsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C82B230207E600FAB518 /* ContactsController.swift */; };
D0C9C832230207E600FAB518 /* ContactsControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C82C230207E600FAB518 /* ContactsControllerNode.swift */; };
D0C9C833230207E600FAB518 /* InviteContactsControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C82D230207E600FAB518 /* InviteContactsControllerNode.swift */; };
D0C9C835230207EE00FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C834230207EE00FAB518 /* FrameworkBundle.swift */; };
D0C9C8392302088800FAB518 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C8382302088800FAB518 /* Display.framework */; };
D0C9C83B2302088C00FAB518 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C83A2302088C00FAB518 /* AsyncDisplayKit.framework */; };
D0C9C83D2302089300FAB518 /* MergeLists.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C83C2302089300FAB518 /* MergeLists.framework */; };
@ -36,6 +35,7 @@
D0C9C91323020DBF00FAB518 /* ContactsPeerItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C91223020DBF00FAB518 /* ContactsPeerItem.framework */; };
D0C9C94F2302140500FAB518 /* ChatListSearchItemNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C94E2302140500FAB518 /* ChatListSearchItemNode.framework */; };
D0C9C98D2302153C00FAB518 /* TelegramPermissionsUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C98C2302153C00FAB518 /* TelegramPermissionsUI.framework */; };
D0EFF2782319830300CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF2772319830300CF5164 /* AppBundle.framework */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
@ -60,7 +60,6 @@
D0C9C82B230207E600FAB518 /* ContactsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactsController.swift; sourceTree = "<group>"; };
D0C9C82C230207E600FAB518 /* ContactsControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactsControllerNode.swift; sourceTree = "<group>"; };
D0C9C82D230207E600FAB518 /* InviteContactsControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InviteContactsControllerNode.swift; sourceTree = "<group>"; };
D0C9C834230207EE00FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = "<group>"; };
D0C9C8382302088800FAB518 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9C83A2302088C00FAB518 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9C83C2302089300FAB518 /* MergeLists.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MergeLists.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@ -70,6 +69,7 @@
D0C9C91223020DBF00FAB518 /* ContactsPeerItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ContactsPeerItem.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9C94E2302140500FAB518 /* ChatListSearchItemNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ChatListSearchItemNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0C9C98C2302153C00FAB518 /* TelegramPermissionsUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPermissionsUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D0EFF2772319830300CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -77,6 +77,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D0EFF2782319830300CF5164 /* AppBundle.framework in Frameworks */,
D0C9C98D2302153C00FAB518 /* TelegramPermissionsUI.framework in Frameworks */,
D0C9C94F2302140500FAB518 /* ChatListSearchItemNode.framework in Frameworks */,
D0C9C91323020DBF00FAB518 /* ContactsPeerItem.framework in Frameworks */,
@ -131,7 +132,6 @@
D0C9C80B2302077E00FAB518 /* ContactListActionItem.swift */,
D0C9C80A2302077E00FAB518 /* ContactListNameIndexHeader.swift */,
D0C9C80D2302077F00FAB518 /* ContactListNode.swift */,
D0C9C834230207EE00FAB518 /* FrameworkBundle.swift */,
D0C9C7FD230206F600FAB518 /* ContactListUI.h */,
);
path = Sources;
@ -140,6 +140,7 @@
D0C9C817230207B900FAB518 /* Frameworks */ = {
isa = PBXGroup;
children = (
D0EFF2772319830300CF5164 /* AppBundle.framework */,
D0C9C98C2302153C00FAB518 /* TelegramPermissionsUI.framework */,
D0C9C94E2302140500FAB518 /* ChatListSearchItemNode.framework */,
D0C9C91223020DBF00FAB518 /* ContactsPeerItem.framework */,
@ -248,7 +249,6 @@
D0C9C8132302077F00FAB518 /* ContactListNode.swift in Sources */,
D0C9C8102302077F00FAB518 /* ContactListNameIndexHeader.swift in Sources */,
D0C9C82F230207E600FAB518 /* InviteContactsController.swift in Sources */,
D0C9C835230207EE00FAB518 /* FrameworkBundle.swift in Sources */,
D0C9C8112302077F00FAB518 /* ContactListActionItem.swift in Sources */,
D0C9C831230207E600FAB518 /* ContactsController.swift in Sources */,
D0C9C8122302077F00FAB518 /* ContactAddItem.swift in Sources */,

View File

@ -6,6 +6,7 @@ import Display
import SwiftSignalKit
import TelegramCore
import TelegramPresentationData
import AppBundle
private let titleFont = Font.regular(17.0)

View File

@ -19,6 +19,7 @@ import ChatListSearchItemNode
import ChatListSearchItemHeader
import SearchUI
import TelegramPermissionsUI
import AppBundle
private let dropDownIcon = { () -> UIImage in
UIGraphicsBeginImageContextWithOptions(CGSize(width: 12.0, height: 12.0), false, 0.0)

View File

@ -15,6 +15,7 @@ import TelegramNotices
import ContactsPeerItem
import SearchUI
import TelegramPermissionsUI
import AppBundle
private func fixListNodeScrolling(_ listNode: ListView, searchNode: NavigationBarSearchContentNode) -> Bool {
if searchNode.expansionProgress > 0.0 && searchNode.expansionProgress < 1.0 {

View File

@ -11,6 +11,7 @@ import DeviceAccess
import AccountContext
import SearchBarNode
import SearchUI
import AppBundle
private final class ContactsControllerNodeView: UITracingLayerView, PreviewingHostView {
var previewingDelegate: PreviewingHostViewDelegate? {

View File

@ -1,13 +0,0 @@
import Foundation
import UIKit
private class FrameworkBundleClass: NSObject {
}
let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self)
extension UIImage {
convenience init?(bundleImageName: String) {
self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil)
}
}

Some files were not shown because too many files have changed in this diff Show More