mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-11-07 01:10:09 +00:00
Merge branch 'master' into holes
This commit is contained in:
commit
14affea0e8
@ -33,17 +33,3 @@ beta_testflight:
|
||||
- fastlane testflight_llc
|
||||
environment:
|
||||
name: testflight_llc
|
||||
|
||||
beta_hockeyapp:
|
||||
tags:
|
||||
- ios
|
||||
stage: build
|
||||
only:
|
||||
- beta
|
||||
except:
|
||||
- tags
|
||||
script:
|
||||
- sh ~/ios-prepare-build.sh $CI_PROJECT_DIR/..
|
||||
- fastlane hockeyapp
|
||||
environment:
|
||||
name: hockeyapp
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>5.4.1</string>
|
||||
<string>5.5</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${BUILD_NUMBER}</string>
|
||||
<key>NSExtension</key>
|
||||
|
||||
@ -117,7 +117,7 @@ class NotificationViewController: UIViewController, UNNotificationContentExtensi
|
||||
|
||||
let appVersion = (Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String) ?? "unknown"
|
||||
|
||||
sharedAccountContext = SharedAccountContext(mainWindow: nil, basePath: rootPath, accountManager: accountManager, applicationBindings: applicationBindings, initialPresentationDataAndSettings: initialPresentationDataAndSettings!, networkArguments: NetworkInitializationArguments(apiId: apiId, languagesCategory: languagesCategory, appVersion: appVersion, voipMaxLayer: 0), rootPath: rootPath, legacyBasePath: nil, legacyCache: nil, apsNotificationToken: .never(), voipNotificationToken: .never(), setNotificationCall: { _ in }, navigateToChat: { _, _, _ in })
|
||||
sharedAccountContext = SharedAccountContext(mainWindow: nil, basePath: rootPath, accountManager: accountManager, applicationBindings: applicationBindings, initialPresentationDataAndSettings: initialPresentationDataAndSettings!, networkArguments: NetworkInitializationArguments(apiId: apiId, languagesCategory: languagesCategory, appVersion: appVersion, voipMaxLayer: 0, appData: BuildConfig.shared().bundleData), rootPath: rootPath, legacyBasePath: nil, legacyCache: nil, apsNotificationToken: .never(), voipNotificationToken: .never(), setNotificationCall: { _ in }, navigateToChat: { _, _, _ in })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>5.4.1</string>
|
||||
<string>5.5</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${BUILD_NUMBER}</string>
|
||||
<key>NSExtension</key>
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>5.4.1</string>
|
||||
<string>5.5</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${BUILD_NUMBER}</string>
|
||||
<key>NSExtension</key>
|
||||
|
||||
@ -160,7 +160,7 @@ class ShareRootController: UIViewController {
|
||||
})
|
||||
semaphore.wait()
|
||||
|
||||
let sharedContext = SharedAccountContext(mainWindow: nil, basePath: rootPath, accountManager: accountManager, applicationBindings: applicationBindings, initialPresentationDataAndSettings: initialPresentationDataAndSettings!, networkArguments: NetworkInitializationArguments(apiId: apiId, languagesCategory: languagesCategory, appVersion: appVersion, voipMaxLayer: 0), rootPath: rootPath, legacyBasePath: nil, legacyCache: nil, apsNotificationToken: .never(), voipNotificationToken: .never(), setNotificationCall: { _ in }, navigateToChat: { _, _, _ in })
|
||||
let sharedContext = SharedAccountContext(mainWindow: nil, basePath: rootPath, accountManager: accountManager, applicationBindings: applicationBindings, initialPresentationDataAndSettings: initialPresentationDataAndSettings!, networkArguments: NetworkInitializationArguments(apiId: apiId, languagesCategory: languagesCategory, appVersion: appVersion, voipMaxLayer: 0, appData: BuildConfig.shared().bundleData), rootPath: rootPath, legacyBasePath: nil, legacyCache: nil, apsNotificationToken: .never(), voipNotificationToken: .never(), setNotificationCall: { _ in }, navigateToChat: { _, _, _ in })
|
||||
sharedExtensionContext = SharedExtensionContext(sharedContext: sharedContext)
|
||||
globalSharedExtensionContext = sharedExtensionContext
|
||||
}
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>5.4.1</string>
|
||||
<string>5.5</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${BUILD_NUMBER}</string>
|
||||
<key>NSExtension</key>
|
||||
|
||||
@ -84,7 +84,7 @@ class IntentHandler: INExtension, INSendMessageIntentHandling, INSearchForMessag
|
||||
initializeAccountManagement()
|
||||
let accountManager = AccountManager(basePath: rootPath + "/accounts-metadata")
|
||||
|
||||
account = currentAccount(allocateIfNotExists: false, networkArguments: NetworkInitializationArguments(apiId: apiId, languagesCategory: languagesCategory, appVersion: appVersion, voipMaxLayer: 0), supplementary: true, manager: accountManager, rootPath: rootPath, auxiliaryMethods: accountAuxiliaryMethods)
|
||||
account = currentAccount(allocateIfNotExists: false, networkArguments: NetworkInitializationArguments(apiId: apiId, languagesCategory: languagesCategory, appVersion: appVersion, voipMaxLayer: 0, appData: BuildConfig.shared().bundleData), supplementary: true, manager: accountManager, rootPath: rootPath, auxiliaryMethods: accountAuxiliaryMethods)
|
||||
|> mapToSignal { account -> Signal<Account, NoError> in
|
||||
if let account = account {
|
||||
switch account {
|
||||
|
||||
@ -236,6 +236,7 @@
|
||||
D02CF61B215DA24900E0F56A /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D02CF61A215DA24900E0F56A /* TelegramCore.framework */; };
|
||||
D02CF61C215E51D500E0F56A /* BuildConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = D09250011FE52D2A003F693F /* BuildConfig.m */; };
|
||||
D02E31231BD803E800CD3F01 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D02E31221BD803E800CD3F01 /* main.m */; };
|
||||
D0338736223A9A9A007A2CE4 /* Config-Hockeyapp-Internal.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */; };
|
||||
D03B0E7B1D63484500955575 /* ShareRootController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0E7A1D63484500955575 /* ShareRootController.swift */; };
|
||||
D03B0E821D63484500955575 /* Share.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = D03B0E781D63484500955575 /* Share.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
D03B0E8A1D634B1100955575 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03B0E871D634B1100955575 /* Display.framework */; };
|
||||
@ -948,6 +949,7 @@
|
||||
D02CF61A215DA24900E0F56A /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D02CF61D215E522400E0F56A /* NotificationContent-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NotificationContent-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
D02E31221BD803E800CD3F01 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Config-Hockeyapp-Internal.xcconfig"; sourceTree = "<group>"; };
|
||||
D0369C8B1D3E2C9500D91AFC /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; };
|
||||
D0369C8D1D3E2E4800D91AFC /* VideoToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = VideoToolbox.framework; path = System/Library/Frameworks/VideoToolbox.framework; sourceTree = SDKROOT; };
|
||||
D0369C8F1D3E2E5000D91AFC /* libbz2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libbz2.tbd; path = usr/lib/libbz2.tbd; sourceTree = SDKROOT; };
|
||||
@ -1047,7 +1049,6 @@
|
||||
D073E51F21FF7CE900742DDD /* Crypto.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Crypto.m; sourceTree = "<group>"; };
|
||||
D073E52122003E1E00742DDD /* Data.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Data.swift; sourceTree = "<group>"; };
|
||||
D079FD001F06BBD10038FADE /* Telegram-iOS-AppStore.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "Telegram-iOS-AppStore.entitlements"; sourceTree = "<group>"; };
|
||||
D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Config-Hockeyapp.xcconfig"; sourceTree = "<group>"; };
|
||||
D079FD021F06BBD60038FADE /* Config-AppStore.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Config-AppStore.xcconfig"; sourceTree = "<group>"; };
|
||||
D084023120E1883500065674 /* ApplicationShortcutItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationShortcutItem.swift; sourceTree = "<group>"; };
|
||||
D08410431FABDC5B008FFE92 /* TGItemProviderSignals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGItemProviderSignals.h; sourceTree = "<group>"; };
|
||||
@ -1067,7 +1068,6 @@
|
||||
D08985032118B46F00918162 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D08985052118B62400918162 /* SiriIntents-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SiriIntents-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
D08985062119B7FE00918162 /* IntentContacts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntentContacts.swift; sourceTree = "<group>"; };
|
||||
D0924FFE1FE52C75003F693F /* Config-Hockeyapp Internal.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Config-Hockeyapp Internal.xcconfig"; sourceTree = "<group>"; };
|
||||
D09250001FE52D2A003F693F /* BuildConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BuildConfig.h; sourceTree = "<group>"; };
|
||||
D09250011FE52D2A003F693F /* BuildConfig.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BuildConfig.m; sourceTree = "<group>"; };
|
||||
D096C2BD1CC3C021006D814E /* Display.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
@ -1966,11 +1966,8 @@
|
||||
D008599E1B28189D00EAF753 /* Telegram-iOS */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0338729223A8347007A2CE4 /* Config */,
|
||||
09C50E7821738150009E676F /* Watch */,
|
||||
D0ADF914212B399A00310BBC /* Config-AppStoreLLC.xcconfig */,
|
||||
D079FD021F06BBD60038FADE /* Config-AppStore.xcconfig */,
|
||||
D0924FFE1FE52C75003F693F /* Config-Hockeyapp Internal.xcconfig */,
|
||||
D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */,
|
||||
D021D4D8219CAEDD0064BEBA /* Config-Fork.xcconfig */,
|
||||
D0ADF913212B398000310BBC /* Telegram-iOS-AppStoreLLC.entitlements */,
|
||||
D079FD001F06BBD10038FADE /* Telegram-iOS-AppStore.entitlements */,
|
||||
@ -2140,6 +2137,40 @@
|
||||
path = NotificationContent;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0338729223A8347007A2CE4 /* Config */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0338734223A9A7E007A2CE4 /* Hockeyapp-Internal */,
|
||||
D033872B223A835E007A2CE4 /* AppStore */,
|
||||
D033872A223A834F007A2CE4 /* AppStoreLLC */,
|
||||
);
|
||||
name = Config;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D033872A223A834F007A2CE4 /* AppStoreLLC */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0ADF914212B399A00310BBC /* Config-AppStoreLLC.xcconfig */,
|
||||
);
|
||||
name = AppStoreLLC;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D033872B223A835E007A2CE4 /* AppStore */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D079FD021F06BBD60038FADE /* Config-AppStore.xcconfig */,
|
||||
);
|
||||
name = AppStore;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0338734223A9A7E007A2CE4 /* Hockeyapp-Internal */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */,
|
||||
);
|
||||
name = "Hockeyapp-Internal";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D03B0E791D63484500955575 /* Share */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -2880,6 +2911,7 @@
|
||||
D04DCC211F71C80000B021D7 /* 0.m4a in Resources */,
|
||||
D04DCC261F71C80000B021D7 /* 103.m4a in Resources */,
|
||||
D0CE6F69213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */,
|
||||
D0338736223A9A9A007A2CE4 /* Config-Hockeyapp-Internal.xcconfig in Resources */,
|
||||
D08DB0C0213F4D1D00F2ADBF /* telegram_sphere@2x.png in Resources */,
|
||||
D08DB0AB213F4D1D00F2ADBF /* ic_bubble@2x.png in Resources */,
|
||||
D04DCC341F71C80000B021D7 /* 7.m4a in Resources */,
|
||||
@ -3743,7 +3775,7 @@
|
||||
/* Begin XCBuildConfiguration section */
|
||||
09C56FA62172797500BDF00F /* DebugHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
@ -4102,77 +4134,9 @@
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
09C56FAB2172797500BDF00F /* ReleaseHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
BUILD_NUMBER = 99999;
|
||||
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 Distribution: TELEGRAM MESSENGER LLP";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: TELEGRAM MESSENGER LLP";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = X834Q8SBVP;
|
||||
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;
|
||||
IBSC_MODULE = Watch_Extension;
|
||||
INFOPLIST_FILE = Watch/App/Info.plist;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${APP_BUNDLE_ID}.watchkitapp";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "match InHouse org.telegram.Telegram-iOS.watchkitapp";
|
||||
SDKROOT = watchos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 4.2;
|
||||
TARGETED_DEVICE_FAMILY = 4;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
WATCHOS_DEPLOYMENT_TARGET = 2.2;
|
||||
};
|
||||
name = ReleaseHockeyapp;
|
||||
};
|
||||
09C56FAC2172797500BDF00F /* ReleaseHockeyappInternal */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D0924FFE1FE52C75003F693F /* Config-Hockeyapp Internal.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
@ -4240,7 +4204,7 @@
|
||||
};
|
||||
09C56FAD2172797500BDF00F /* DebugHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication;
|
||||
@ -4605,77 +4569,9 @@
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
09C56FB22172797500BDF00F /* ReleaseHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication;
|
||||
BUILD_NUMBER = 99999;
|
||||
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_STYLE = Manual;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = X834Q8SBVP;
|
||||
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;
|
||||
HEADER_SEARCH_PATHS = submodules/SSignalKit;
|
||||
INFOPLIST_FILE = Watch/Extension/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = submodules/SSignalKit;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${APP_BUNDLE_ID}.watchkitapp.watchkitextension";
|
||||
PRODUCT_NAME = "${TARGET_NAME}";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "match InHouse org.telegram.Telegram-iOS.watchkitapp.watchkitextension";
|
||||
SDKROOT = watchos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 4.2;
|
||||
TARGETED_DEVICE_FAMILY = 4;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
WATCHOS_DEPLOYMENT_TARGET = 2.2;
|
||||
};
|
||||
name = ReleaseHockeyapp;
|
||||
};
|
||||
09C56FB32172797500BDF00F /* ReleaseHockeyappInternal */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D0924FFE1FE52C75003F693F /* Config-Hockeyapp Internal.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication;
|
||||
@ -4743,6 +4639,7 @@
|
||||
};
|
||||
D000CAD121FB6E380011B15D /* DebugHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 99999;
|
||||
@ -4818,6 +4715,7 @@
|
||||
};
|
||||
D000CAD221FB6E380011B15D /* DebugFork */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D021D4D8219CAEDD0064BEBA /* Config-Fork.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 99999;
|
||||
@ -4893,6 +4791,7 @@
|
||||
};
|
||||
D000CAD321FB6E380011B15D /* DebugAppStore */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD021F06BBD60038FADE /* Config-AppStore.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 99999;
|
||||
@ -4968,6 +4867,7 @@
|
||||
};
|
||||
D000CAD421FB6E380011B15D /* DebugAppStoreLLC */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D0ADF914212B399A00310BBC /* Config-AppStoreLLC.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 99999;
|
||||
@ -5043,6 +4943,7 @@
|
||||
};
|
||||
D000CAD521FB6E380011B15D /* ReleaseAppStore */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD021F06BBD60038FADE /* Config-AppStore.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 99999;
|
||||
@ -5111,6 +5012,7 @@
|
||||
};
|
||||
D000CAD621FB6E380011B15D /* ReleaseAppStoreLLC */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D0ADF914212B399A00310BBC /* Config-AppStoreLLC.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 99999;
|
||||
@ -5177,76 +5079,9 @@
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D000CAD721FB6E380011B15D /* ReleaseHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 99999;
|
||||
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_ENTITLEMENTS = "NotificationService/NotificationService-Hockeyapp.entitlements";
|
||||
CODE_SIGN_IDENTITY = "iPhone Distribution: TELEGRAM MESSENGER LLP";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: TELEGRAM MESSENGER LLP";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = X834Q8SBVP;
|
||||
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;
|
||||
INFOPLIST_FILE = NotificationService/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "$(APP_BUNDLE_ID).NotificationService";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "match InHouse org.telegram.Telegram-iOS.NotificationService";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "NotificationService/NotificationService-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 4.2;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = ReleaseHockeyapp;
|
||||
};
|
||||
D000CAD821FB6E380011B15D /* ReleaseHockeyappInternal */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 99999;
|
||||
@ -5315,7 +5150,7 @@
|
||||
};
|
||||
D00859B91B28189D00EAF753 /* DebugHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 9999;
|
||||
@ -5410,7 +5245,7 @@
|
||||
};
|
||||
D00859BC1B28189D00EAF753 /* DebugHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
@ -5497,7 +5332,7 @@
|
||||
};
|
||||
D00859BF1B28189D00EAF753 /* DebugHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
@ -6087,7 +5922,7 @@
|
||||
};
|
||||
D02CF609215D9ABF00E0F56A /* DebugHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 99999;
|
||||
@ -6451,78 +6286,9 @@
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D02CF60E215D9ABF00E0F56A /* ReleaseHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 99999;
|
||||
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_ENTITLEMENTS = "NotificationContent/NotificationContent-HockeyApp.entitlements";
|
||||
CODE_SIGN_IDENTITY = "iPhone Distribution: TELEGRAM MESSENGER LLP";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: TELEGRAM MESSENGER LLP";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = X834Q8SBVP;
|
||||
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;
|
||||
INFOPLIST_FILE = NotificationContent/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${APP_BUNDLE_ID}.NotificationContent";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "match InHouse org.telegram.Telegram-iOS.NotificationContent";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "NotificationContent/NotificationContent-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 4.2;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = ReleaseHockeyapp;
|
||||
};
|
||||
D02CF60F215D9ABF00E0F56A /* ReleaseHockeyappInternal */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D0924FFE1FE52C75003F693F /* Config-Hockeyapp Internal.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 99999;
|
||||
@ -6591,7 +6357,7 @@
|
||||
};
|
||||
D03B0E841D63484500955575 /* DebugHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
BITCODE_GENERATION_MODE = marker;
|
||||
BUILD_NUMBER = 99999;
|
||||
@ -6652,37 +6418,6 @@
|
||||
};
|
||||
name = ReleaseAppStore;
|
||||
};
|
||||
D03B0E861D63484500955575 /* ReleaseHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
buildSettings = {
|
||||
BITCODE_GENERATION_MODE = bitcode;
|
||||
BUILD_NUMBER = 99999;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "Share/Share-HockeyApp.entitlements";
|
||||
CODE_SIGN_IDENTITY = "iPhone Distribution: TELEGRAM MESSENGER LLP";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: TELEGRAM MESSENGER LLP";
|
||||
CURRENT_PROJECT_VERSION = 667;
|
||||
DEVELOPMENT_TEAM = X834Q8SBVP;
|
||||
INFOPLIST_FILE = Share/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${APP_BUNDLE_ID}.Share";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "cfe514a2-916a-4247-b5a4-c2c4c6fd2805";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "match InHouse org.telegram.Telegram-iOS.Share";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_INSTALL_OBJC_HEADER = NO;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Share/Share-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 4.0;
|
||||
};
|
||||
name = ReleaseHockeyapp;
|
||||
};
|
||||
D079FCF91F06BBA40038FADE /* DebugAppStore */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD021F06BBD60038FADE /* Config-AppStore.xcconfig */;
|
||||
@ -6865,7 +6600,7 @@
|
||||
};
|
||||
D0924FF91FE52C46003F693F /* ReleaseHockeyappInternal */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D0924FFE1FE52C75003F693F /* Config-Hockeyapp Internal.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 9999;
|
||||
@ -6909,7 +6644,7 @@
|
||||
};
|
||||
D0924FFA1FE52C46003F693F /* ReleaseHockeyappInternal */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D0924FFE1FE52C75003F693F /* Config-Hockeyapp Internal.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
@ -6953,7 +6688,7 @@
|
||||
};
|
||||
D0924FFB1FE52C46003F693F /* ReleaseHockeyappInternal */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D0924FFE1FE52C75003F693F /* Config-Hockeyapp Internal.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
@ -6972,7 +6707,7 @@
|
||||
};
|
||||
D0924FFC1FE52C46003F693F /* ReleaseHockeyappInternal */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D0924FFE1FE52C75003F693F /* Config-Hockeyapp Internal.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
BITCODE_GENERATION_MODE = bitcode;
|
||||
BUILD_NUMBER = 99999;
|
||||
@ -7003,7 +6738,7 @@
|
||||
};
|
||||
D0924FFD1FE52C46003F693F /* ReleaseHockeyappInternal */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D0924FFE1FE52C75003F693F /* Config-Hockeyapp Internal.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
BITCODE_GENERATION_MODE = bitcode;
|
||||
BUILD_NUMBER = 99999;
|
||||
@ -7354,7 +7089,7 @@
|
||||
};
|
||||
D0B2F743204F4C9900D3BFB9 /* DebugHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 99999;
|
||||
@ -7563,75 +7298,9 @@
|
||||
};
|
||||
name = ReleaseAppStore;
|
||||
};
|
||||
D0B2F746204F4C9900D3BFB9 /* ReleaseHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 99999;
|
||||
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_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = 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_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_ENTITLEMENTS = "Widget/Widget-HockeyApp.entitlements";
|
||||
CODE_SIGN_IDENTITY = "iPhone Distribution: TELEGRAM MESSENGER LLP";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: TELEGRAM MESSENGER LLP";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = X834Q8SBVP;
|
||||
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;
|
||||
INFOPLIST_FILE = Widget/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${APP_BUNDLE_ID}.Widget";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "1a27976e-0845-48e4-ae3d-2ff38089024d";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "match InHouse org.telegram.Telegram-iOS.Widget";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Widget/Widget-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 4.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = ReleaseHockeyapp;
|
||||
};
|
||||
D0B2F747204F4C9900D3BFB9 /* ReleaseHockeyappInternal */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D0924FFE1FE52C75003F693F /* Config-Hockeyapp Internal.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 99999;
|
||||
@ -7993,7 +7662,7 @@
|
||||
};
|
||||
D0D2688F1D79A70B00C422DA /* DebugHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
BITCODE_GENERATION_MODE = marker;
|
||||
BUILD_NUMBER = 99999;
|
||||
@ -8048,145 +7717,9 @@
|
||||
};
|
||||
name = ReleaseAppStore;
|
||||
};
|
||||
D0D268911D79A70B00C422DA /* ReleaseHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
buildSettings = {
|
||||
BITCODE_GENERATION_MODE = bitcode;
|
||||
BUILD_NUMBER = 99999;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "SiriIntents/SiriIntents-Hockeyapp.entitlements";
|
||||
CODE_SIGN_IDENTITY = "iPhone Distribution: TELEGRAM MESSENGER LLP";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: TELEGRAM MESSENGER LLP";
|
||||
CURRENT_PROJECT_VERSION = 667;
|
||||
DEVELOPMENT_TEAM = X834Q8SBVP;
|
||||
INFOPLIST_FILE = SiriIntents/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${APP_BUNDLE_ID}.SiriIntents";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "94efdcdd-1da2-4ec6-87f3-5e50b55a07f9";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "match InHouse org.telegram.Telegram-iOS.SiriIntents";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "SiriIntents/SiriIntents-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 4.0;
|
||||
};
|
||||
name = ReleaseHockeyapp;
|
||||
};
|
||||
D0D7481D1CBBE0AC00B0ED5C /* ReleaseHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUILD_NUMBER = 9999;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "iPhone Distribution: TELEGRAM MESSENGER LLP";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: TELEGRAM MESSENGER LLP";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
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;
|
||||
PROVISIONING_PROFILE = "f58b31fd-48bf-4eac-b066-a5ebea37dfd7";
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = ReleaseHockeyapp;
|
||||
};
|
||||
D0D7481E1CBBE0AC00B0ED5C /* ReleaseHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
BITCODE_GENERATION_MODE = bitcode;
|
||||
BUILD_NUMBER = 99999;
|
||||
CLANG_MODULES_AUTOLINK = NO;
|
||||
CODE_SIGN_ENTITLEMENTS = "Telegram-iOS/Telegram-iOS-Hockeyapp.entitlements";
|
||||
CODE_SIGN_IDENTITY = "iPhone Distribution: TELEGRAM MESSENGER LLP";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: TELEGRAM MESSENGER LLP";
|
||||
COMMIT_ID = "";
|
||||
CURRENT_PROJECT_VERSION = 667;
|
||||
DEVELOPMENT_TEAM = X834Q8SBVP;
|
||||
ENABLE_BITCODE = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(BUILT_PRODUCTS_DIR)",
|
||||
"$(PROJECT_DIR)/third-party",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/Watch/Bridge";
|
||||
INFOPLIST_FILE = "Telegram-iOS/Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/submodules/TelegramUI/third-party/opus/lib",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"-lz",
|
||||
);
|
||||
OTHER_SWIFT_FLAGS = "";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${APP_BUNDLE_ID}";
|
||||
PRODUCT_NAME = "Telegram X";
|
||||
PROVISIONING_PROFILE = "a453791e-7153-42a4-8b61-d00a130e59d2";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "match InHouse org.telegram.Telegram-iOS";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Telegram-iOS/Telegram-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 4.0;
|
||||
USER_HEADER_SEARCH_PATHS = "";
|
||||
};
|
||||
name = ReleaseHockeyapp;
|
||||
};
|
||||
D0D7481F1CBBE0AC00B0ED5C /* ReleaseHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
FRAMEWORK_SEARCH_PATHS = "$(SDKROOT)/Developer/Library/Frameworks";
|
||||
INFOPLIST_FILE = "Telegram-iOSTests/Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SWIFT_VERSION = 3.0;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Telegram-iOS.app/Telegram-iOS";
|
||||
};
|
||||
name = ReleaseHockeyapp;
|
||||
};
|
||||
D0ECCB831FE9C38500609802 /* DebugHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
@ -8384,71 +7917,9 @@
|
||||
};
|
||||
name = ReleaseAppStore;
|
||||
};
|
||||
D0ECCB861FE9C38500609802 /* ReleaseHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D079FD011F06BBD60038FADE /* Config-Hockeyapp.xcconfig */;
|
||||
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_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = 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_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";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = "";
|
||||
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;
|
||||
INFOPLIST_FILE = "Telegram-iOS UITests/Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.Telegram.Telegram-iOS-UITests";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "df24dc18-3fdc-447c-b347-5a110cecd77d";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 4.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
TEST_TARGET_NAME = "Telegram-iOS";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = ReleaseHockeyapp;
|
||||
};
|
||||
D0ECCB871FE9C38500609802 /* ReleaseHockeyappInternal */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D0924FFE1FE52C75003F693F /* Config-Hockeyapp Internal.xcconfig */;
|
||||
baseConfigurationReference = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
@ -8520,7 +7991,6 @@
|
||||
09C56FAF2172797500BDF00F /* DebugAppStoreLLC */,
|
||||
09C56FB02172797500BDF00F /* ReleaseAppStore */,
|
||||
09C56FB12172797500BDF00F /* ReleaseAppStoreLLC */,
|
||||
09C56FB22172797500BDF00F /* ReleaseHockeyapp */,
|
||||
09C56FB32172797500BDF00F /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
@ -8535,7 +8005,6 @@
|
||||
09C56FA82172797500BDF00F /* DebugAppStoreLLC */,
|
||||
09C56FA92172797500BDF00F /* ReleaseAppStore */,
|
||||
09C56FAA2172797500BDF00F /* ReleaseAppStoreLLC */,
|
||||
09C56FAB2172797500BDF00F /* ReleaseHockeyapp */,
|
||||
09C56FAC2172797500BDF00F /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
@ -8550,7 +8019,6 @@
|
||||
D000CAD421FB6E380011B15D /* DebugAppStoreLLC */,
|
||||
D000CAD521FB6E380011B15D /* ReleaseAppStore */,
|
||||
D000CAD621FB6E380011B15D /* ReleaseAppStoreLLC */,
|
||||
D000CAD721FB6E380011B15D /* ReleaseHockeyapp */,
|
||||
D000CAD821FB6E380011B15D /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
@ -8565,7 +8033,6 @@
|
||||
D0ADF915212B3A9D00310BBC /* DebugAppStoreLLC */,
|
||||
D00859BA1B28189D00EAF753 /* ReleaseAppStore */,
|
||||
D0CE6F0D213DC33200BCD44B /* ReleaseAppStoreLLC */,
|
||||
D0D7481D1CBBE0AC00B0ED5C /* ReleaseHockeyapp */,
|
||||
D0924FF91FE52C46003F693F /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
@ -8580,7 +8047,6 @@
|
||||
D0ADF916212B3A9D00310BBC /* DebugAppStoreLLC */,
|
||||
D00859BD1B28189D00EAF753 /* ReleaseAppStore */,
|
||||
D0CE6F0E213DC33200BCD44B /* ReleaseAppStoreLLC */,
|
||||
D0D7481E1CBBE0AC00B0ED5C /* ReleaseHockeyapp */,
|
||||
D0924FFA1FE52C46003F693F /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
@ -8595,7 +8061,6 @@
|
||||
D0ADF917212B3A9E00310BBC /* DebugAppStoreLLC */,
|
||||
D00859C01B28189D00EAF753 /* ReleaseAppStore */,
|
||||
D0CE6F0F213DC33200BCD44B /* ReleaseAppStoreLLC */,
|
||||
D0D7481F1CBBE0AC00B0ED5C /* ReleaseHockeyapp */,
|
||||
D0924FFB1FE52C46003F693F /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
@ -8610,7 +8075,6 @@
|
||||
D02CF60B215D9ABF00E0F56A /* DebugAppStoreLLC */,
|
||||
D02CF60C215D9ABF00E0F56A /* ReleaseAppStore */,
|
||||
D02CF60D215D9ABF00E0F56A /* ReleaseAppStoreLLC */,
|
||||
D02CF60E215D9ABF00E0F56A /* ReleaseHockeyapp */,
|
||||
D02CF60F215D9ABF00E0F56A /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
@ -8625,7 +8089,6 @@
|
||||
D0ADF918212B3A9E00310BBC /* DebugAppStoreLLC */,
|
||||
D03B0E851D63484500955575 /* ReleaseAppStore */,
|
||||
D0CE6F10213DC33200BCD44B /* ReleaseAppStoreLLC */,
|
||||
D03B0E861D63484500955575 /* ReleaseHockeyapp */,
|
||||
D0924FFC1FE52C46003F693F /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
@ -8640,7 +8103,6 @@
|
||||
D0ADF91B212B3A9E00310BBC /* DebugAppStoreLLC */,
|
||||
D0B2F745204F4C9900D3BFB9 /* ReleaseAppStore */,
|
||||
D0CE6F13213DC33200BCD44B /* ReleaseAppStoreLLC */,
|
||||
D0B2F746204F4C9900D3BFB9 /* ReleaseHockeyapp */,
|
||||
D0B2F747204F4C9900D3BFB9 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
@ -8655,7 +8117,6 @@
|
||||
D0ADF919212B3A9E00310BBC /* DebugAppStoreLLC */,
|
||||
D0D268901D79A70B00C422DA /* ReleaseAppStore */,
|
||||
D0CE6F11213DC33200BCD44B /* ReleaseAppStoreLLC */,
|
||||
D0D268911D79A70B00C422DA /* ReleaseHockeyapp */,
|
||||
D0924FFD1FE52C46003F693F /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
@ -8670,7 +8131,6 @@
|
||||
D0ADF91A212B3A9E00310BBC /* DebugAppStoreLLC */,
|
||||
D0ECCB851FE9C38500609802 /* ReleaseAppStore */,
|
||||
D0CE6F12213DC33200BCD44B /* ReleaseAppStoreLLC */,
|
||||
D0ECCB861FE9C38500609802 /* ReleaseHockeyapp */,
|
||||
D0ECCB871FE9C38500609802 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
|
||||
@ -1,145 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0900"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<PreActions>
|
||||
<ExecutionAction
|
||||
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
|
||||
<ActionContent
|
||||
title = "Run Script"
|
||||
scriptText = "export DYLD_INSERT_LIBRARIES=/Users/peter/Library/Developer/Xcode/DerivedData/BuildClusterFileRemap-bcqudxadbptcjbdlnzensopnyzzc/Build/Products/Debug/libBuildClusterFileRemap.dylib export DYLD_FORCE_FLAT_NAMESPACE=1">
|
||||
</ActionContent>
|
||||
</ExecutionAction>
|
||||
</PreActions>
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "D008599B1B28189D00EAF753"
|
||||
BuildableName = "Telegram X.app"
|
||||
BlueprintName = "Telegram-iOS"
|
||||
ReferencedContainer = "container:Telegram-iOS.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "NO"
|
||||
buildForProfiling = "NO"
|
||||
buildForArchiving = "NO"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "D00859B01B28189D00EAF753"
|
||||
BuildableName = "Telegram-iOSTests.xctest"
|
||||
BlueprintName = "Telegram-iOSTests"
|
||||
ReferencedContainer = "container:Telegram-iOS.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "DebugHockeyapp"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "D00859B01B28189D00EAF753"
|
||||
BuildableName = "Telegram-iOSTests.xctest"
|
||||
BlueprintName = "Telegram-iOSTests"
|
||||
ReferencedContainer = "container:Telegram-iOS.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "D0ECCB7B1FE9C38500609802"
|
||||
BuildableName = "Telegram-iOS UITests.xctest"
|
||||
BlueprintName = "Telegram-iOS UITests"
|
||||
ReferencedContainer = "container:Telegram-iOS.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "D008599B1B28189D00EAF753"
|
||||
BuildableName = "Telegram X.app"
|
||||
BlueprintName = "Telegram-iOS"
|
||||
ReferencedContainer = "container:Telegram-iOS.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "DebugHockeyapp"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
stopOnEveryThreadSanitizerIssue = "YES"
|
||||
stopOnEveryUBSanitizerIssue = "YES"
|
||||
stopOnEveryMainThreadCheckerIssue = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES"
|
||||
queueDebuggingEnabled = "No">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "D008599B1B28189D00EAF753"
|
||||
BuildableName = "Telegram X.app"
|
||||
BlueprintName = "Telegram-iOS"
|
||||
ReferencedContainer = "container:Telegram-iOS.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<EnvironmentVariables>
|
||||
<EnvironmentVariable
|
||||
key = "OS_ACTIVITY_MODE"
|
||||
value = "disable"
|
||||
isEnabled = "YES">
|
||||
</EnvironmentVariable>
|
||||
</EnvironmentVariables>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "DebugHockeyapp"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "D008599B1B28189D00EAF753"
|
||||
BuildableName = "Telegram X.app"
|
||||
BlueprintName = "Telegram-iOS"
|
||||
ReferencedContainer = "container:Telegram-iOS.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "DebugHockeyapp">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "ReleaseHockeyapp"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
@ -344,7 +344,7 @@ private final class SharedApplicationContext {
|
||||
|
||||
let appVersion = (Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String) ?? "unknown"
|
||||
|
||||
let networkArguments = NetworkInitializationArguments(apiId: apiId, languagesCategory: languagesCategory, appVersion: appVersion, voipMaxLayer: PresentationCallManager.voipMaxLayer)
|
||||
let networkArguments = NetworkInitializationArguments(apiId: apiId, languagesCategory: languagesCategory, appVersion: appVersion, voipMaxLayer: PresentationCallManager.voipMaxLayer, appData: BuildConfig.shared().bundleData)
|
||||
|
||||
let appGroupName = "group.\(Bundle.main.bundleIdentifier!)"
|
||||
let maybeAppGroupUrl = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: appGroupName)
|
||||
@ -1076,8 +1076,8 @@ private final class SharedApplicationContext {
|
||||
}
|
||||
})
|
||||
|
||||
if !BuildConfig.shared().hockeyAppId.isEmpty {
|
||||
BITHockeyManager.shared().configure(withIdentifier: BuildConfig.shared().hockeyAppId, delegate: self)
|
||||
if let hockeyAppId = BuildConfig.shared().hockeyAppId, !hockeyAppId.isEmpty {
|
||||
BITHockeyManager.shared().configure(withIdentifier: hockeyAppId, delegate: self)
|
||||
BITHockeyManager.shared().crashManager.crashManagerStatus = .alwaysAsk
|
||||
BITHockeyManager.shared().start()
|
||||
BITHockeyManager.shared().authenticator.authenticateInstallation()
|
||||
@ -1612,81 +1612,84 @@ private final class SharedApplicationContext {
|
||||
|
||||
@available(iOS 10.0, *)
|
||||
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
|
||||
if response.actionIdentifier == UNNotificationDefaultActionIdentifier {
|
||||
if let peerId = peerIdFromNotification(response.notification) {
|
||||
var messageId: MessageId? = nil
|
||||
if response.notification.request.content.categoryIdentifier == "watch" {
|
||||
messageId = messageIdFromNotification(peerId: peerId, notification: response.notification)
|
||||
}
|
||||
self.openChatWhenReady(accountId: accountIdFromNotification(response.notification), peerId: peerId, messageId: messageId)
|
||||
}
|
||||
completionHandler()
|
||||
} else if response.actionIdentifier == "reply", let peerId = peerIdFromNotification(response.notification), let accountId = accountIdFromNotification(response.notification) {
|
||||
guard let response = response as? UNTextInputNotificationResponse, !response.userText.isEmpty else {
|
||||
completionHandler()
|
||||
return
|
||||
}
|
||||
let text = response.userText
|
||||
let signal = self.sharedContextPromise.get()
|
||||
|> take(1)
|
||||
|> deliverOnMainQueue
|
||||
|> mapToSignal { sharedContext -> Signal<Void, NoError> in
|
||||
sharedContext.wakeupManager.allowBackgroundTimeExtension(timeout: 4.0)
|
||||
return sharedContext.sharedContext.activeAccounts
|
||||
|> mapToSignal { _, accounts, _ -> Signal<Account, NoError> in
|
||||
for account in accounts {
|
||||
if account.1.id == accountId {
|
||||
return .single(account.1)
|
||||
}
|
||||
let _ = (accountIdFromNotification(response.notification, sharedContext: self.sharedContextPromise.get())
|
||||
|> deliverOnMainQueue).start(next: { accountId in
|
||||
if response.actionIdentifier == UNNotificationDefaultActionIdentifier {
|
||||
if let peerId = peerIdFromNotification(response.notification) {
|
||||
var messageId: MessageId? = nil
|
||||
if response.notification.request.content.categoryIdentifier == "watch" {
|
||||
messageId = messageIdFromNotification(peerId: peerId, notification: response.notification)
|
||||
}
|
||||
return .complete()
|
||||
self.openChatWhenReady(accountId: accountId, peerId: peerId, messageId: messageId)
|
||||
}
|
||||
completionHandler()
|
||||
} else if response.actionIdentifier == "reply", let peerId = peerIdFromNotification(response.notification), let accountId = accountId {
|
||||
guard let response = response as? UNTextInputNotificationResponse, !response.userText.isEmpty else {
|
||||
completionHandler()
|
||||
return
|
||||
}
|
||||
let text = response.userText
|
||||
let signal = self.sharedContextPromise.get()
|
||||
|> take(1)
|
||||
|> deliverOnMainQueue
|
||||
|> mapToSignal { account -> Signal<Void, NoError> in
|
||||
if let messageId = messageIdFromNotification(peerId: peerId, notification: response.notification) {
|
||||
let _ = applyMaxReadIndexInteractively(postbox: account.postbox, stateManager: account.stateManager, index: MessageIndex(id: messageId, timestamp: 0)).start()
|
||||
}
|
||||
return enqueueMessages(account: account, peerId: peerId, messages: [EnqueueMessage.message(text: text, attributes: [], mediaReference: nil, replyToMessageId: nil, localGroupingKey: nil)])
|
||||
|> map { messageIds -> MessageId? in
|
||||
if messageIds.isEmpty {
|
||||
return nil
|
||||
} else {
|
||||
return messageIds[0]
|
||||
}
|
||||
}
|
||||
|> mapToSignal { messageId -> Signal<Void, NoError> in
|
||||
if let messageId = messageId {
|
||||
return account.postbox.unsentMessageIdsView()
|
||||
|> filter { view in
|
||||
return !view.ids.contains(messageId)
|
||||
|> mapToSignal { sharedContext -> Signal<Void, NoError> in
|
||||
sharedContext.wakeupManager.allowBackgroundTimeExtension(timeout: 4.0)
|
||||
return sharedContext.sharedContext.activeAccounts
|
||||
|> mapToSignal { _, accounts, _ -> Signal<Account, NoError> in
|
||||
for account in accounts {
|
||||
if account.1.id == accountId {
|
||||
return .single(account.1)
|
||||
}
|
||||
|> take(1)
|
||||
|> mapToSignal { _ -> Signal<Void, NoError> in
|
||||
}
|
||||
return .complete()
|
||||
}
|
||||
|> take(1)
|
||||
|> deliverOnMainQueue
|
||||
|> mapToSignal { account -> Signal<Void, NoError> in
|
||||
if let messageId = messageIdFromNotification(peerId: peerId, notification: response.notification) {
|
||||
let _ = applyMaxReadIndexInteractively(postbox: account.postbox, stateManager: account.stateManager, index: MessageIndex(id: messageId, timestamp: 0)).start()
|
||||
}
|
||||
return enqueueMessages(account: account, peerId: peerId, messages: [EnqueueMessage.message(text: text, attributes: [], mediaReference: nil, replyToMessageId: nil, localGroupingKey: nil)])
|
||||
|> map { messageIds -> MessageId? in
|
||||
if messageIds.isEmpty {
|
||||
return nil
|
||||
} else {
|
||||
return messageIds[0]
|
||||
}
|
||||
}
|
||||
|> mapToSignal { messageId -> Signal<Void, NoError> in
|
||||
if let messageId = messageId {
|
||||
return account.postbox.unsentMessageIdsView()
|
||||
|> filter { view in
|
||||
return !view.ids.contains(messageId)
|
||||
}
|
||||
|> take(1)
|
||||
|> mapToSignal { _ -> Signal<Void, NoError> in
|
||||
return .complete()
|
||||
}
|
||||
} else {
|
||||
return .complete()
|
||||
}
|
||||
} else {
|
||||
return .complete()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|> deliverOnMainQueue
|
||||
|> deliverOnMainQueue
|
||||
|
||||
let disposable = MetaDisposable()
|
||||
disposable.set((signal
|
||||
|> afterDisposed { [weak disposable] in
|
||||
Queue.mainQueue().async {
|
||||
if let disposable = disposable {
|
||||
self.replyFromNotificationsDisposables.remove(disposable)
|
||||
let disposable = MetaDisposable()
|
||||
disposable.set((signal
|
||||
|> afterDisposed { [weak disposable] in
|
||||
Queue.mainQueue().async {
|
||||
if let disposable = disposable {
|
||||
self.replyFromNotificationsDisposables.remove(disposable)
|
||||
}
|
||||
completionHandler()
|
||||
}
|
||||
completionHandler()
|
||||
}
|
||||
}).start())
|
||||
self.replyFromNotificationsDisposables.add(disposable)
|
||||
} else {
|
||||
completionHandler()
|
||||
}
|
||||
}).start())
|
||||
self.replyFromNotificationsDisposables.add(disposable)
|
||||
} else {
|
||||
completionHandler()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
private func registerForNotifications(context: AccountContext, authorize: Bool = true, completion: @escaping (Bool) -> Void = { _ in }) {
|
||||
@ -1731,7 +1734,7 @@ private final class SharedApplicationContext {
|
||||
replyMessageCategory = UNNotificationCategory(identifier: "withReply", actions: [reply], intentIdentifiers: [], hiddenPreviewsBodyPlaceholder: hiddenContentString, options: options)
|
||||
replyLegacyMessageCategory = UNNotificationCategory(identifier: "r", actions: [reply], intentIdentifiers: [], hiddenPreviewsBodyPlaceholder: hiddenContentString, options: options)
|
||||
replyLegacyMediaMessageCategory = UNNotificationCategory(identifier: "m", actions: [reply], intentIdentifiers: [], hiddenPreviewsBodyPlaceholder: hiddenContentString, options: options)
|
||||
legacyChannelMessageCategory = UNNotificationCategory(identifier: "c", actions: [reply], intentIdentifiers: [], hiddenPreviewsBodyPlaceholder: hiddenContentString, options: options)
|
||||
legacyChannelMessageCategory = UNNotificationCategory(identifier: "c", actions: [], intentIdentifiers: [], hiddenPreviewsBodyPlaceholder: hiddenContentString, options: options)
|
||||
replyMediaMessageCategory = UNNotificationCategory(identifier: "withReplyMedia", actions: [reply], intentIdentifiers: [], hiddenPreviewsBodyPlaceholder: hiddenContentString, options: options)
|
||||
muteMessageCategory = UNNotificationCategory(identifier: "withMute", actions: [], intentIdentifiers: [], hiddenPreviewsBodyPlaceholder: hiddenContentString, options: options)
|
||||
muteMediaMessageCategory = UNNotificationCategory(identifier: "withMuteMedia", actions: [], intentIdentifiers: [], hiddenPreviewsBodyPlaceholder: hiddenContentString, options: options)
|
||||
@ -1884,11 +1887,14 @@ private final class SharedApplicationContext {
|
||||
|
||||
@available(iOS 10.0, *)
|
||||
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
|
||||
if let context = self.contextValue {
|
||||
if let accountId = accountIdFromNotification(notification), context.context.account.id != accountId {
|
||||
completionHandler([.alert])
|
||||
let _ = (accountIdFromNotification(notification, sharedContext: self.sharedContextPromise.get())
|
||||
|> deliverOnMainQueue).start(next: { accountId in
|
||||
if let context = self.contextValue {
|
||||
if let accountId = accountId, context.context.account.id != accountId {
|
||||
completionHandler([.alert])
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override var next: UIResponder? {
|
||||
@ -1913,13 +1919,70 @@ private final class SharedApplicationContext {
|
||||
}
|
||||
}
|
||||
|
||||
@available(iOS 10.0, *)
|
||||
private func accountIdFromNotification(_ notification: UNNotification) -> AccountRecordId? {
|
||||
if let id = notification.request.content.userInfo["accountId"] as? Int64 {
|
||||
return AccountRecordId(rawValue: id)
|
||||
} else {
|
||||
private func notificationPayloadKey(data: Data) -> Data? {
|
||||
if data.count < 8 {
|
||||
return nil
|
||||
}
|
||||
return data.subdata(in: 0 ..< 8)
|
||||
}
|
||||
|
||||
@available(iOS 10.0, *)
|
||||
private func accountIdFromNotification(_ notification: UNNotification, sharedContext: Signal<SharedApplicationContext, NoError>) -> Signal<AccountRecordId?, NoError> {
|
||||
if let id = notification.request.content.userInfo["accountId"] as? Int64 {
|
||||
return .single(AccountRecordId(rawValue: id))
|
||||
} else {
|
||||
var encryptedData: Data?
|
||||
if var encryptedPayload = notification.request.content.userInfo["p"] as? String {
|
||||
encryptedPayload = encryptedPayload.replacingOccurrences(of: "-", with: "+")
|
||||
encryptedPayload = encryptedPayload.replacingOccurrences(of: "_", with: "/")
|
||||
while encryptedPayload.count % 4 != 0 {
|
||||
encryptedPayload.append("=")
|
||||
}
|
||||
encryptedData = Data(base64Encoded: encryptedPayload)
|
||||
}
|
||||
if let encryptedData = encryptedData, let notificationKeyId = notificationPayloadKey(data: encryptedData) {
|
||||
return sharedContext
|
||||
|> take(1)
|
||||
|> mapToSignal { sharedContext -> Signal<AccountRecordId?, NoError> in
|
||||
return sharedContext.sharedContext.activeAccounts
|
||||
|> take(1)
|
||||
|> mapToSignal { _, accounts, _ -> Signal<AccountRecordId?, NoError> in
|
||||
let keys = accounts.map { _, account, _ -> Signal<(AccountRecordId, MasterNotificationKey)?, NoError> in
|
||||
return masterNotificationsKey(account: account, ignoreDisabled: true)
|
||||
|> map { key in
|
||||
return (account.id, key)
|
||||
}
|
||||
}
|
||||
return combineLatest(keys)
|
||||
|> map { keys -> AccountRecordId? in
|
||||
for idAndKey in keys {
|
||||
if let (id, key) = idAndKey, key.id == notificationKeyId {
|
||||
return id
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if let userId = notification.request.content.userInfo["userId"] as? Int {
|
||||
return sharedContext
|
||||
|> take(1)
|
||||
|> mapToSignal { sharedContext -> Signal<AccountRecordId?, NoError> in
|
||||
return sharedContext.sharedContext.activeAccounts
|
||||
|> take(1)
|
||||
|> map { _, accounts, _ -> AccountRecordId? in
|
||||
for (_, account, _) in accounts {
|
||||
if Int(account.peerId.id) == userId {
|
||||
return account.id
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return .single(nil)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@available(iOS 10.0, *)
|
||||
|
||||
@ -649,7 +649,7 @@ final class AuthorizedApplicationContext {
|
||||
|
||||
if !didAppear {
|
||||
Queue.mainQueue().after(0.15, {
|
||||
(strongSelf.rootController.viewControllers.last as? ViewController)?.present(controller, in: .window(.root), with: ViewControllerPresentationArguments.init(presentationAnimation: .modalSheet))
|
||||
(strongSelf.rootController.viewControllers.last as? ViewController)?.present(controller, in: .window(.root), with: ViewControllerPresentationArguments(presentationAnimation: .modalSheet))
|
||||
})
|
||||
}
|
||||
} else {
|
||||
@ -698,7 +698,7 @@ final class AuthorizedApplicationContext {
|
||||
if let strongSelf = self{
|
||||
for text in alerts {
|
||||
let presentationData = strongSelf.context.sharedContext.currentPresentationData.with { $0 }
|
||||
let controller = standardTextAlertController(theme: AlertControllerTheme(presentationTheme: presentationData.theme), title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})])
|
||||
let controller = textAlertController(context: strongSelf.context, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})])
|
||||
(strongSelf.rootController.viewControllers.last as? ViewController)?.present(controller, in: .window(.root))
|
||||
}
|
||||
}
|
||||
@ -712,10 +712,10 @@ final class AuthorizedApplicationContext {
|
||||
})
|
||||
|
||||
let importableContacts = self.context.sharedContext.contactDataManager?.importable() ?? .single([:])
|
||||
self.context.account.importableContacts.set(self.context.sharedContext.accountManager.sharedData(keys: [ApplicationSpecificSharedDataKeys.contactSynchronizationSettings])
|
||||
|> mapToSignal { sharedData -> Signal<[DeviceContactNormalizedPhoneNumber: ImportableDeviceContactData], NoError> in
|
||||
let settings: ContactSynchronizationSettings = (sharedData.entries[ApplicationSpecificSharedDataKeys.contactSynchronizationSettings] as? ContactSynchronizationSettings) ?? .defaultSettings
|
||||
if settings.synchronizeDeviceContacts {
|
||||
self.context.account.importableContacts.set(self.context.account.postbox.preferencesView(keys: [PreferencesKeys.contactsSettings])
|
||||
|> mapToSignal { preferences -> Signal<[DeviceContactNormalizedPhoneNumber: ImportableDeviceContactData], NoError> in
|
||||
let settings: ContactsSettings = (preferences.values[PreferencesKeys.contactsSettings] as? ContactsSettings) ?? .defaultSettings
|
||||
if settings.synchronizeContacts {
|
||||
return importableContacts
|
||||
} else {
|
||||
return .single([:])
|
||||
@ -783,7 +783,7 @@ final class AuthorizedApplicationContext {
|
||||
navigateToMessage()
|
||||
} else {
|
||||
let presentationData = strongSelf.context.sharedContext.currentPresentationData.with { $0 }
|
||||
let controller = standardTextAlertController(theme: AlertControllerTheme(presentationTheme: presentationData.theme), title: presentationData.strings.WatchRemote_AlertTitle, text: presentationData.strings.WatchRemote_AlertText, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .genericAction, title: presentationData.strings.WatchRemote_AlertOpen, action:navigateToMessage)])
|
||||
let controller = textAlertController(context: strongSelf.context, title: presentationData.strings.WatchRemote_AlertTitle, text: presentationData.strings.WatchRemote_AlertText, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .genericAction, title: presentationData.strings.WatchRemote_AlertOpen, action:navigateToMessage)])
|
||||
(strongSelf.rootController.viewControllers.last as? ViewController)?.present(controller, in: .window(.root))
|
||||
}
|
||||
} else {
|
||||
@ -840,7 +840,7 @@ final class AuthorizedApplicationContext {
|
||||
}
|
||||
|
||||
func openRootSearch() {
|
||||
self.rootController.openChatsSearch()
|
||||
self.rootController.openChatsController(activateSearch: true)
|
||||
}
|
||||
|
||||
func openRootCompose() {
|
||||
|
||||
@ -4,7 +4,8 @@
|
||||
|
||||
+ (instancetype _Nonnull)sharedBuildConfig;
|
||||
|
||||
@property (nonatomic, strong, readonly) NSString * _Nonnull hockeyAppId;
|
||||
@property (nonatomic, strong, readonly) NSData * _Nullable bundleData;
|
||||
@property (nonatomic, strong, readonly) NSString * _Nullable hockeyAppId;
|
||||
@property (nonatomic, readonly) int32_t apiId;
|
||||
@property (nonatomic, strong, readonly) NSString * _Nonnull apiHash;
|
||||
@property (nonatomic, readonly) bool isInternalBuild;
|
||||
|
||||
@ -1,7 +1,265 @@
|
||||
#import "BuildConfig.h"
|
||||
|
||||
#include <mach-o/arch.h>
|
||||
#include <mach-o/loader.h>
|
||||
#include <mach-o/fat.h>
|
||||
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#import <MtProtoKitDynamic/MtProtoKitDynamic.h>
|
||||
|
||||
static uint32_t funcSwap32(uint32_t input)
|
||||
{
|
||||
return OSSwapBigToHostInt32(input);
|
||||
}
|
||||
|
||||
static uint32_t funcNoSwap32(uint32_t input)
|
||||
{
|
||||
return OSSwapLittleToHostInt32(input);
|
||||
}
|
||||
|
||||
/*
|
||||
* Magic numbers used by Code Signing
|
||||
*/
|
||||
enum {
|
||||
kSecCodeMagicRequirement = 0xfade0c00, /* single requirement */
|
||||
kSecCodeMagicRequirementSet = 0xfade0c01, /* requirement set */
|
||||
kSecCodeMagicCodeDirectory = 0xfade0c02, /* CodeDirectory */
|
||||
kSecCodeMagicEmbeddedSignature = 0xfade0cc0, /* single-architecture embedded signature */
|
||||
kSecCodeMagicDetachedSignature = 0xfade0cc1, /* detached multi-architecture signature */
|
||||
kSecCodeMagicEntitlement = 0xfade7171, /* entitlement blob */
|
||||
|
||||
kSecCodeMagicByte = 0xfa /* shared first byte */
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Structure of an embedded-signature SuperBlob
|
||||
*/
|
||||
typedef struct __BlobIndex {
|
||||
uint32_t type; /* type of entry */
|
||||
uint32_t offset; /* offset of entry */
|
||||
} CS_BlobIndex;
|
||||
|
||||
typedef struct __Blob {
|
||||
uint32_t magic; /* magic number */
|
||||
uint32_t length; /* total length of SuperBlob */
|
||||
} CS_Blob;
|
||||
|
||||
typedef struct __SuperBlob {
|
||||
CS_Blob blob;
|
||||
uint32_t count; /* number of index entries following */
|
||||
CS_BlobIndex index[]; /* (count) entries */
|
||||
/* followed by Blobs in no particular order as indicated by offsets in index */
|
||||
} CS_SuperBlob;
|
||||
|
||||
|
||||
/*
|
||||
* C form of a CodeDirectory.
|
||||
*/
|
||||
typedef struct __CodeDirectory {
|
||||
uint32_t magic; /* magic number (CSMAGIC_CODEDIRECTORY) */
|
||||
uint32_t length; /* total length of CodeDirectory blob */
|
||||
uint32_t version; /* compatibility version */
|
||||
uint32_t flags; /* setup and mode flags */
|
||||
uint32_t hashOffset; /* offset of hash slot element at index zero */
|
||||
uint32_t identOffset; /* offset of identifier string */
|
||||
uint32_t nSpecialSlots; /* number of special hash slots */
|
||||
uint32_t nCodeSlots; /* number of ordinary (code) hash slots */
|
||||
uint32_t codeLimit; /* limit to main image signature range */
|
||||
uint8_t hashSize; /* size of each hash in bytes */
|
||||
uint8_t hashType; /* type of hash (cdHashType* constants) */
|
||||
uint8_t spare1; /* unused (must be zero) */
|
||||
uint8_t pageSize; /* log2(page size in bytes); 0 => infinite */
|
||||
uint32_t spare2; /* unused (must be zero) */
|
||||
/* followed by dynamic content as located by offset fields above */
|
||||
} CS_CodeDirectory;
|
||||
|
||||
static MTPKCS * _Nullable parseSignature(const char* buffer, size_t size) {
|
||||
CS_SuperBlob* sb = (CS_SuperBlob*)buffer;
|
||||
if (OSSwapBigToHostInt32(sb->blob.magic) != kSecCodeMagicEmbeddedSignature)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t count = OSSwapBigToHostInt32(sb->count);
|
||||
|
||||
for (uint32_t i = 0; i < count; i++)
|
||||
{
|
||||
uint32_t offset = OSSwapBigToHostInt32(sb->index[i].offset);
|
||||
|
||||
const CS_Blob* blob = (const CS_Blob*)(buffer + offset);
|
||||
|
||||
if (OSSwapBigToHostInt32(blob->magic) == 0xfade0b01) // signature
|
||||
{
|
||||
printf("Embedded signature, length: %d\n", OSSwapBigToHostInt32(blob->length));
|
||||
|
||||
if (OSSwapBigToHostInt32(blob->length) != 8)
|
||||
{
|
||||
const unsigned char* message = (const unsigned char*)buffer + offset + 8;
|
||||
MTPKCS *result = [MTPKCS parse:message size:(OSSwapBigToHostInt32(blob->length) - 8)];
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
static MTPKCS * _Nullable parseArch(const char* buffer, size_t size) {
|
||||
uint32_t (*swap32)(uint32_t) = funcNoSwap32;
|
||||
|
||||
uint32_t offset = 0;
|
||||
|
||||
const struct mach_header* header = (struct mach_header*)(buffer + offset);
|
||||
|
||||
switch (header->magic) {
|
||||
case MH_CIGAM:
|
||||
swap32 = funcSwap32;
|
||||
case MH_MAGIC:
|
||||
offset += sizeof(struct mach_header);
|
||||
break;
|
||||
case MH_CIGAM_64:
|
||||
swap32 = funcSwap32;
|
||||
case MH_MAGIC_64:
|
||||
offset += sizeof(struct mach_header_64);
|
||||
break;
|
||||
default:
|
||||
return nil;
|
||||
}
|
||||
|
||||
const NXArchInfo *archInfo = NXGetArchInfoFromCpuType(swap32(header->cputype), swap32(header->cpusubtype));
|
||||
if (archInfo != NULL) {
|
||||
printf("Architecture: %s\n", archInfo->name);
|
||||
}
|
||||
|
||||
uint32_t commandCount = swap32(header->ncmds);
|
||||
|
||||
for (uint32_t i = 0; i < commandCount; i++) {
|
||||
const struct load_command* loadCommand = (const struct load_command*)(buffer + offset);
|
||||
uint32_t commandSize = swap32(loadCommand->cmdsize);
|
||||
|
||||
uint32_t commandType = swap32(loadCommand->cmd);
|
||||
if (commandType == LC_CODE_SIGNATURE) {
|
||||
const struct linkedit_data_command* dataCommand = (const struct linkedit_data_command*)(buffer + offset);
|
||||
uint32_t dataOffset = swap32(dataCommand->dataoff);
|
||||
uint32_t dataSize = swap32(dataCommand->datasize);
|
||||
|
||||
return parseSignature(buffer + dataOffset, dataSize);
|
||||
}
|
||||
|
||||
offset += commandSize;
|
||||
}
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
static MTPKCS * _Nullable parseFat(const char *buffer, size_t size) {
|
||||
size_t offset = 0;
|
||||
|
||||
const struct fat_header* fatHeader = (const struct fat_header*)(buffer + offset);
|
||||
offset += sizeof(*fatHeader);
|
||||
|
||||
uint32_t archCount = OSSwapBigToHostInt32(fatHeader->nfat_arch);
|
||||
|
||||
for (uint32_t i = 0; i < archCount; i++) {
|
||||
const struct fat_arch* arch = (const struct fat_arch*)(buffer + offset);
|
||||
offset += sizeof(*arch);
|
||||
|
||||
uint32_t archOffset = OSSwapBigToHostInt32(arch->offset);
|
||||
uint32_t archSize = OSSwapBigToHostInt32(arch->size);
|
||||
|
||||
MTPKCS *result = parseArch(buffer + archOffset, archSize);
|
||||
if (result != nil) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
static MTPKCS * _Nullable parseMachO(const char* buffer, size_t size) {
|
||||
const uint32_t* magic = (const uint32_t*)buffer;
|
||||
|
||||
if (*magic == FAT_CIGAM || *magic == FAT_MAGIC) {
|
||||
return parseFat(buffer, size);
|
||||
} else {
|
||||
return parseArch(buffer, size);
|
||||
}
|
||||
}
|
||||
|
||||
static MTPKCS * _Nullable checkSignature(const char *filename) {
|
||||
char *buffer = NULL;
|
||||
|
||||
int fd = open(filename, O_RDONLY);
|
||||
|
||||
if (fd == -1) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
struct stat st;
|
||||
fstat(fd, &st);
|
||||
|
||||
buffer = mmap(NULL, (size_t)st.st_size, PROT_READ, MAP_FILE|MAP_PRIVATE, fd, 0);
|
||||
|
||||
if (buffer == MAP_FAILED) {
|
||||
if (buffer) {
|
||||
munmap(buffer, (size_t)st.st_size);
|
||||
}
|
||||
if (fd != -1) {
|
||||
close(fd);
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
MTPKCS *result = parseMachO(buffer, (size_t)st.st_size);
|
||||
if (buffer) {
|
||||
munmap(buffer, (size_t)st.st_size);
|
||||
}
|
||||
if (fd != -1) {
|
||||
close(fd);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@interface BuildConfig () {
|
||||
NSData * _Nullable _bundleData;
|
||||
int32_t _apiId;
|
||||
NSString * _Nonnull _apiHash;
|
||||
NSString * _Nullable _hockeyAppId;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation BuildConfig
|
||||
|
||||
+ (NSString *)bundleId {
|
||||
NSDictionary *query = [NSDictionary dictionaryWithObjectsAndKeys:
|
||||
(__bridge NSString *)kSecClassGenericPassword, (__bridge NSString *)kSecClass,
|
||||
@"bundleSeedID", kSecAttrAccount,
|
||||
@"", kSecAttrService,
|
||||
(id)kCFBooleanTrue, kSecReturnAttributes,
|
||||
nil];
|
||||
CFDictionaryRef result = nil;
|
||||
OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)query, (CFTypeRef *)&result);
|
||||
if (status == errSecItemNotFound) {
|
||||
status = SecItemAdd((__bridge CFDictionaryRef)query, (CFTypeRef *)&result);
|
||||
}
|
||||
if (status != errSecSuccess) {
|
||||
return nil;
|
||||
}
|
||||
NSString *accessGroup = [(__bridge NSDictionary *)result objectForKey:(__bridge NSString *)kSecAttrAccessGroup];
|
||||
NSArray *components = [accessGroup componentsSeparatedByString:@"."];
|
||||
NSString *bundleSeedID = [[components objectEnumerator] nextObject];
|
||||
CFRelease(result);
|
||||
return bundleSeedID;
|
||||
}
|
||||
|
||||
+ (instancetype _Nonnull)sharedBuildConfig {
|
||||
static BuildConfig *instance = nil;
|
||||
static dispatch_once_t onceToken;
|
||||
@ -11,16 +269,101 @@
|
||||
return instance;
|
||||
}
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
if (self != nil) {
|
||||
char buf[3];
|
||||
buf[2] = '\0';
|
||||
NSString *hex = @(APP_CONFIG_DATA);
|
||||
assert(0 == [hex length] % 2);
|
||||
unsigned char *bytes = malloc([hex length]/2);
|
||||
unsigned char *bp = bytes;
|
||||
for (CFIndex i = 0; i < [hex length]; i += 2) {
|
||||
buf[0] = [hex characterAtIndex:i];
|
||||
buf[1] = [hex characterAtIndex:i+1];
|
||||
char *b2 = NULL;
|
||||
*bp++ = strtol(buf, &b2, 16);
|
||||
assert(b2 == buf + 2);
|
||||
}
|
||||
|
||||
NSMutableData *data = [NSMutableData dataWithBytesNoCopy:bytes length:[hex length]/2 freeWhenDone:YES];
|
||||
if ([data length] == 0) {
|
||||
assert(false);
|
||||
}
|
||||
|
||||
const char *streamCode = "Cypher";
|
||||
int keyLength = (int)strlen(streamCode);
|
||||
int keyOffset = 0;
|
||||
for (NSUInteger i = 0; i < data.length; i++) {
|
||||
((uint8_t *)data.mutableBytes)[i] ^= ((uint8_t *)streamCode)[keyOffset % keyLength];
|
||||
keyOffset += 1;
|
||||
}
|
||||
|
||||
int offset = 0;
|
||||
uint32_t header = 0;
|
||||
[data getBytes:&header range:NSMakeRange(offset, 4)];
|
||||
offset += 4;
|
||||
if (header != 0xabcdef01U) {
|
||||
assert(false);
|
||||
}
|
||||
|
||||
[data getBytes:&_apiId range:NSMakeRange(offset, 4)];
|
||||
offset += 4;
|
||||
|
||||
int32_t apiHashLength = 0;
|
||||
[data getBytes:&apiHashLength range:NSMakeRange(offset, 4)];
|
||||
offset += 4;
|
||||
|
||||
if (apiHashLength > 0) {
|
||||
_apiHash = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(offset, apiHashLength)] encoding:NSUTF8StringEncoding];
|
||||
offset += apiHashLength;
|
||||
} else {
|
||||
assert(false);
|
||||
}
|
||||
|
||||
int32_t hockeyappIdLength = 0;
|
||||
[data getBytes:&hockeyappIdLength range:NSMakeRange(offset, 4)];
|
||||
offset += 4;
|
||||
|
||||
if (hockeyappIdLength > 0) {
|
||||
_hockeyAppId = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(offset, hockeyappIdLength)] encoding:NSUTF8StringEncoding];
|
||||
offset += hockeyappIdLength;
|
||||
}
|
||||
|
||||
NSString *bundleId = [BuildConfig bundleId];
|
||||
|
||||
MTPKCS *signature = checkSignature([[[NSBundle mainBundle] executablePath] UTF8String]);
|
||||
NSMutableDictionary *dataDict = [[NSMutableDictionary alloc] init];
|
||||
|
||||
if (bundleId != nil) {
|
||||
dataDict[@"bundleId"] = bundleId;
|
||||
}
|
||||
if (signature.name != nil) {
|
||||
dataDict[@"name"] = signature.name;
|
||||
}
|
||||
if (signature.data != nil) {
|
||||
dataDict[@"data"] = [MTSha1(signature.data) base64EncodedStringWithOptions:0];
|
||||
}
|
||||
|
||||
_bundleData = [NSJSONSerialization dataWithJSONObject:dataDict options:0 error:nil];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSData * _Nullable)bundleData {
|
||||
return _bundleData;
|
||||
}
|
||||
|
||||
- (int32_t)apiId {
|
||||
return APP_CONFIG_API_ID;
|
||||
return _apiId;
|
||||
}
|
||||
|
||||
- (NSString * _Nonnull)apiHash {
|
||||
return @(APP_CONFIG_API_HASH);
|
||||
return _apiHash;
|
||||
}
|
||||
|
||||
- (NSString * _Nonnull)hockeyAppId {
|
||||
return @(APP_CONFIG_HOCKEYAPPID);
|
||||
- (NSString * _Nullable)hockeyAppId {
|
||||
return _hockeyAppId;
|
||||
}
|
||||
|
||||
- (bool)isInternalBuild {
|
||||
|
||||
@ -1 +1 @@
|
||||
#include "../../Telegram-iOS-Shared/Config-AppStore.xcconfig"
|
||||
#include "../../Telegram-iOS-Shared/Config/AppStore/Config.xcconfig"
|
||||
|
||||
@ -1 +1 @@
|
||||
#include "../../Telegram-iOS-Shared/Config-AppStoreLLC.xcconfig"
|
||||
#include "../../Telegram-iOS-Shared/Config/AppStoreLLC/Config.xcconfig"
|
||||
|
||||
@ -1 +0,0 @@
|
||||
#include "../../Telegram-iOS-Shared/Config-Hockeyapp Internal.xcconfig"
|
||||
1
Telegram-iOS/Config-Hockeyapp-Internal.xcconfig
Normal file
1
Telegram-iOS/Config-Hockeyapp-Internal.xcconfig
Normal file
@ -0,0 +1 @@
|
||||
#include "../../Telegram-iOS-Shared/Config/Hockeyapp-Internal/Config.xcconfig"
|
||||
@ -1 +0,0 @@
|
||||
#include "../../Telegram-iOS-Shared/Config-Hockeyapp.xcconfig"
|
||||
@ -19,7 +19,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>5.4.1</string>
|
||||
<string>5.5</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
|
||||
@ -452,14 +452,6 @@ func importLegacyPreferences(accountManager: AccountManager, account: TemporaryA
|
||||
return settings
|
||||
})
|
||||
|
||||
transaction.updateSharedData(ApplicationSpecificSharedDataKeys.contactSynchronizationSettings, { current in
|
||||
var settings: ContactSynchronizationSettings = current as? ContactSynchronizationSettings ?? .defaultSettings
|
||||
if let contactsInhibitSync = contactsInhibitSync, contactsInhibitSync {
|
||||
settings.synchronizeDeviceContacts = false
|
||||
}
|
||||
return settings
|
||||
})
|
||||
|
||||
if let secretInlineBotsInitialized = secretInlineBotsInitialized, secretInlineBotsInitialized {
|
||||
ApplicationSpecificNotice.setSecretChatInlineBotUsage(transaction: transaction)
|
||||
}
|
||||
@ -469,6 +461,13 @@ func importLegacyPreferences(accountManager: AccountManager, account: TemporaryA
|
||||
}
|
||||
|
||||
return account.postbox.transaction { transaction -> Void in
|
||||
transaction.updatePreferencesEntry(key: PreferencesKeys.contactsSettings, { current in
|
||||
var settings = current as? ContactsSettings ?? ContactsSettings.defaultSettings
|
||||
if let contactsInhibitSync = contactsInhibitSync, contactsInhibitSync {
|
||||
settings.synchronizeContacts = false
|
||||
}
|
||||
return settings
|
||||
})
|
||||
}
|
||||
}
|
||||
|> switchToLatest
|
||||
|
||||
@ -86,7 +86,7 @@ func makeBridgeMedia(message: Message, strings: PresentationStrings, chatPeer: P
|
||||
|
||||
if let forward = message.forwardInfo {
|
||||
let bridgeForward = TGBridgeForwardedMessageMediaAttachment()
|
||||
bridgeForward.peerId = makeBridgeIdentifier(forward.author.id)
|
||||
bridgeForward.peerId = forward.author.flatMap({ makeBridgeIdentifier($0.id) }) ?? 0
|
||||
if let sourceMessageId = forward.sourceMessageId {
|
||||
bridgeForward.mid = sourceMessageId.id
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@
|
||||
"PUSH_CHANNEL_MESSAGE_GIF" = "%1$@ posted a GIF";
|
||||
"PUSH_CHANNEL_MESSAGES" = "%1$@ posted %2$@ messages";
|
||||
|
||||
"PUSH_PINNED_TEXT" = "%1$@ pinned \"%2$@\"";
|
||||
"PUSH_PINNED_TEXT" = "%1$@ pinned \"%2$@\" ";
|
||||
"PUSH_PINNED_NOTEXT" = "%1$@ pinned a message";
|
||||
"PUSH_PINNED_PHOTO" = "%1$@ pinned a photo";
|
||||
"PUSH_PINNED_VIDEO" = "%1$@ pinned a video";
|
||||
@ -188,7 +188,7 @@
|
||||
"PUSH_CHAT_MESSAGES_1" = "%2$@|%1$@ sent a message";
|
||||
"PUSH_CHAT_MESSAGES_any" = "%2$@|%1$@ sent %3$d messages";
|
||||
|
||||
"PUSH_PINNED_TEXT" = "%1$@|pinned \"%2$@\"";
|
||||
"PUSH_PINNED_TEXT" = "%1$@|pinned \"%2$@\" ";
|
||||
"PUSH_PINNED_NOTEXT" = "%1$@|pinned a message";
|
||||
"PUSH_PINNED_PHOTO" = "%1$@|pinned a photo";
|
||||
"PUSH_PINNED_VIDEO" = "%1$@|pinned a video";
|
||||
@ -500,9 +500,9 @@
|
||||
"Notification.Kicked" = "%@ removed %@";
|
||||
"Notification.CreatedChat" = "%@ created a group";
|
||||
"Notification.CreatedChannel" = "Channel created";
|
||||
"Notification.CreatedChatWithTitle" = "%@ created the group \"%@\"";
|
||||
"Notification.CreatedChatWithTitle" = "%@ created the group \"%@\" ";
|
||||
"Notification.Joined" = "%@ joined Telegram";
|
||||
"Notification.ChangedGroupName" = "%@ changed group name to \"%@\"";
|
||||
"Notification.ChangedGroupName" = "%@ changed group name to \"%@\" ";
|
||||
"Notification.NewAuthDetected" = "%1$@,\nWe detected a login into your account from a new device on %2$@, %3$@ at %4$@\n\nDevice: %5$@\nLocation: %6$@\n\nIf this wasn't you, you can go to Settings — Privacy and Security — Sessions and terminate that session.\n\nIf you think that somebody logged in to your account against your will, you can enable two-step verification in Privacy and Security settings.\n\nSincerely,\nThe Telegram Team";
|
||||
"Notification.MessageLifetimeChanged" = "%1$@ set the self-destruct timer to %2$@";
|
||||
"Notification.MessageLifetimeChangedOutgoing" = "You set the self-destruct timer to %1$@";
|
||||
@ -1488,7 +1488,7 @@
|
||||
|
||||
"Channel.MessagePhotoUpdated" = "Channel photo updated";
|
||||
"Channel.MessagePhotoRemoved" = "Channel photo removed";
|
||||
"Channel.MessageTitleUpdated" = "Channel renamed to \"%@\"";
|
||||
"Channel.MessageTitleUpdated" = "Channel renamed to \"%@\" ";
|
||||
"Channel.TitleInfo" = "Channel Info";
|
||||
|
||||
"Channel.UpdatePhotoItem" = "Set Channel Photo";
|
||||
@ -1896,7 +1896,7 @@
|
||||
"Group.Username.InvalidTooShort" = "Group names must have at least 5 characters.";
|
||||
"Group.Username.InvalidStartsWithNumber" = "Group names can't start with a number.";
|
||||
|
||||
"Notification.PinnedTextMessage" = "%@ pinned \"%@\"";
|
||||
"Notification.PinnedTextMessage" = "%@ pinned \"%@\" ";
|
||||
"Notification.PinnedPhotoMessage" = "%@ pinned a photo";
|
||||
"Notification.PinnedVideoMessage" = "%@ pinned a video";
|
||||
"Notification.PinnedRoundMessage" = "%@ pinned a video message";
|
||||
@ -1909,7 +1909,7 @@
|
||||
"Notification.PinnedDeletedMessage" = "%@ pinned deleted message";
|
||||
"Notification.PinnedPollMessage" = "%@ pinned a poll";
|
||||
|
||||
"Message.PinnedTextMessage" = "pinned \"%@\"";
|
||||
"Message.PinnedTextMessage" = "pinned \"%@\" ";
|
||||
"Message.PinnedPhotoMessage" = "pinned photo";
|
||||
"Message.PinnedVideoMessage" = "pinned video";
|
||||
"Message.PinnedAudioMessage" = "pinned voice message";
|
||||
@ -3052,7 +3052,7 @@ Unused sets are archived when you add more.";
|
||||
"Appearance.ThemeNight" = "Night";
|
||||
"Appearance.ThemeNightBlue" = "Night Blue";
|
||||
"Appearance.PreviewReplyAuthor" = "Lucio";
|
||||
"Appearance.PreviewReplyText" = "Reinhart, we need to find you some...";
|
||||
"Appearance.PreviewReplyText" = "Reinhardt, we need to find you some...";
|
||||
"Appearance.PreviewIncomingText" = "Ah you kids today with techno music! Enjoy the classics, like Hasselhoff!";
|
||||
"Appearance.PreviewOutgoingText" = "I can't take you seriously right now. Sorry..";
|
||||
"Appearance.AccentColor" = "Accent Color";
|
||||
@ -4056,3 +4056,142 @@ Unused sets are archived when you add more.";
|
||||
"NotificationSettings.ShowNotificationsAllAccounts" = "All Accounts";
|
||||
"NotificationSettings.ShowNotificationsAllAccountsInfoOn" = "Turn this off if you want to receive notifications only from your active account.";
|
||||
"NotificationSettings.ShowNotificationsAllAccountsInfoOff" = "Turn this on if you want to receive notifications from all your accounts.";
|
||||
|
||||
"Gif.Search" = "Search GIFs";
|
||||
"Gif.NoGifsFound" = "No GIFs Found";
|
||||
"Gif.NoGifsPlaceholder" = "You have no saved GIFs yet.";
|
||||
|
||||
"Privacy.ProfilePhoto" = "Profile Photo";
|
||||
"Privacy.Forwards" = "Forwarded Messages";
|
||||
|
||||
"Privacy.ProfilePhoto.WhoCanSeeMyPhoto" = "WHO CAN SEE MY PROFILE PHOTO";
|
||||
"Privacy.ProfilePhoto.CustomHelp" = "You can restrict who can see your profile photo with granular precision.";
|
||||
"Privacy.ProfilePhoto.AlwaysShareWith.Title" = "Always Share With";
|
||||
"Privacy.ProfilePhoto.NeverShareWith.Title" = "Never Share With";
|
||||
|
||||
"Privacy.Forwards.WhoCanForward" = "WHO CAN ADD LINK TO MY ACCOUNT WHEN FORWARDING MY MESSAGES";
|
||||
"Privacy.Forwards.CustomHelp" = "When forwarded to other chats, messages you send will not link back to your account.";
|
||||
"Privacy.Forwards.AlwaysAllow.Title" = "Always Allow";
|
||||
"Privacy.Forwards.NeverAllow.Title" = "Never Allow";
|
||||
|
||||
"Conversation.ContextMenuCancelSending" = "Cancel Sending";
|
||||
|
||||
"Conversation.ForwardAuthorHiddenTooltip" = "The account was hidden by the user";
|
||||
|
||||
"Privacy.Forwards.Preview" = "PREVIEW";
|
||||
"Privacy.Forwards.PreviewMessageText" = "Reinhardt, we need to find you some new music.";
|
||||
"Privacy.Forwards.AlwaysLink" = "Link to your account";
|
||||
"Privacy.Forwards.LinkIfAllowed" = "Link if allowed by settings below";
|
||||
"Privacy.Forwards.NeverLink" = "Not a link to your account";
|
||||
|
||||
"Chat.UnsendMyMessagesAlertTitle" = "Unsending will also delete messages you sent on %@'s side.";
|
||||
"Chat.UnsendMyMessages" = "Unsend My Messages";
|
||||
|
||||
"Chat.DeleteMessagesConfirmation_1" = "Delete message";
|
||||
"Chat.DeleteMessagesConfirmation_any" = "Delete %@ messages";
|
||||
|
||||
"Settings.Search" = "Search";
|
||||
|
||||
"SettingsSearch.FAQ" = "FAQ";
|
||||
|
||||
"SettingsSearch.Synonyms.EditProfile.Title" = " ";
|
||||
"SettingsSearch.Synonyms.EditProfile.Bio" = " ";
|
||||
"SettingsSearch.Synonyms.EditProfile.PhoneNumber" = " ";
|
||||
"SettingsSearch.Synonyms.EditProfile.Username" = " ";
|
||||
"SettingsSearch.Synonyms.EditProfile.AddAccount" = " ";
|
||||
"SettingsSearch.Synonyms.EditProfile.Logout" = " ";
|
||||
|
||||
"SettingsSearch.Synonyms.Calls.Title" = " ";
|
||||
"SettingsSearch.Synonyms.Calls.CallTab" = " ";
|
||||
|
||||
"SettingsSearch.Synonyms.Stickers.Title" = " ";
|
||||
"SettingsSearch.Synonyms.Stickers.SuggestStickers" = " ";
|
||||
"SettingsSearch.Synonyms.Stickers.FeaturedPacks" = " ";
|
||||
"SettingsSearch.Synonyms.Stickers.ArchivedPacks" = " ";
|
||||
"SettingsSearch.Synonyms.Stickers.Masks" = " ";
|
||||
|
||||
"SettingsSearch.Synonyms.Notifications.Title" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.MessageNotificationsAlert" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.MessageNotificationsPreview" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.MessageNotificationsSound" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.MessageNotificationsExceptions" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.GroupNotificationsAlert" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.GroupNotificationsPreview" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.GroupNotificationsSound" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.GroupNotificationsExceptions" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.ChannelNotificationsAlert" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.ChannelNotificationsPreview" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.ChannelNotificationsSound" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.ChannelNotificationsExceptions" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.InAppNotificationsSound" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.InAppNotificationsVibrate" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.InAppNotificationsPreview" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.DisplayNamesOnLockScreen" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.BadgeIncludeMutedChats" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.BadgeIncludeMutedPublicGroups" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.BadgeIncludeMutedChannels" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.BadgeCountUnreadMessages" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.ContactJoined" = " ";
|
||||
"SettingsSearch.Synonyms.Notifications.ResetAllNotifications" = " ";
|
||||
|
||||
"SettingsSearch.Synonyms.Privacy.Title" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.BlockedUsers" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.LastSeen" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.ProfilePhoto" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.Forwards" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.Calls" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.GroupsAndChannels" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.Passcode" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.PasscodeAndTouchId" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.PasscodeAndFaceId" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.TwoStepAuth" = "Password";
|
||||
"SettingsSearch.Synonyms.Privacy.AuthSessions" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.DeleteAccountIfAwayFor" = " ";
|
||||
|
||||
"SettingsSearch.Synonyms.Privacy.Data.Title" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.Data.ContactsReset" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.Data.ContactsSync" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.Data.TopPeers" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.Data.DeleteDrafts" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.Data.ClearPaymentsInfo" = " ";
|
||||
"SettingsSearch.Synonyms.Privacy.Data.SecretChatLinkPreview" = " ";
|
||||
|
||||
"SettingsSearch.Synonyms.Data.Title" = " ";
|
||||
"SettingsSearch.Synonyms.Data.Storage.Title" = "Cache";
|
||||
"SettingsSearch.Synonyms.Data.Storage.KeepMedia" = " ";
|
||||
"SettingsSearch.Synonyms.Data.Storage.ClearCache" = " ";
|
||||
"SettingsSearch.Synonyms.Data.NetworkUsage" = " ";
|
||||
"SettingsSearch.Synonyms.Data.AutoDownloadUsingCellular" = " ";
|
||||
"SettingsSearch.Synonyms.Data.AutoDownloadUsingWifi" = " ";
|
||||
"SettingsSearch.Synonyms.Data.AutoDownloadReset" = " ";
|
||||
"SettingsSearch.Synonyms.Data.AutoplayGifs" = " ";
|
||||
"SettingsSearch.Synonyms.Data.AutoplayVideos" = " ";
|
||||
"SettingsSearch.Synonyms.Data.CallsUseLessData" = " ";
|
||||
"SettingsSearch.Synonyms.Data.SaveIncomingPhotos" = " ";
|
||||
"SettingsSearch.Synonyms.Data.SaveEditedPhotos" = " ";
|
||||
"SettingsSearch.Synonyms.Data.DownloadInBackground" = " ";
|
||||
|
||||
"SettingsSearch.Synonyms.Proxy.Title" = "SOCKS5\nMTProto";
|
||||
"SettingsSearch.Synonyms.Proxy.AddProxy" = " ";
|
||||
"SettingsSearch.Synonyms.Proxy.UseForCalls" = " ";
|
||||
|
||||
"SettingsSearch.Synonyms.Appearance.Title" = " ";
|
||||
"SettingsSearch.Synonyms.Appearance.TextSize" = " ";
|
||||
"SettingsSearch.Synonyms.Appearance.ChatBackground" = "Wallpaper";
|
||||
"SettingsSearch.Synonyms.Appearance.ChatBackground.SetColor" = " ";
|
||||
"SettingsSearch.Synonyms.Appearance.ChatBackground.Custom" = " ";
|
||||
"SettingsSearch.Synonyms.Appearance.AutoNightTheme" = " ";
|
||||
"SettingsSearch.Synonyms.Appearance.ColorTheme" = " ";
|
||||
"SettingsSearch.Synonyms.Appearance.Animations" = "Animations";
|
||||
|
||||
"SettingsSearch.Synonyms.SavedMessages" = " ";
|
||||
"SettingsSearch.Synonyms.AppLanguage" = " ";
|
||||
"SettingsSearch.Synonyms.Passport" = " ";
|
||||
"SettingsSearch.Synonyms.Watch" = "Apple Watch";
|
||||
"SettingsSearch.Synonyms.Support" = "Support";
|
||||
"SettingsSearch.Synonyms.FAQ" = " ";
|
||||
|
||||
"ChatList.DeleteForCurrentUser" = "Delete just for me";
|
||||
"ChatList.DeleteForEveryone" = "Delete for me and %@";
|
||||
|
||||
"ChatList.ClearChatConfirmation" = "Are you sure you want to delete all\nmessages in the chat with %@?";
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>5.4.1</string>
|
||||
<string>5.5</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${BUILD_NUMBER}</string>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>5.4.1</string>
|
||||
<string>5.5</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${BUILD_NUMBER}</string>
|
||||
<key>NSExtension</key>
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>5.4.1</string>
|
||||
<string>5.5</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${BUILD_NUMBER}</string>
|
||||
<key>NSExtension</key>
|
||||
|
||||
@ -78,7 +78,7 @@ class TodayViewController: UIViewController, NCWidgetProviding {
|
||||
let appVersion = (Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String) ?? "unknown"
|
||||
initializeAccountManagement()
|
||||
let accountManager = AccountManager(basePath: rootPath + "/accounts-metadata")
|
||||
account = currentAccount(allocateIfNotExists: false, networkArguments: NetworkInitializationArguments(apiId: apiId, languagesCategory: languagesCategory, appVersion: appVersion, voipMaxLayer: 0), supplementary: true, manager: accountManager, rootPath: rootPath, auxiliaryMethods: auxiliaryMethods)
|
||||
account = currentAccount(allocateIfNotExists: false, networkArguments: NetworkInitializationArguments(apiId: apiId, languagesCategory: languagesCategory, appVersion: appVersion, voipMaxLayer: 0, appData: BuildConfig.shared().bundleData), supplementary: true, manager: accountManager, rootPath: rootPath, auxiliaryMethods: auxiliaryMethods)
|
||||
|> mapToSignal { account -> Signal<Account, NoError> in
|
||||
if let account = account {
|
||||
switch account {
|
||||
|
||||
@ -1 +1,63 @@
|
||||
fastlane_version "1.81.0"
|
||||
|
||||
default_platform :ios
|
||||
|
||||
base_app_identifier_llc = "ph.telegra.Telegraph"
|
||||
app_identifier_llc = [
|
||||
base_app_identifier_llc,
|
||||
base_app_identifier_llc + ".Widget",
|
||||
base_app_identifier_llc + ".NotificationContent",
|
||||
base_app_identifier_llc + ".SiriIntents",
|
||||
base_app_identifier_llc + ".Share",
|
||||
base_app_identifier_llc + ".watchkitapp",
|
||||
base_app_identifier_llc + ".watchkitapp.watchkitextension",
|
||||
base_app_identifier_llc + ".NotificationService"
|
||||
]
|
||||
|
||||
lane :do_build_app do |options|
|
||||
gym(
|
||||
workspace: "Telegram-iOS.xcworkspace",
|
||||
configuration: options[:configuration],
|
||||
scheme: options[:scheme],
|
||||
silent: false,
|
||||
clean: true,
|
||||
export_method: options[:export_method],
|
||||
output_name: options[:scheme],
|
||||
derived_data_path: "build/" + options[:scheme] + "/DerivedData",
|
||||
xcargs: "BUILD_NUMBER='" + options[:build_number] + "' " + "COMMIT_ID='" + options[:commit_id] + "'",
|
||||
archive_path: "build/" + options[:scheme] + "/Archive",
|
||||
export_options: {
|
||||
compileBitcode: false,
|
||||
iCloudContainerEnvironment: "Production",
|
||||
provisioningProfiles: options[:provisioningProfiles],
|
||||
stripSwiftSymbols: true,
|
||||
uploadBitcode: false
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
lane :build_for_appstore do |options|
|
||||
commit = last_git_commit
|
||||
commit_count = sh("git rev-list --count HEAD")
|
||||
commit_count_int = commit_count.to_i + 1000
|
||||
commit_count_string = commit_count_int.to_s
|
||||
do_build_app(
|
||||
configuration: "ReleaseAppStoreLLC",
|
||||
scheme: "Telegram-iOS-AppStoreLLC",
|
||||
export_method: "app-store",
|
||||
build_number: commit_count_string,
|
||||
commit_id: commit[:commit_hash],
|
||||
provisioningProfiles: {
|
||||
base_app_identifier_llc => "match AppStore " + base_app_identifier_llc,
|
||||
base_app_identifier_llc + ".Share" => "match AppStore " + base_app_identifier_llc + ".Share",
|
||||
base_app_identifier_llc + ".SiriIntents" => "match AppStore " + base_app_identifier_llc + ".SiriIntents",
|
||||
base_app_identifier_llc + ".Widget" => "match AppStore " + base_app_identifier_llc + ".Widget",
|
||||
base_app_identifier_llc + ".NotificationContent" => "match AppStore " + base_app_identifier_llc + ".NotificationContent",
|
||||
base_app_identifier_llc + ".watchkitapp.watchkitextension" => "match AppStore " + base_app_identifier_llc + ".watchkitapp.watchkitextension",
|
||||
base_app_identifier_llc + ".watchkitapp" => "match AppStore " + base_app_identifier_llc + ".watchkitapp",
|
||||
base_app_identifier_llc + ".NotificationService" => "match AppStore " + base_app_identifier_llc + ".NotificationService"
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
import "../../Telegram-iOS-Shared/fastlane/Fastfile"
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit 5cf9244c99b24d7780cbe2b920e04f3bc1fdbc87
|
||||
Subproject commit 16ce3e690a217ce449bb50e057f3550bc7b79613
|
||||
@ -1 +1 @@
|
||||
Subproject commit 7077ff31dc8786d143ba09b5874f0c014126e6c3
|
||||
Subproject commit 61d43c3c4b5286f1bc26cfe0202979925d969e06
|
||||
@ -1 +1 @@
|
||||
Subproject commit 03f3f3d77b56b6673a434e93a5f0f9adf99c4261
|
||||
Subproject commit 0d44c9e1016591c4cfdf1886e743b46acc3646fe
|
||||
@ -1 +1 @@
|
||||
Subproject commit f955b9c3f5c4b8d2de441cc8a8c1fa27054da207
|
||||
Subproject commit 579d7f626427d0cc82209c1b2fc3be7b97eac68c
|
||||
@ -1 +1 @@
|
||||
Subproject commit c4af1626e3a45e370c03ce101c54d8c532a6b73a
|
||||
Subproject commit 3d0b885f6a272c6d931b7d289b7cf427880a2753
|
||||
@ -1 +1 @@
|
||||
Subproject commit 9ec5e39542ccadd72e7f3439fb8abdc8fd809de0
|
||||
Subproject commit b3b73b2fdeb5d5d1f1d93223603d9dd0b2b66882
|
||||
@ -1 +1 @@
|
||||
Subproject commit d80a8291e03b42a2ce99bf7b4c365683d33622a0
|
||||
Subproject commit 53b3408cb72bae7a2dabc026792daae873bdff68
|
||||
@ -1 +1 @@
|
||||
Subproject commit 46cd772b3fe0e0048d1ad1721fdc35554ba3f031
|
||||
Subproject commit 16711e202393ae7e1b160436f4291c5f06a3d375
|
||||
Loading…
x
Reference in New Issue
Block a user