load("@bazel_skylib//rules:common_settings.bzl",
"bool_flag",
)
load("@bazel_skylib//lib:selects.bzl", "selects")
load("@build_bazel_rules_apple//apple:ios.bzl",
"ios_application",
"ios_extension",
"ios_framework",
"ios_ui_test",
"ios_ui_test_suite",
)
load(
"@build_bazel_rules_apple//apple/testing/default_runner:ios_test_runner.bzl",
"ios_test_runner",
)
load("@build_bazel_rules_apple//apple:resources.bzl",
"swift_intent_library",
)
load("@build_bazel_rules_swift//swift:swift.bzl",
"swift_library",
)
load(
"@rules_xcodeproj//xcodeproj:defs.bzl",
"top_level_targets",
"top_level_target",
"xcodeproj",
"xcode_provisioning_profile",
)
load("@build_bazel_rules_apple//apple:apple.bzl", "local_provisioning_profile")
load("//Telegram:prebuilt_watchos.bzl",
"apple_prebuilt_watchos_application",
)
load("//build-system/bazel-utils:plist_fragment.bzl",
"plist_fragment",
)
load(
"@build_configuration//:variables.bzl",
"telegram_bazel_path",
"telegram_use_xcode_managed_codesigning",
"telegram_bundle_id",
"telegram_aps_environment",
"telegram_team_id",
"telegram_enable_icloud",
"telegram_enable_siri",
)
load("@build_bazel_rules_apple//apple:resources.bzl",
"swift_intent_library",
)
load("//build-system/bazel-utils:spm.bzl",
"generate_spm",
)
config_setting(
name = "debug",
values = {
"compilation_mode": "dbg",
},
)
bool_flag(
name = "disableExtensions",
build_setting_default = False,
visibility = ["//visibility:public"],
)
bool_flag(
name = "disableProvisioningProfiles",
build_setting_default = False,
visibility = ["//visibility:public"],
)
bool_flag(
name = "projectIncludeRelease",
build_setting_default = False,
visibility = ["//visibility:public"],
)
config_setting(
name = "disableExtensionsSetting",
flag_values = {
":disableExtensions": "True",
},
)
config_setting(
name = "disableProvisioningProfilesSetting",
flag_values = {
":disableProvisioningProfiles": "True",
},
)
bool_flag(
name = "embedWatchApp",
build_setting_default = False,
visibility = ["//visibility:public"],
)
config_setting(
name = "embedWatchAppSetting",
flag_values = {
":embedWatchApp": "True",
},
)
config_setting(
name = "projectIncludeReleaseSetting",
flag_values = {
":projectIncludeRelease": "True",
},
)
bool_flag(
name = "disableStripping",
build_setting_default = False,
visibility = ["//visibility:public"],
)
config_setting(
name = "disableStrippingSetting",
flag_values = {
":disableStripping": "True",
},
)
genrule(
name = "empty",
outs = ["empty.swift"],
cmd = "touch $(OUTS)",
)
genrule(
name = "GeneratedPresentationStrings",
srcs = [
"//build-system:GenerateStrings/GenerateStrings.py",
"Telegram-iOS/en.lproj/Localizable.strings",
],
cmd = '''
python3 $(location //build-system:GenerateStrings/GenerateStrings.py) \\
--source=$(location Telegram-iOS/en.lproj/Localizable.strings) \\
--outImplementation=$(location GeneratedPresentationStrings/Sources/PresentationStrings.m) \\
--outHeader=$(location GeneratedPresentationStrings/PublicHeaders/PresentationStrings/PresentationStrings.h) \\
--outData=$(location GeneratedPresentationStrings/Resources/PresentationStrings.data) \\
''',
outs = [
"GeneratedPresentationStrings/PublicHeaders/PresentationStrings/PresentationStrings.h",
"GeneratedPresentationStrings/Sources/PresentationStrings.m",
"GeneratedPresentationStrings/Resources/PresentationStrings.data",
],
)
minimum_os_version = "13.0"
notificationServiceExtensionVersion = "v1"
empty_languages = [
"ar",
"be",
"ca",
"de",
"es",
"fa",
"fr",
"id",
"it",
"ko",
"ms",
"nl",
"pl",
"pt",
"ru",
"tr",
"uk",
"uz",
]
[
genrule(
name = "Localizable_{}.strings".format(language),
outs = ["{}.lproj/Localizable.strings".format(language)],
cmd = "touch $(OUTS)",
) for language in empty_languages
]
objc_library(
name = "PresentationStrings",
enable_modules = True,
module_name = "PresentationStrings",
srcs = [
"GeneratedPresentationStrings/Sources/PresentationStrings.m",
],
hdrs = [
"GeneratedPresentationStrings/PublicHeaders/PresentationStrings/PresentationStrings.h",
],
includes = [
"GeneratedPresentationStrings/PublicHeaders",
],
sdk_frameworks = [
"Foundation",
],
deps = [
"//submodules/NumberPluralizationForm:NumberPluralizationForm",
"//submodules/AppBundle:AppBundle",
],
visibility = [
"//visibility:public",
],
)
swift_library(
name = "_LocalDebugOptions",
srcs = [":empty"],
copts = [
"-Xfrontend",
"-serialize-debugging-options",
],
deps = [
"//submodules/AsyncDisplayKit:AsyncDisplayKit",
"//submodules/AppBundle:AppBundle",
"//submodules/ObjCRuntimeUtils:ObjCRuntimeUtils",
"//submodules/UIKitRuntimeUtils:UIKitRuntimeUtils",
"//submodules/Crc32:Crc32",
"//submodules/MurMurHash32:MurMurHash32",
"//submodules/StringTransliteration:StringTransliteration",
"//submodules/sqlcipher:sqlcipher",
"//submodules/NumberPluralizationForm:NumberPluralizationForm",
"//submodules/EncryptionProvider:EncryptionProvider",
"//submodules/MtProtoKit:MtProtoKit",
],
module_name = "_LocalDebugOptions",
tags = ["no-remote"],
visibility = ["//visibility:public"],
)
debug_deps = select({
":debug": [":_LocalDebugOptions"],
"//conditions:default": [],
})
selects.config_setting_group(
name = "resolvedDisableStrippingSetting",
match_any = [":debug", ":disableStrippingSetting"],
)
strip_framework = select({
":resolvedDisableStrippingSetting": None,
"//conditions:default": ":StripFramework",
})
filegroup(
name = "AppResources",
srcs = glob([
"Telegram-iOS/Resources/**/*",
], exclude = ["Telegram-iOS/Resources/**/.*"]),
)
filegroup(
name = "AppStringResources",
srcs = [
"Telegram-iOS/en.lproj/Localizable.strings",
] + [
"{}.lproj/Localizable.strings".format(language) for language in empty_languages
],
)
filegroup(
name = "AppIntentVocabularyResources",
srcs = glob([
"Telegram-iOS/*.lproj/AppIntentVocabulary.plist",
], exclude = ["Telegram-iOS/*.lproj/**/.*"]),
)
filegroup(
name = "InfoPlistStringResources",
srcs = glob([
"Telegram-iOS/*.lproj/InfoPlist.strings",
], exclude = ["Telegram-iOS/*.lproj/**/.*"]),
)
filegroup(
name = "Icons",
srcs = glob([
"Telegram-iOS/Icons.xcassets/**/*",
], exclude = ["Telegram-iOS/Icons.xcassets/**/.*"]),
)
filegroup(
name = "AppIcons",
srcs = glob([
"Telegram-iOS/AppIcons.xcassets/**/*",
], exclude = ["Telegram-iOS/AppIcons.xcassets/**/.*"]),
)
filegroup(
name = "DefaultAppIcon",
srcs = glob([
"Telegram-iOS/DefaultAppIcon.xcassets/**/*",
], exclude = ["Telegram-iOS/DefaultAppIcon.xcassets/**/.*"]),
)
filegroup(
name = "DefaultIcon",
srcs = glob([
"Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/*.png",
]),
)
alternate_icon_folders = [
"BlackClassicIcon",
"BlackFilledIcon",
"BlackIcon",
"BlueClassicIcon",
"BlueFilledIcon",
"BlueIcon",
"New1",
"New2",
"Premium",
"PremiumBlack",
"PremiumTurbo",
"WinterGramDark",
"WinterGramDeveloper",
"WinterGramHouseDark",
"WinterGramHouseLight",
"WinterGramLight",
]
composer_icon_folders = []
[
filegroup(
name = "{}".format(name),
srcs = glob([
"Telegram-iOS/{}.alticon/*.png".format(name),
]),
) for name in alternate_icon_folders
]
[
filegroup(
name = "{}_icon".format(name),
srcs = glob([
"Telegram-iOS/{}.icon/**/*".format(name),
]),
) for name in composer_icon_folders
]
filegroup(
name = "LaunchScreen",
srcs = glob([
"Telegram-iOS/Base.lproj/LaunchScreen.xib",
]),
)
objc_library(
name = "Main",
module_name = "Main",
srcs = [
"Telegram-iOS/main.m"
],
)
swift_library(
name = "Lib",
module_name = "Lib",
srcs = glob([
"Telegram-iOS/Application.swift",
]),
data = [
":Icons",
":AppResources",
":AppIntentVocabularyResources",
":InfoPlistStringResources",
"//submodules/LegacyComponents:LegacyComponentsResources",
"//submodules/LegacyComponents:LegacyComponentsAssets",
"//submodules/OverlayStatusController:OverlayStatusControllerResources",
"//submodules/PasswordSetupUI:PasswordSetupUIResources",
"//submodules/PasswordSetupUI:PasswordSetupUIAssets",
"//submodules/PremiumUI:PremiumUIResources",
"//submodules/DrawingUI:DrawingUIResources",
"//submodules/TelegramUI:TelegramUIResources",
"//submodules/TelegramUI:TelegramUIAssets",
"//submodules/TelegramUI/Components/Calls/CallScreen:Assets",
":GeneratedPresentationStrings/Resources/PresentationStrings.data",
],
deps = [
"//submodules/TelegramUI:TelegramUI",
"//third-party/boringssl:crypto",
],
)
plist_fragment(
name = "BuildNumberInfoPlist",
extension = "plist",
template =
"""
CFBundleVersion
{buildNumber}
""",
defaults = {"buildNumber": "1"},
)
plist_fragment(
name = "UrlTypesInfoPlist",
extension = "plist",
template =
"""
CFBundleURLTypes
CFBundleTypeRole
Viewer
CFBundleURLName
{telegram_bundle_id}
CFBundleURLSchemes
telegram
CFBundleTypeRole
Viewer
CFBundleURLName
{telegram_bundle_id}.compatibility
CFBundleURLSchemes
tg
tonsite
CFBundleTypeRole
Viewer
CFBundleURLName
{telegram_bundle_id}.wnt
CFBundleURLSchemes
wnt
""".format(
telegram_bundle_id = telegram_bundle_id,
)
)
official_apple_pay_merchants = [
"merchant.ph.telegra.Telegraph",
"merchant.sberbank.ph.telegra.Telegraph",
"merchant.sberbank.test.ph.telegra.Telegraph",
"merchant.privatbank.test.telergramios",
"merchant.privatbank.prod.telergram",
"merchant.paymaster.test.telegramios",
"merchant.paymaster.prod.telegramios",
"merchant.smartglocal.prod.telegramios",
"merchant.smartglocal.test.telegramios",
"merchant.yoomoney.test.telegramios",
"merchant.yoomoney.prod.telegramios",
"merchant.org.telegram.Best2pay.test",
"merchant.psbank.test.telegramios",
"merchant.psbank.prod.telegramios",
"merchant.org.telegram.billinenet.test",
"merchant.org.telegram.billinenet.prod",
"merchant.org.telegram.portmone.test",
"merchant.org.telegram.portmone.prod",
"merchant.org.telegram.ecommpay.test",
]
official_bundle_ids = [
"ph.telegra.Telegraph",
"org.telegram.Telegram-iOS",
]
store_bundle_ids = [
"ph.telegra.Telegraph",
]
apple_pay_merchants = official_apple_pay_merchants if telegram_bundle_id == "ph.telegra.Telegraph" else []
apple_pay_merchants_fragment = "" if apple_pay_merchants == [] else """
com.apple.developer.in-app-payments
""" + "\n".join([
" {merchant_id}".format(merchant_id=merchant_id) for merchant_id in apple_pay_merchants
]) + "\n" + """
"""
official_unrestricted_voip_fragment = """
com.apple.developer.pushkit.unrestricted-voip
"""
unrestricted_voip_fragment = official_unrestricted_voip_fragment if telegram_bundle_id in official_bundle_ids else ""
official_carplay_fragment = """
com.apple.developer.carplay-messaging
"""
carplay_fragment = official_carplay_fragment if telegram_bundle_id in official_bundle_ids else ""
icloud_fragment = "" if not telegram_enable_icloud else """
com.apple.developer.icloud-services
CloudKit
CloudDocuments
com.apple.developer.icloud-container-identifiers
iCloud.{telegram_bundle_id}
com.apple.developer.ubiquity-kvstore-identifier
{telegram_team_id}.{telegram_bundle_id}
com.apple.developer.icloud-container-environment
{telegram_icloud_environment}
""".format(
telegram_team_id=telegram_team_id,
telegram_bundle_id=telegram_bundle_id,
telegram_icloud_environment="Production" if telegram_aps_environment == "production" else "Development"
)
associated_domains_fragment = "" if telegram_bundle_id not in official_bundle_ids else """
com.apple.developer.associated-domains
applinks:telegram.me
applinks:t.me
applinks:*.t.me
webcredentials:t.me
webcredentials:telegram.org
"""
background_modes_fragment = """
UIBackgroundModes
audio
fetch
location
remote-notification
voip
processing
""" if telegram_aps_environment != "" else """
UIBackgroundModes
audio
fetch
location
processing
"""
siri_fragment = "" if not telegram_enable_siri else """
com.apple.developer.siri
"""
aps_fragment = "" if telegram_aps_environment == "" else """
aps-environment
{telegram_aps_environment}
""".format(telegram_aps_environment=telegram_aps_environment)
app_groups_fragment = """
com.apple.security.application-groups
group.{telegram_bundle_id}
application-identifier
{telegram_team_id}.{telegram_bundle_id}
""".format(
telegram_team_id=telegram_team_id,
telegram_bundle_id=telegram_bundle_id
)
official_communication_notifications_fragment = """
com.apple.developer.usernotifications.communication
"""
communication_notifications_fragment = official_communication_notifications_fragment if telegram_bundle_id in official_bundle_ids else ""
official_notification_filtering_fragment = """
com.apple.developer.usernotifications.filtering
"""
notification_filtering_fragment = official_notification_filtering_fragment if telegram_bundle_id == "ph.telegra.Telegraph" else ""
store_signin_fragment = """
com.apple.developer.applesignin
Default
"""
signin_fragment = store_signin_fragment if telegram_bundle_id in store_bundle_ids else ""
official_background_gpu_fragment = """
com.apple.developer.background-tasks.continued-processing.gpu
"""
background_gpu_fragment = official_background_gpu_fragment if telegram_bundle_id == "ph.telegra.Telegraph" else ""
plist_fragment(
name = "TelegramEntitlements",
extension = "entitlements",
template = "".join([
aps_fragment,
app_groups_fragment,
siri_fragment,
associated_domains_fragment,
icloud_fragment,
apple_pay_merchants_fragment,
unrestricted_voip_fragment,
carplay_fragment,
communication_notifications_fragment,
notification_filtering_fragment,
signin_fragment,
background_gpu_fragment,
])
)
genrule(
name = "VersionInfoPlist",
srcs = ["//:versions.json"],
outs = ["VersionInfoPlist.plist"],
cmd = """
version=$$(python3 -c "import json; print(json.load(open('$(location //:versions.json)'))['app'])")
cat > $@ <
CFBundleShortVersionString
$$version
PLIST
""",
)
plist_fragment(
name = "RequiredDeviceCapabilitiesPlist",
extension = "plist",
template =
"""
UIRequiredDeviceCapabilities
arm64
"""
)
plist_fragment(
name = "AppNameInfoPlist",
extension = "plist",
template =
"""
CFBundleDisplayName
WinterGram
"""
)
plist_fragment(
name = "MtProtoKitInfoPlist",
extension = "plist",
template =
"""
CFBundleIdentifier
{telegram_bundle_id}.MtProtoKit
CFBundleDevelopmentRegion
en
CFBundleName
MtProtoKit
CFBundlePackageType
FMWK
""".format(
telegram_bundle_id = telegram_bundle_id,
)
)
ios_framework(
name = "MtProtoKitFramework",
bundle_id = "{telegram_bundle_id}.MtProtoKit".format(
telegram_bundle_id = telegram_bundle_id,
),
families = [
"iphone",
"ipad",
],
infoplists = [
":MtProtoKitInfoPlist",
":BuildNumberInfoPlist",
":VersionInfoPlist",
":RequiredDeviceCapabilitiesPlist",
],
minimum_os_version = minimum_os_version,
extension_safe = True,
ipa_post_processor = strip_framework,
deps = [
"//submodules/MtProtoKit:MtProtoKit",
],
)
plist_fragment(
name = "SwiftSignalKitInfoPlist",
extension = "plist",
template =
"""
CFBundleIdentifier
{telegram_bundle_id}.SwiftSignalKit
CFBundleDevelopmentRegion
en
CFBundleName
SwiftSignalKit
CFBundlePackageType
FMWK
""".format(
telegram_bundle_id = telegram_bundle_id,
)
)
ios_framework(
name = "SwiftSignalKitFramework",
bundle_id = "{telegram_bundle_id}.SwiftSignalKit".format(
telegram_bundle_id = telegram_bundle_id,
),
families = [
"iphone",
"ipad",
],
infoplists = [
":SwiftSignalKitInfoPlist",
":BuildNumberInfoPlist",
":VersionInfoPlist",
":RequiredDeviceCapabilitiesPlist",
],
minimum_os_version = minimum_os_version,
extension_safe = True,
ipa_post_processor = strip_framework,
deps = [
"//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit",
],
)
plist_fragment(
name = "PostboxInfoPlist",
extension = "plist",
template =
"""
CFBundleIdentifier
{telegram_bundle_id}.Postbox
CFBundleDevelopmentRegion
en
CFBundleName
Postbox
CFBundlePackageType
FMWK
""".format(
telegram_bundle_id = telegram_bundle_id,
)
)
ios_framework(
name = "PostboxFramework",
bundle_id = "{telegram_bundle_id}.Postbox".format(
telegram_bundle_id = telegram_bundle_id,
),
families = [
"iphone",
"ipad",
],
infoplists = [
":PostboxInfoPlist",
":BuildNumberInfoPlist",
":VersionInfoPlist",
":RequiredDeviceCapabilitiesPlist",
],
frameworks = [
":SwiftSignalKitFramework",
],
minimum_os_version = minimum_os_version,
extension_safe = True,
ipa_post_processor = strip_framework,
deps = [
"//submodules/Postbox:Postbox",
],
)
plist_fragment(
name = "TelegramApiInfoPlist",
extension = "plist",
template =
"""
CFBundleIdentifier
{telegram_bundle_id}.TelegramApi
CFBundleDevelopmentRegion
en
CFBundleName
TelegramApi
CFBundlePackageType
FMWK
""".format(
telegram_bundle_id = telegram_bundle_id,
)
)
plist_fragment(
name = "TelegramCoreInfoPlist",
extension = "plist",
template =
"""
CFBundleIdentifier
{telegram_bundle_id}.TelegramCore
CFBundleDevelopmentRegion
en
CFBundleName
TelegramCore
CFBundlePackageType
FMWK
""".format(
telegram_bundle_id = telegram_bundle_id,
)
)
ios_framework(
name = "TelegramCoreFramework",
bundle_id = "{telegram_bundle_id}.TelegramCore".format(
telegram_bundle_id = telegram_bundle_id,
),
families = [
"iphone",
"ipad",
],
infoplists = [
":TelegramCoreInfoPlist",
":BuildNumberInfoPlist",
":VersionInfoPlist",
":RequiredDeviceCapabilitiesPlist",
],
frameworks = [
":MtProtoKitFramework",
":SwiftSignalKitFramework",
":PostboxFramework",
],
minimum_os_version = minimum_os_version,
extension_safe = True,
ipa_post_processor = strip_framework,
deps = [
"//submodules/TelegramCore:TelegramCore",
],
visibility = [
"//visibility:public",
]
)
plist_fragment(
name = "AsyncDisplayKitInfoPlist",
extension = "plist",
template =
"""
CFBundleIdentifier
{telegram_bundle_id}.AsyncDisplayKit
CFBundleDevelopmentRegion
en
CFBundleName
AsyncDisplayKit
CFBundlePackageType
FMWK
""".format(
telegram_bundle_id = telegram_bundle_id,
)
)
plist_fragment(
name = "DisplayInfoPlist",
extension = "plist",
template =
"""
CFBundleIdentifier
{telegram_bundle_id}.Display
CFBundleDevelopmentRegion
en
CFBundleName
Display
CFBundlePackageType
FMWK
""".format(
telegram_bundle_id = telegram_bundle_id,
)
)
genrule(
name = "StripFramework",
cmd_bash =
"""
echo 'for f in $$1/*.framework; do binary_name=`echo $$(basename $$f) | sed -e "s/\\\\.framework//"`; strip -ST $$f/$$binary_name; done;' > $(location StripFramework.sh)
echo '' >> $(location StripFramework.sh)
""",
outs = [
"StripFramework.sh",
],
executable = True,
visibility = [
"//visibility:public",
]
)
genrule(
name = "GenerateAddAlternateIcons",
srcs = [
"Telegram-iOS/AddAlternateIcons.sh",
],
cmd_bash =
"""
cat $(location Telegram-iOS/AddAlternateIcons.sh) >> $(location AddAlternateIcons.sh)
""",
outs = [
"AddAlternateIcons.sh",
],
executable = True,
visibility = [
"//visibility:public",
]
)
sh_binary(
name = "AddAlternateIcons",
data = [
"Telegram-iOS/AlternateIcons.plist",
"Telegram-iOS/AlternateIcons-iPad.plist",
],
srcs = [":GenerateAddAlternateIcons"],
)
plist_fragment(
name = "TelegramUIInfoPlist",
extension = "plist",
template =
"""
CFBundleIdentifier
{telegram_bundle_id}.TelegramUI
CFBundleDevelopmentRegion
en
CFBundleName
TelegramUI
CFBundlePackageType
FMWK
""".format(
telegram_bundle_id = telegram_bundle_id,
)
)
ios_framework(
name = "TelegramUIFramework",
bundle_id = "{telegram_bundle_id}.TelegramUI".format(
telegram_bundle_id = telegram_bundle_id,
),
families = [
"iphone",
"ipad",
],
infoplists = [
":TelegramUIInfoPlist",
":BuildNumberInfoPlist",
":VersionInfoPlist",
":RequiredDeviceCapabilitiesPlist",
],
frameworks = [
":MtProtoKitFramework",
":SwiftSignalKitFramework",
":PostboxFramework",
":TelegramCoreFramework",
],
minimum_os_version = minimum_os_version,
extension_safe = True,
ipa_post_processor = strip_framework,
deps = [
"//submodules/TelegramUI:TelegramUI",
] + debug_deps,
)
plist_fragment(
name = "ShareInfoPlist",
extension = "plist",
template =
"""
CFBundleDevelopmentRegion
en
CFBundleIdentifier
{telegram_bundle_id}.Share
CFBundleName
WinterGram
CFBundlePackageType
XPC!
NSExtension
NSExtensionAttributes
IntentsSupported
INSendMessageIntent
NSExtensionActivationRule
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.file-url" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.movie" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.text" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.audio" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.data" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.vcard" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.apple.pkpass"
).@count == $extensionItem.attachments.@count
).@count > 0
NSExtensionPointIdentifier
com.apple.share-services
NSExtensionPrincipalClass
ShareRootController
""".format(
telegram_bundle_id = telegram_bundle_id,
)
)
swift_library(
name = "ShareExtensionLib",
module_name = "ShareExtensionLib",
srcs = glob([
"Share/**/*.swift",
]),
copts = [
"-warnings-as-errors",
],
deps = [
"//submodules/TelegramUI",
"//submodules/TelegramUI/Components/ShareExtensionContext"
],
)
ios_extension(
name = "ShareExtension",
bundle_id = "{telegram_bundle_id}.Share".format(
telegram_bundle_id = telegram_bundle_id,
),
families = [
"iphone",
"ipad",
],
infoplists = [
":ShareInfoPlist",
":VersionInfoPlist",
":RequiredDeviceCapabilitiesPlist",
":BuildNumberInfoPlist",
":AppNameInfoPlist",
],
minimum_os_version = minimum_os_version,
provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:Share.mobileprovision",
}),
deps = [":ShareExtensionLib"],
frameworks = [
":TelegramUIFramework"
],
)
plist_fragment(
name = "NotificationContentInfoPlist",
extension = "plist",
template =
"""
CFBundleDevelopmentRegion
en
CFBundleIdentifier
{telegram_bundle_id}.NotificationContent
CFBundleName
WinterGram
CFBundlePackageType
XPC!
NSExtension
NSExtensionAttributes
UNNotificationExtensionCategory
withReplyMedia
withMuteMedia
UNNotificationExtensionInitialContentSizeRatio
0.0001
NSExtensionPointIdentifier
com.apple.usernotifications.content-extension
NSExtensionPrincipalClass
NotificationViewController
""".format(
telegram_bundle_id = telegram_bundle_id,
)
)
objc_library(
name = "NotificationContentExtensionLink",
srcs = [
"NotificationContent/main.m",
],
sdk_frameworks = [
"UserNotificationsUI",
],
)
swift_library(
name = "NotificationContentExtensionLib",
module_name = "NotificationContentExtensionLib",
srcs = glob([
"NotificationContent/**/*.swift",
]),
copts = [
"-warnings-as-errors",
],
deps = [
"//submodules/TelegramUI:TelegramUI",
":NotificationContentExtensionLink",
],
)
'''genrule(
name = "SetMinOsVersionNotificationContentExtension",
cmd_bash =
"""
name=NotificationContentExtension.appex
cat $(location PatchMinOSVersion.source.sh) | sed -e "s/<<>>/10\\.0/g" | sed -e "s/<<>>/$$name/g" > $(location SetMinOsVersionNotificationContentExtension.sh)
""",
srcs = [
"PatchMinOSVersion.source.sh",
],
outs = [
"SetMinOsVersionNotificationContentExtension.sh",
],
executable = True,
visibility = [
"//visibility:public",
]
)'''
ios_extension(
name = "NotificationContentExtension",
bundle_id = "{telegram_bundle_id}.NotificationContent".format(
telegram_bundle_id = telegram_bundle_id,
),
families = [
"iphone",
"ipad",
],
infoplists = [
":NotificationContentInfoPlist",
":VersionInfoPlist",
":RequiredDeviceCapabilitiesPlist",
":BuildNumberInfoPlist",
":AppNameInfoPlist",
],
minimum_os_version = minimum_os_version, # maintain the same minimum OS version across extensions
#ipa_post_processor = ":SetMinOsVersionNotificationContentExtension",
provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:NotificationContent.mobileprovision",
}),
deps = [":NotificationContentExtensionLib"],
frameworks = [
":TelegramUIFramework"
],
)
plist_fragment(
name = "WidgetInfoPlist",
extension = "plist",
template =
"""
CFBundleDevelopmentRegion
en
CFBundleIdentifier
{telegram_bundle_id}.Widget
CFBundleName
WinterGram
CFBundlePackageType
XPC!
NSExtension
NSExtensionPointIdentifier
com.apple.widgetkit-extension
UIRequiredDeviceCapabilities
arm64
""".format(
telegram_bundle_id = telegram_bundle_id,
)
)
filegroup(
name = "WidgetAssets",
srcs = glob(["WidgetKitWidget/WidgetImages.xcassets/**"]),
visibility = ["//visibility:public"],
)
swift_library(
name = "WidgetExtensionLib",
module_name = "WidgetExtensionLib",
srcs = glob([
"WidgetKitWidget/**/*.swift",
]),
copts = [
"-warnings-as-errors",
],
data = [
":WidgetAssets",
],
deps = [
"//submodules/BuildConfig:BuildConfig",
"//submodules/WidgetItems:WidgetItems_iOS14",
"//submodules/WidgetItemsUtils:WidgetItemsUtils",
"//submodules/AppLockState:AppLockState",
"//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit",
"//submodules/Postbox:Postbox",
"//submodules/TelegramCore:TelegramCore",
"//submodules/OpenSSLEncryptionProvider:OpenSSLEncryptionProvider",
"//Telegram:GeneratedSources",
],
)
genrule(
name = "SetMinOsVersionWidgetExtension",
cmd_bash =
"""
name=WidgetExtension.appex
cat $(location PatchMinOSVersion.source.sh) | sed -e "s/<<>>/14\\.0/g" | sed -e "s/<<>>/$$name/g" > $(location SetMinOsVersionWidgetExtension.sh)
""",
srcs = [
"PatchMinOSVersion.source.sh",
],
outs = [
"SetMinOsVersionWidgetExtension.sh",
],
executable = True,
visibility = [
"//visibility:public",
]
)
ios_extension(
name = "WidgetExtension",
bundle_id = "{telegram_bundle_id}.Widget".format(
telegram_bundle_id = telegram_bundle_id,
),
families = [
"iphone",
"ipad",
],
infoplists = [
":WidgetInfoPlist",
":VersionInfoPlist",
":RequiredDeviceCapabilitiesPlist",
":BuildNumberInfoPlist",
":AppNameInfoPlist",
],
minimum_os_version = minimum_os_version, # maintain the same minimum OS version across extensions
ipa_post_processor = ":SetMinOsVersionWidgetExtension",
#provides_main = True,
provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:Widget.mobileprovision",
}),
deps = [
":WidgetExtensionLib",
],
frameworks = [
":SwiftSignalKitFramework",
":PostboxFramework",
":TelegramCoreFramework",
],
visibility = [
"//visibility:public",
]
)
plist_fragment(
name = "IntentsInfoPlist",
extension = "plist",
template =
"""
CFBundleDevelopmentRegion
en
CFBundleIdentifier
{telegram_bundle_id}.SiriIntents
CFBundleName
WinterGram
CFBundlePackageType
XPC!
NSExtension
NSExtensionAttributes
IntentsRestrictedWhileLocked
IntentsRestrictedWhileProtectedDataUnavailable
IntentsSupported
INSendMessageIntent
INStartAudioCallIntent
INSearchForMessagesIntent
INSetMessageAttributeIntent
INSearchCallHistoryIntent
SelectFriendsIntent
SelectAvatarFriendsIntent
NSExtensionPointIdentifier
com.apple.intents-service
NSExtensionPrincipalClass
IntentHandler
""".format(
telegram_bundle_id = telegram_bundle_id,
)
)
swift_intent_library(
name = "GeneratedSources",
src = "SiriIntents/en.lproj/Intents.intentdefinition",
module_name = "GeneratedSources",
visibility = ["//visibility:public"],
)
filegroup(
name = "IntentsAssets",
srcs = glob(["SiriIntents/IntentsImages.xcassets/**"]),
visibility = ["//visibility:public"],
)
swift_library(
name = "IntentsExtensionLib",
module_name = "IntentsExtensionLib",
srcs = glob([
"SiriIntents/**/*.swift",
]),
copts = [
"-warnings-as-errors",
],
data = glob([
"SiriIntents/*.lproj/Intents.intentdefinition"
]) + [
":IntentsAssets"
],
deps = [
"//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit",
"//submodules/Postbox:Postbox",
"//submodules/TelegramApi:TelegramApi",
"//submodules/TelegramCore:TelegramCore",
"//submodules/BuildConfig:BuildConfig",
"//submodules/OpenSSLEncryptionProvider:OpenSSLEncryptionProvider",
"//submodules/AppLockState:AppLockState",
"//Telegram:GeneratedSources",
"//submodules/WidgetItems:WidgetItems",
],
)
'''genrule(
name = "SetMinOsVersionIntentsExtension",
cmd_bash =
"""
name=IntentsExtension.appex
cat $(location PatchMinOSVersion.source.sh) | sed -e "s/<<>>/10\\.0/g" | sed -e "s/<<>>/$$name/g" > $(location SetMinOsVersionIntentsExtension.sh)
""",
srcs = [
"PatchMinOSVersion.source.sh",
],
outs = [
"SetMinOsVersionIntentsExtension.sh",
],
executable = True,
visibility = [
"//visibility:public",
]
)'''
ios_extension(
name = "IntentsExtension",
bundle_id = "{telegram_bundle_id}.SiriIntents".format(
telegram_bundle_id = telegram_bundle_id,
),
families = [
"iphone",
"ipad",
],
infoplists = [
":IntentsInfoPlist",
":VersionInfoPlist",
":RequiredDeviceCapabilitiesPlist",
":BuildNumberInfoPlist",
":AppNameInfoPlist",
],
minimum_os_version = minimum_os_version, # maintain the same minimum OS version across extensions
#ipa_post_processor = ":SetMinOsVersionIntentsExtension",
provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:Intents.mobileprovision",
}),
deps = [":IntentsExtensionLib"],
frameworks = [
":SwiftSignalKitFramework",
":PostboxFramework",
":TelegramCoreFramework",
],
)
plist_fragment(
name = "BroadcastUploadInfoPlist",
extension = "plist",
template =
"""
CFBundleDevelopmentRegion
en
CFBundleIdentifier
{telegram_bundle_id}.BroadcastUpload
CFBundleName
WinterGram
CFBundlePackageType
XPC!
NSExtension
NSExtensionPointIdentifier
com.apple.broadcast-services-upload
NSExtensionPrincipalClass
BroadcastUploadSampleHandler
RPBroadcastProcessMode
RPBroadcastProcessModeSampleBuffer
""".format(
telegram_bundle_id = telegram_bundle_id,
)
)
swift_library(
name = "BroadcastUploadExtensionLib",
module_name = "BroadcastUploadExtensionLib",
srcs = glob([
"BroadcastUpload/**/*.swift",
]),
copts = [
"-warnings-as-errors",
],
deps = [
"//submodules/TelegramUI:TelegramUI",
"//submodules/TelegramVoip:TelegramVoip",
"//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit",
"//submodules/BuildConfig:BuildConfig",
"//submodules/WidgetItems:WidgetItems",
"//submodules/BroadcastUploadHelpers:BroadcastUploadHelpers",
],
)
'''genrule(
name = "SetMinOsVersionBroadcastUploadExtension",
cmd_bash =
"""
name=BroadcastUploadExtension.appex
cat $(location PatchMinOSVersion.source.sh) | sed -e "s/<<>>/11\\.0/g" | sed -e "s/<<>>/$$name/g" > $(location SetMinOsVersionBroadcastUploadExtension.sh)
""",
srcs = [
"PatchMinOSVersion.source.sh",
],
outs = [
"SetMinOsVersionBroadcastUploadExtension.sh",
],
executable = True,
visibility = [
"//visibility:public",
]
)'''
ios_extension(
name = "BroadcastUploadExtension",
bundle_id = "{telegram_bundle_id}.BroadcastUpload".format(
telegram_bundle_id = telegram_bundle_id,
),
families = [
"iphone",
"ipad",
],
infoplists = [
":BroadcastUploadInfoPlist",
":VersionInfoPlist",
":RequiredDeviceCapabilitiesPlist",
":BuildNumberInfoPlist",
":AppNameInfoPlist",
],
minimum_os_version = minimum_os_version, # maintain the same minimum OS version across extensions
#ipa_post_processor = ":SetMinOsVersionBroadcastUploadExtension",
provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:BroadcastUpload.mobileprovision",
}),
deps = [":BroadcastUploadExtensionLib"],
frameworks = [
":TelegramUIFramework",
":SwiftSignalKitFramework",
],
)
plist_fragment(
name = "NotificationServiceInfoPlist",
extension = "plist",
template =
"""
CFBundleDevelopmentRegion
en
CFBundleIdentifier
{telegram_bundle_id}.NotificationService
CFBundleName
WinterGram
CFBundlePackageType
XPC!
NSExtension
NSExtensionPointIdentifier
com.apple.usernotifications.service
NSExtensionPrincipalClass
NotificationService
NSExtensionAttributes
IntentsSupported
INSendMessageIntent
""".format(
telegram_bundle_id = telegram_bundle_id
)
)
ios_extension(
name = "NotificationServiceExtension" + notificationServiceExtensionVersion,
bundle_id = "{telegram_bundle_id}.NotificationService".format(
telegram_bundle_id = telegram_bundle_id,
),
families = [
"iphone",
"ipad",
],
infoplists = [
":NotificationServiceInfoPlist",
":VersionInfoPlist",
":RequiredDeviceCapabilitiesPlist",
":BuildNumberInfoPlist",
":AppNameInfoPlist",
],
minimum_os_version = minimum_os_version, # maintain the same minimum OS version across extensions
provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:NotificationService.mobileprovision",
}),
deps = ["//Telegram/NotificationService:NotificationServiceExtensionLib"],
frameworks = [
":MtProtoKitFramework",
":SwiftSignalKitFramework",
":PostboxFramework",
":TelegramCoreFramework",
":TelegramUIFramework",
],
)
plist_fragment(
name = "TelegramInfoPlist",
extension = "plist",
template =
"""
BGTaskSchedulerPermittedIdentifiers
{telegram_bundle_id}.refresh
{telegram_bundle_id}.cleanup
{telegram_bundle_id}.upload.*
CFBundleAllowMixedLocalizations
CFBundleDevelopmentRegion
en
CFBundleDisplayName
WinterGram
CFBundleIdentifier
{telegram_bundle_id}
CFBundleName
WinterGram
CFBundlePackageType
APPL
CFBundleSignature
????
ITSAppUsesNonExemptEncryption
LSApplicationQueriesSchemes
instagram
comgooglemaps-x-callback
foursquare
here-location
yandexmaps
yandexnavi
yandextaxi
yangoride
comgooglemaps
youtube
twitter
vk
waze
googlechrome
firefox
touch-http
yandexbrowser-open-url
vimeo
vine
coub
uber
citymapper
lyft
opera-http
firefox-focus
ddgQuickLink
moovit
alook
dgis
microsoft-edge-http
brave
onionhttp
ucbrowser
dolphin
instagram-stories
yangomaps
vivaldi
LSRequiresIPhoneOS
NSAppTransportSecurity
NSAllowsArbitraryLoads
NSCameraUsageDescription
We need this so that you can take and share photos and videos.
NSContactsUsageDescription
WinterGram stores your contacts heavily encrypted in the cloud to let you connect with your friends across all your devices.
NSFaceIDUsageDescription
You can use Face ID to unlock the app.
NSLocationAlwaysUsageDescription
When you send your location to your friends, WinterGram needs access to show them a map. You also need this to send locations from an Apple Watch.
NSLocationWhenInUseUsageDescription
When you send your location to your friends, WinterGram needs access to show them a map.
NSMicrophoneUsageDescription
We need this so that you can record and share voice messages and videos with sound.
NSMotionUsageDescription
When you send your location to your friends, WinterGram needs access to show them a map.
NSPhotoLibraryAddUsageDescription
We need this so that you can share photos and videos from your photo library.
NSPhotoLibraryUsageDescription
We need this so that you can share photos and videos from your photo library.
NSSiriUsageDescription
You can use Siri to send messages.
NSSpeechRecognitionUsageDescription
We need this to transcribe audio messages on your request.
NSUserActivityTypes
INSendMessageIntent
RemindAboutChatIntent
UIAppFonts
AremacFS-Regular.otf
AremacFS-Semibold.otf
{background_modes_fragment}
UIDeviceFamily
1
2
UIFileSharingEnabled
UILaunchStoryboardName
LaunchScreen
UIRequiresPersistentWiFi
UIStatusBarStyle
UIStatusBarStyleDefault
UISupportedInterfaceOrientations
UIInterfaceOrientationPortrait
UIInterfaceOrientationLandscapeLeft
UIInterfaceOrientationLandscapeRight
UISupportedInterfaceOrientations~ipad
UIInterfaceOrientationPortrait
UIInterfaceOrientationPortraitUpsideDown
UIInterfaceOrientationLandscapeLeft
UIInterfaceOrientationLandscapeRight
UIViewControllerBasedStatusBarAppearance
UIViewEdgeAntialiasing
UIViewGroupOpacity
UTImportedTypeDeclarations
UTTypeConformsTo
public.data
UTTypeDescription
WinterGram iOS Color Theme File
UTTypeIconFiles
BlueIcon@3x.png
UTTypeIdentifier
dev.reekeer.wintergram.theme
UTTypeTagSpecification
public.filename-extension
tgios-theme
CADisableMinimumFrameDurationOnPhone
UIApplicationSupportsIndirectInputEvents
""".format(
telegram_bundle_id = telegram_bundle_id,
background_modes_fragment = background_modes_fragment,
)
)
local_provisioning_profile(
name = "Telegram_local_profile",
profile_name = "iOS Team Provisioning Profile: {}".format(telegram_bundle_id),
team_id = telegram_team_id,
)
xcode_provisioning_profile(
name = "Telegram_xcode_profile",
managed_by_xcode = True,
provisioning_profile = ":Telegram_local_profile",
)
apple_prebuilt_watchos_application(
name = "TelegramWatchApp",
# Watch bundle id tracks the host config (".watchkitapp"). The rule passes it
# to xcodebuild as PRODUCT_BUNDLE_IDENTIFIER (baked + signed); the watch Info.plist
# derives WKCompanionAppBundleIdentifier from it via $(PRODUCT_BUNDLE_IDENTIFIER:base),
# so the embedded watch app is correct for any host (ph.telegra.Telegraph,
# org.telegram.TelegramInternal, ...) with no post-build plist patching.
bundle_id = "{telegram_bundle_id}.watchkitapp".format(
telegram_bundle_id = telegram_bundle_id,
),
tags = ["manual"],
)
ios_application(
name = "Telegram",
bundle_id = "{telegram_bundle_id}".format(
telegram_bundle_id = telegram_bundle_id,
),
families = ["iphone", "ipad"],
minimum_os_version = minimum_os_version,
provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": ":Telegram_xcode_profile" if telegram_use_xcode_managed_codesigning else "@build_configuration//provisioning:Telegram.mobileprovision",
}),
entitlements = ":TelegramEntitlements.entitlements",
infoplists = [
":TelegramInfoPlist",
":BuildNumberInfoPlist",
":VersionInfoPlist",
":RequiredDeviceCapabilitiesPlist",
":UrlTypesInfoPlist",
],
app_icons = [ ":{}_icon".format(name) for name in composer_icon_folders ],
primary_app_icon = "WinterGramDarkIcon",
alternate_icons = [
":{}".format(name) for name in alternate_icon_folders
],
resources = [
":LaunchScreen",
":DefaultAppIcon",
],
frameworks = [
":MtProtoKitFramework",
":SwiftSignalKitFramework",
":PostboxFramework",
":TelegramCoreFramework",
":TelegramUIFramework",
],
strings = [
":AppStringResources",
],
extensions = select({
":disableExtensionsSetting": [],
"//conditions:default": [
":ShareExtension",
":NotificationContentExtension",
":NotificationServiceExtension" + notificationServiceExtensionVersion,
":IntentsExtension",
":WidgetExtension",
":BroadcastUploadExtension",
],
}),
# Embed the in-repo tgwatch watch app (Telegram/WatchApp) under Watch/ only when
# --//Telegram:embedWatchApp is set (Make.py sets it for device configs when
# --embedWatchApp is passed). Off by default, so simulator/dev builds are unaffected.
watch_application = select({
":embedWatchAppSetting": ":TelegramWatchApp",
"//conditions:default": None,
}),
deps = [
":Main",
":Lib",
],
visibility = ["//visibility:public"],
)
xcodeproj(
name = "Telegram_xcodeproj",
bazel_path = telegram_bazel_path,
project_name = "Telegram",
tags = ["manual"],
top_level_targets = [
top_level_target(":Telegram", target_environments = ["device", "simulator"]),
":iOSAppUITestSuite",
],
xcode_configurations = {
"Debug": {
"//command_line_option:compilation_mode": "dbg",
},
"Release": {
"//command_line_option:compilation_mode": "opt",
},
},
default_xcode_configuration = "Debug"
)
filegroup(
name = "TestSources",
srcs = glob(["Tests/Sources/**/*.swift"]),
)
ios_test_runner(
name = "iPhone-17__26.5",
device_type = "iPhone 17",
os_version = "26.5",
)
swift_library(
name = "iOSAppUITestSuite.library",
testonly = True,
srcs = [":TestSources"],
module_name = "iOSAppUITestSuite",
tags = ["manual"],
)
ios_ui_test_suite(
name = "iOSAppUITestSuite",
bundle_id = "org.telegram.Telegram-iOS-uitests",
minimum_os_version = minimum_os_version,
runners = [
":iPhone-17__26.5",
],
tags = ["manual"],
test_host = "//Telegram",
visibility = ["@rules_xcodeproj//xcodeproj:generated"],
deps = [":iOSAppUITestSuite.library"],
)
# Temporary targets used to simplify build tests
ios_application(
name = "spm_build_app",
bundle_id = "{telegram_bundle_id}".format(
telegram_bundle_id = telegram_bundle_id,
),
families = ["iphone", "ipad"],
minimum_os_version = minimum_os_version,
provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:Telegram.mobileprovision",
}),
entitlements = ":TelegramEntitlements.entitlements",
infoplists = [
":TelegramInfoPlist",
":BuildNumberInfoPlist",
":VersionInfoPlist",
":RequiredDeviceCapabilitiesPlist",
":UrlTypesInfoPlist",
],
deps = [
#"//submodules/Display",
#"//submodules/TelegramCore",
#"//submodules/FFMpegBinding",
#"//third-party/webrtc",
#"//third-party/webrtc:webrtc_objc",
#"//submodules/AsyncDisplayKit",
#"//submodules/ObjCRuntimeUtils",
#"//submodules/OpusBinding",
#"//third-party/boringssl:ssl",
#"//third-party/boringssl:crypto",
#"//submodules/TelegramVoip",
#"//third-party/recaptcha:RecaptchaEnterprise",
"//submodules/TelegramUI",
],
)
generate_spm(
name = "spm_build_root",
deps = [
":spm_build_app",
]
)
ios_application(
name = "webrtc_build_test",
bundle_id = "{telegram_bundle_id}".format(
telegram_bundle_id = telegram_bundle_id,
),
families = ["iphone", "ipad"],
minimum_os_version = minimum_os_version,
provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:Telegram.mobileprovision",
}),
entitlements = ":TelegramEntitlements.entitlements",
infoplists = [
":TelegramInfoPlist",
":BuildNumberInfoPlist",
":VersionInfoPlist",
":RequiredDeviceCapabilitiesPlist",
":UrlTypesInfoPlist",
],
deps = [
"//third-party/webrtc",
"//third-party/webrtc:webrtc_objc",
],
)
ios_application(
name = "libvpx_build_test",
bundle_id = "{telegram_bundle_id}".format(
telegram_bundle_id = telegram_bundle_id,
),
families = ["iphone", "ipad"],
minimum_os_version = minimum_os_version,
provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:Telegram.mobileprovision",
}),
entitlements = ":TelegramEntitlements.entitlements",
infoplists = [
":TelegramInfoPlist",
":BuildNumberInfoPlist",
":VersionInfoPlist",
":RequiredDeviceCapabilitiesPlist",
":UrlTypesInfoPlist",
],
deps = [
"//third-party/libvpx:vpx",
],
)