mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-29 00:50:40 +00:00
Temp
This commit is contained in:
parent
681565e7f9
commit
284740a01f
90
BUCK
90
BUCK
@ -75,7 +75,7 @@ apple_resource(
|
|||||||
)
|
)
|
||||||
|
|
||||||
apple_asset_catalog(
|
apple_asset_catalog(
|
||||||
name = 'Icons',
|
name = "Icons",
|
||||||
dirs = [
|
dirs = [
|
||||||
"Telegram-iOS/Icons.xcassets",
|
"Telegram-iOS/Icons.xcassets",
|
||||||
],
|
],
|
||||||
@ -83,7 +83,7 @@ apple_asset_catalog(
|
|||||||
)
|
)
|
||||||
|
|
||||||
apple_asset_catalog(
|
apple_asset_catalog(
|
||||||
name = 'AppIcons',
|
name = "AppIcons",
|
||||||
dirs = [
|
dirs = [
|
||||||
"Telegram-iOS/AppIcons.xcassets",
|
"Telegram-iOS/AppIcons.xcassets",
|
||||||
],
|
],
|
||||||
@ -99,9 +99,9 @@ apple_resource(
|
|||||||
)
|
)
|
||||||
|
|
||||||
apple_resource(
|
apple_resource(
|
||||||
name = 'LaunchScreen',
|
name = "LaunchScreen",
|
||||||
files = [
|
files = [
|
||||||
'Telegram-iOS/Base.lproj/LaunchScreen.xib',
|
"Telegram-iOS/Base.lproj/LaunchScreen.xib",
|
||||||
],
|
],
|
||||||
visibility = ["PUBLIC"],
|
visibility = ["PUBLIC"],
|
||||||
)
|
)
|
||||||
@ -130,7 +130,7 @@ apple_binary(
|
|||||||
"//:",
|
"//:",
|
||||||
"//...",
|
"//...",
|
||||||
],
|
],
|
||||||
configs = app_binary_configs("Telegram"),
|
configs = app_binary_configs(),
|
||||||
swift_version = native.read_config("swift", "version"),
|
swift_version = native.read_config("swift", "version"),
|
||||||
srcs = [
|
srcs = [
|
||||||
"SupportFiles/Empty.swift",
|
"SupportFiles/Empty.swift",
|
||||||
@ -150,7 +150,7 @@ apple_bundle(
|
|||||||
binary = ":AppBinary",
|
binary = ":AppBinary",
|
||||||
product_name = "Telegram",
|
product_name = "Telegram",
|
||||||
info_plist = "Telegram-iOS/Info.plist",
|
info_plist = "Telegram-iOS/Info.plist",
|
||||||
info_plist_substitutions = app_info_plist_substitutions("Telegram"),
|
info_plist_substitutions = app_info_plist_substitutions(),
|
||||||
deps = [
|
deps = [
|
||||||
":ShareExtension",
|
":ShareExtension",
|
||||||
":WidgetExtension",
|
":WidgetExtension",
|
||||||
@ -169,7 +169,7 @@ apple_binary(
|
|||||||
srcs = glob([
|
srcs = glob([
|
||||||
"Share/**/*.swift",
|
"Share/**/*.swift",
|
||||||
]),
|
]),
|
||||||
configs = share_extension_configs("Share"),
|
configs = share_extension_configs(),
|
||||||
linker_flags = [
|
linker_flags = [
|
||||||
"-e",
|
"-e",
|
||||||
"_NSExtensionMain",
|
"_NSExtensionMain",
|
||||||
@ -192,7 +192,7 @@ apple_bundle(
|
|||||||
binary = ":ShareBinary",
|
binary = ":ShareBinary",
|
||||||
extension = "appex",
|
extension = "appex",
|
||||||
info_plist = "Share/Info.plist",
|
info_plist = "Share/Info.plist",
|
||||||
info_plist_substitutions = share_extension_info_plist_substitutions("Share"),
|
info_plist_substitutions = share_extension_info_plist_substitutions(),
|
||||||
deps = [
|
deps = [
|
||||||
],
|
],
|
||||||
xcode_product_type = "com.apple.product-type.app-extension",
|
xcode_product_type = "com.apple.product-type.app-extension",
|
||||||
@ -205,7 +205,7 @@ apple_binary(
|
|||||||
srcs = glob([
|
srcs = glob([
|
||||||
"Widget/**/*.swift",
|
"Widget/**/*.swift",
|
||||||
]),
|
]),
|
||||||
configs = widget_extension_configs("Widget"),
|
configs = widget_extension_configs(),
|
||||||
swift_compiler_flags = [
|
swift_compiler_flags = [
|
||||||
"-application-extension",
|
"-application-extension",
|
||||||
],
|
],
|
||||||
@ -235,7 +235,7 @@ apple_bundle(
|
|||||||
binary = ":WidgetBinary",
|
binary = ":WidgetBinary",
|
||||||
extension = "appex",
|
extension = "appex",
|
||||||
info_plist = "Widget/Info.plist",
|
info_plist = "Widget/Info.plist",
|
||||||
info_plist_substitutions = widget_extension_info_plist_substitutions("Widget"),
|
info_plist_substitutions = widget_extension_info_plist_substitutions(),
|
||||||
deps = [
|
deps = [
|
||||||
],
|
],
|
||||||
xcode_product_type = "com.apple.product-type.app-extension",
|
xcode_product_type = "com.apple.product-type.app-extension",
|
||||||
@ -248,7 +248,7 @@ apple_binary(
|
|||||||
srcs = glob([
|
srcs = glob([
|
||||||
"NotificationContent/**/*.swift",
|
"NotificationContent/**/*.swift",
|
||||||
]),
|
]),
|
||||||
configs = notification_content_extension_configs("NotificationContent"),
|
configs = notification_content_extension_configs(),
|
||||||
swift_compiler_flags = [
|
swift_compiler_flags = [
|
||||||
"-application-extension",
|
"-application-extension",
|
||||||
],
|
],
|
||||||
@ -274,8 +274,8 @@ apple_bundle(
|
|||||||
name = "NotificationContentExtension",
|
name = "NotificationContentExtension",
|
||||||
binary = ":NotificationContentBinary",
|
binary = ":NotificationContentBinary",
|
||||||
extension = "appex",
|
extension = "appex",
|
||||||
info_plist = "Widget/Info.plist",
|
info_plist = "NotificationContent/Info.plist",
|
||||||
info_plist_substitutions = notification_content_extension_info_plist_substitutions("NotificationContent"),
|
info_plist_substitutions = notification_content_extension_info_plist_substitutions(),
|
||||||
deps = [
|
deps = [
|
||||||
],
|
],
|
||||||
xcode_product_type = "com.apple.product-type.app-extension",
|
xcode_product_type = "com.apple.product-type.app-extension",
|
||||||
@ -291,7 +291,7 @@ apple_binary(
|
|||||||
headers = glob([
|
headers = glob([
|
||||||
"NotificationService/**/*.h",
|
"NotificationService/**/*.h",
|
||||||
]),
|
]),
|
||||||
configs = notification_service_extension_configs("NotificationService"),
|
configs = notification_service_extension_configs(),
|
||||||
swift_compiler_flags = [
|
swift_compiler_flags = [
|
||||||
"-application-extension",
|
"-application-extension",
|
||||||
],
|
],
|
||||||
@ -317,8 +317,8 @@ apple_bundle(
|
|||||||
name = "NotificationServiceExtension",
|
name = "NotificationServiceExtension",
|
||||||
binary = ":NotificationServiceBinary",
|
binary = ":NotificationServiceBinary",
|
||||||
extension = "appex",
|
extension = "appex",
|
||||||
info_plist = "Widget/Info.plist",
|
info_plist = "NotificationService/Info.plist",
|
||||||
info_plist_substitutions = notification_service_extension_info_plist_substitutions("NotificationService"),
|
info_plist_substitutions = notification_service_extension_info_plist_substitutions(),
|
||||||
deps = [
|
deps = [
|
||||||
],
|
],
|
||||||
xcode_product_type = "com.apple.product-type.app-extension",
|
xcode_product_type = "com.apple.product-type.app-extension",
|
||||||
@ -331,7 +331,7 @@ apple_binary(
|
|||||||
srcs = glob([
|
srcs = glob([
|
||||||
"SiriIntents/**/*.swift",
|
"SiriIntents/**/*.swift",
|
||||||
]),
|
]),
|
||||||
configs = intents_extension_configs("SiriIntents"),
|
configs = intents_extension_configs(),
|
||||||
swift_compiler_flags = [
|
swift_compiler_flags = [
|
||||||
"-application-extension",
|
"-application-extension",
|
||||||
],
|
],
|
||||||
@ -359,8 +359,8 @@ apple_bundle(
|
|||||||
name = "IntentsExtension",
|
name = "IntentsExtension",
|
||||||
binary = ":IntentsBinary",
|
binary = ":IntentsBinary",
|
||||||
extension = "appex",
|
extension = "appex",
|
||||||
info_plist = "Widget/Info.plist",
|
info_plist = "SiriIntents/Info.plist",
|
||||||
info_plist_substitutions = intents_extension_info_plist_substitutions("SiriIntents"),
|
info_plist_substitutions = intents_extension_info_plist_substitutions(),
|
||||||
deps = [
|
deps = [
|
||||||
],
|
],
|
||||||
xcode_product_type = "com.apple.product-type.app-extension",
|
xcode_product_type = "com.apple.product-type.app-extension",
|
||||||
@ -391,7 +391,7 @@ apple_binary(
|
|||||||
compiler_flags = [
|
compiler_flags = [
|
||||||
"-DTARGET_OS_WATCH=1",
|
"-DTARGET_OS_WATCH=1",
|
||||||
],
|
],
|
||||||
configs = watch_extension_binary_configs("watchkitapp.watchkitextension"),
|
configs = watch_extension_binary_configs(),
|
||||||
frameworks = [
|
frameworks = [
|
||||||
"$SDKROOT/System/Library/Frameworks/UserNotifications.framework",
|
"$SDKROOT/System/Library/Frameworks/UserNotifications.framework",
|
||||||
"$SDKROOT/System/Library/Frameworks/CoreLocation.framework",
|
"$SDKROOT/System/Library/Frameworks/CoreLocation.framework",
|
||||||
@ -404,13 +404,50 @@ apple_bundle(
|
|||||||
binary = ":WatchAppExtensionBinary",
|
binary = ":WatchAppExtensionBinary",
|
||||||
extension = "appex",
|
extension = "appex",
|
||||||
info_plist = "Watch/Extension/Info.plist",
|
info_plist = "Watch/Extension/Info.plist",
|
||||||
info_plist_substitutions = watch_extension_info_plist_substitutions("watchkitapp.watchkitextension"),
|
info_plist_substitutions = watch_extension_info_plist_substitutions(),
|
||||||
xcode_product_type = "com.apple.product-type.watchkit2-extension",
|
xcode_product_type = "com.apple.product-type.watchkit2-extension",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
apple_resource(
|
||||||
|
name = "WatchAppResources",
|
||||||
|
dirs = [],
|
||||||
|
files = glob(["Watch/Extension/Resources/*.png"])
|
||||||
|
)
|
||||||
|
|
||||||
|
apple_asset_catalog(
|
||||||
|
name = "WatchAppAssets",
|
||||||
|
dirs = [
|
||||||
|
"Watch/App/Assets.xcassets",
|
||||||
|
],
|
||||||
|
visibility = ["PUBLIC"],
|
||||||
|
)
|
||||||
|
|
||||||
|
apple_resource(
|
||||||
|
name = "WatchAppInterface",
|
||||||
|
files = [
|
||||||
|
"Watch/App/Base.lproj/Interface.storyboard",
|
||||||
|
],
|
||||||
|
visibility = ["PUBLIC"],
|
||||||
|
)
|
||||||
|
|
||||||
|
apple_resource(
|
||||||
|
name = "WatchAppStringResources",
|
||||||
|
files = [],
|
||||||
|
variants = glob([
|
||||||
|
"Telegram-iOS/*.lproj/Localizable.strings",
|
||||||
|
]),
|
||||||
|
visibility = ["PUBLIC"],
|
||||||
|
)
|
||||||
|
|
||||||
apple_binary(
|
apple_binary(
|
||||||
name = "WatchAppBinary",
|
name = "WatchAppBinary",
|
||||||
configs = watch_binary_configs("watch.app")
|
configs = watch_binary_configs(),
|
||||||
|
deps = [
|
||||||
|
":WatchAppResources",
|
||||||
|
":WatchAppAssets",
|
||||||
|
":WatchAppInterface",
|
||||||
|
":WatchAppStringResources",
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
apple_bundle(
|
apple_bundle(
|
||||||
@ -421,20 +458,13 @@ apple_bundle(
|
|||||||
],
|
],
|
||||||
extension = "app",
|
extension = "app",
|
||||||
info_plist = "Watch/App/Info.plist",
|
info_plist = "Watch/App/Info.plist",
|
||||||
info_plist_substitutions = watch_info_plist_substitutions("watchkitapp"),
|
info_plist_substitutions = watch_info_plist_substitutions(),
|
||||||
xcode_product_type = "com.apple.product-type.application.watchapp2",
|
xcode_product_type = "com.apple.product-type.application.watchapp2",
|
||||||
deps = [
|
deps = [
|
||||||
":WatchAppExtension",
|
":WatchAppExtension",
|
||||||
":WatchAppResources",
|
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
apple_resource(
|
|
||||||
name = "WatchAppResources",
|
|
||||||
dirs = [],
|
|
||||||
files = glob(["Watch/Extension/Resources/*.png"])
|
|
||||||
)
|
|
||||||
|
|
||||||
# Package
|
# Package
|
||||||
|
|
||||||
apple_package(
|
apple_package(
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
load("//Config:configs.bzl", "library_configs", "framework_library_configs", "info_plist_substitutions")
|
load("//Config:configs.bzl", "library_configs", "dynamic_library_configs", "info_plist_substitutions")
|
||||||
|
|
||||||
def apple_lib(
|
def apple_lib(
|
||||||
name,
|
name,
|
||||||
@ -58,30 +58,6 @@ def apple_lib(
|
|||||||
linker_flags = []
|
linker_flags = []
|
||||||
|
|
||||||
resolved_linker_flags = linker_flags + additional_linker_flags + ["-Wl,-install_name,@rpath/lib%s.dylib" % (name)]
|
resolved_linker_flags = linker_flags + additional_linker_flags + ["-Wl,-install_name,@rpath/lib%s.dylib" % (name)]
|
||||||
if native.read_config("custom", "mode") == "project":
|
|
||||||
native.apple_library(
|
|
||||||
name = name + "",
|
|
||||||
srcs = srcs,
|
|
||||||
header_namespace = name,
|
|
||||||
module_name = name,
|
|
||||||
headers = headers,
|
|
||||||
exported_headers = exported_headers,
|
|
||||||
deps = deps,
|
|
||||||
exported_deps = exported_deps,
|
|
||||||
extra_xcode_files = extra_xcode_files,
|
|
||||||
frameworks = frameworks,
|
|
||||||
visibility = visibility,
|
|
||||||
swift_version = swift_version,
|
|
||||||
configs = framework_library_configs(name),
|
|
||||||
modular = modular,
|
|
||||||
compiler_flags = compiler_flags,
|
|
||||||
platform_compiler_flags = platform_compiler_flags,
|
|
||||||
swift_compiler_flags = swift_compiler_flags,
|
|
||||||
preferred_linkage = "shared",
|
|
||||||
link_style = "static",
|
|
||||||
linker_flags = resolved_linker_flags,
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
native.apple_library(
|
native.apple_library(
|
||||||
name = name + "",
|
name = name + "",
|
||||||
srcs = srcs,
|
srcs = srcs,
|
||||||
@ -96,7 +72,7 @@ def apple_lib(
|
|||||||
frameworks = frameworks,
|
frameworks = frameworks,
|
||||||
visibility = visibility,
|
visibility = visibility,
|
||||||
swift_version = swift_version,
|
swift_version = swift_version,
|
||||||
configs = framework_library_configs(name),
|
configs = dynamic_library_configs(),
|
||||||
modular = modular,
|
modular = modular,
|
||||||
compiler_flags = compiler_flags,
|
compiler_flags = compiler_flags,
|
||||||
platform_compiler_flags = platform_compiler_flags,
|
platform_compiler_flags = platform_compiler_flags,
|
||||||
@ -105,7 +81,6 @@ def apple_lib(
|
|||||||
link_style = "static",
|
link_style = "static",
|
||||||
linker_flags = resolved_linker_flags,
|
linker_flags = resolved_linker_flags,
|
||||||
)
|
)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
additional_linker_flags = additional_linker_flags or []
|
additional_linker_flags = additional_linker_flags or []
|
||||||
if has_cpp:
|
if has_cpp:
|
||||||
@ -240,10 +215,6 @@ def apple_cxx_lib(
|
|||||||
|
|
||||||
def framework_binary_dependencies(names):
|
def framework_binary_dependencies(names):
|
||||||
result = []
|
result = []
|
||||||
if native.read_config("custom", "mode") == "project":
|
|
||||||
for name in names:
|
|
||||||
result.append(name + "#shared")
|
|
||||||
else:
|
|
||||||
for name in names:
|
for name in names:
|
||||||
result.append(name + "#shared")
|
result.append(name + "#shared")
|
||||||
return result
|
return result
|
||||||
@ -252,12 +223,10 @@ def framework_bundle_dependencies(names):
|
|||||||
result = []
|
result = []
|
||||||
if native.read_config("custom", "mode") == "project":
|
if native.read_config("custom", "mode") == "project":
|
||||||
for name in names:
|
for name in names:
|
||||||
#result.append(name + "#shared")
|
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
for name in names:
|
for name in names:
|
||||||
result.append(name + "#shared")
|
result.append(name + "#shared")
|
||||||
pass
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def gen_header_targets(header_paths, prefix, flavor, source_rule, source_path):
|
def gen_header_targets(header_paths, prefix, flavor, source_rule, source_path):
|
||||||
|
@ -37,14 +37,110 @@ SHARED_CONFIGS = {
|
|||||||
|
|
||||||
def optimization_config():
|
def optimization_config():
|
||||||
return {
|
return {
|
||||||
"SWIFT_OPTIMIZATION_LEVEL": native.read_config('custom', 'optimization'),
|
"SWIFT_OPTIMIZATION_LEVEL": native.read_config("custom", "optimization"),
|
||||||
}
|
}
|
||||||
|
|
||||||
# Adding `-all_load` to our binaries works around https://bugs.swift.org/browse/SR-6004.
|
# Adding `-all_load` to our binaries works around https://bugs.swift.org/browse/SR-6004.
|
||||||
ALL_LOAD_LINKER_FLAG = "-all_load"
|
ALL_LOAD_LINKER_FLAG = "-all_load"
|
||||||
|
|
||||||
def bundle_identifier(name):
|
def read_config_nonempty(name):
|
||||||
return "org.telegram.Telegram-iOS.%s" % name
|
value = native.read_config("custom", name)
|
||||||
|
if value == None:
|
||||||
|
fail("Configuration paramter custom.%s should be defined" % name)
|
||||||
|
elif len(value) == 0:
|
||||||
|
fail("Configuration paramter custom.%s should not be empty" % name)
|
||||||
|
else:
|
||||||
|
return value
|
||||||
|
|
||||||
|
def get_codesign_identity(environment):
|
||||||
|
if environment == "development":
|
||||||
|
return read_config_nonempty("developmentCodeSignIdentity")
|
||||||
|
elif environment == "distribution":
|
||||||
|
return read_config_nonempty("distributionCodeSignIdentity")
|
||||||
|
else:
|
||||||
|
fail("Unknown environment " + environment)
|
||||||
|
|
||||||
|
def get_provisioning_profile(environment, type):
|
||||||
|
if type == "app":
|
||||||
|
return read_config_nonempty(environment + "ProvisioningProfileApp")
|
||||||
|
elif type == "share":
|
||||||
|
return read_config_nonempty(environment + "ProvisioningProfileExtensionShare")
|
||||||
|
elif type == "widget":
|
||||||
|
return read_config_nonempty(environment + "ProvisioningProfileExtensionWidget")
|
||||||
|
elif type == "notification_service":
|
||||||
|
return read_config_nonempty(environment + "ProvisioningProfileExtensionNotificationService")
|
||||||
|
elif type == "notification_content":
|
||||||
|
return read_config_nonempty(environment + "ProvisioningProfileExtensionNotificationContent")
|
||||||
|
elif type == "intents":
|
||||||
|
return read_config_nonempty(environment + "ProvisioningProfileExtensionIntents")
|
||||||
|
elif type == "watch_app":
|
||||||
|
return read_config_nonempty(environment + "ProvisioningProfileWatchApp")
|
||||||
|
elif type == "watch_extension":
|
||||||
|
return read_config_nonempty(environment + "ProvisioningProfileWatchExtension")
|
||||||
|
else:
|
||||||
|
fail("Unknown provisioning profile type " + type)
|
||||||
|
|
||||||
|
def get_development_team():
|
||||||
|
return read_config_nonempty("developmentTeam")
|
||||||
|
|
||||||
|
def add_item_to_subdict(superdict, key, subkey, item):
|
||||||
|
subdict = dict(superdict[key])
|
||||||
|
subdict[subkey] = item
|
||||||
|
superdict[key] = subdict
|
||||||
|
|
||||||
|
valid_configurations = ["Debug", "Profile", "Release"]
|
||||||
|
|
||||||
|
def add_provisioning_profile_specifier(configs, type):
|
||||||
|
for configuration in configs:
|
||||||
|
if configuration not in valid_configurations:
|
||||||
|
fail("Unknown configuration " + configuration)
|
||||||
|
|
||||||
|
configs = dict(configs)
|
||||||
|
for configuration in valid_configurations:
|
||||||
|
if configuration == "Debug":
|
||||||
|
add_item_to_subdict(configs, configuration, "PROVISIONING_PROFILE_SPECIFIER", get_provisioning_profile(environment="development", type=type))
|
||||||
|
elif configuration == "Profile":
|
||||||
|
add_item_to_subdict(configs, configuration, "PROVISIONING_PROFILE_SPECIFIER", get_provisioning_profile(environment="development", type=type))
|
||||||
|
elif configuration == "Release":
|
||||||
|
add_item_to_subdict(configs, configuration, "PROVISIONING_PROFILE_SPECIFIER", get_provisioning_profile(environment="distribution", type=type))
|
||||||
|
return configs
|
||||||
|
|
||||||
|
def add_codesign_identity(configs):
|
||||||
|
for configuration in configs:
|
||||||
|
if configuration not in valid_configurations:
|
||||||
|
fail("Unknown configuration " + configuration)
|
||||||
|
|
||||||
|
configs = dict(configs)
|
||||||
|
for configuration in valid_configurations:
|
||||||
|
if configuration == "Debug":
|
||||||
|
add_item_to_subdict(configs, configuration, "CODE_SIGN_IDENTITY", get_codesign_identity(environment="development"))
|
||||||
|
elif configuration == "Profile":
|
||||||
|
add_item_to_subdict(configs, configuration, "CODE_SIGN_IDENTITY", get_codesign_identity(environment="development"))
|
||||||
|
elif configuration == "Release":
|
||||||
|
add_item_to_subdict(configs, configuration, "CODE_SIGN_IDENTITY", get_codesign_identity(environment="distribution"))
|
||||||
|
return configs
|
||||||
|
|
||||||
|
def get_codesign_entitlements(type):
|
||||||
|
if type == "app":
|
||||||
|
return read_config_nonempty("entitlementsApp")
|
||||||
|
elif type == "share":
|
||||||
|
return read_config_nonempty("entitlementsExtensionShare")
|
||||||
|
elif type == "widget":
|
||||||
|
return read_config_nonempty("entitlementsExtensionWidget")
|
||||||
|
elif type == "notification_service":
|
||||||
|
return read_config_nonempty("entitlementsExtensionNotificationService")
|
||||||
|
elif type == "notification_content":
|
||||||
|
return read_config_nonempty("entitlementsExtensionNotificationContent")
|
||||||
|
elif type == "intents":
|
||||||
|
return read_config_nonempty("entitlementsExtensionIntents")
|
||||||
|
else:
|
||||||
|
fail("unknown provisioning profile type")
|
||||||
|
|
||||||
|
def get_build_number():
|
||||||
|
return read_config_nonempty("buildNumber")
|
||||||
|
|
||||||
|
def bundle_identifier(suffix):
|
||||||
|
return read_config_nonempty("baseApplicationBundleId") + suffix
|
||||||
|
|
||||||
def library_configs():
|
def library_configs():
|
||||||
lib_specific_config = {
|
lib_specific_config = {
|
||||||
@ -64,7 +160,7 @@ def library_configs():
|
|||||||
}
|
}
|
||||||
return configs
|
return configs
|
||||||
|
|
||||||
def framework_library_configs(name):
|
def dynamic_library_configs():
|
||||||
lib_specific_config = {
|
lib_specific_config = {
|
||||||
"SWIFT_WHOLE_MODULE_OPTIMIZATION": "NO",
|
"SWIFT_WHOLE_MODULE_OPTIMIZATION": "NO",
|
||||||
|
|
||||||
@ -73,7 +169,6 @@ def framework_library_configs(name):
|
|||||||
# https://developer.apple.com/library/archive/technotes/tn2215/_index.html
|
# https://developer.apple.com/library/archive/technotes/tn2215/_index.html
|
||||||
"SKIP_INSTALL": "YES",
|
"SKIP_INSTALL": "YES",
|
||||||
"MACH_O_TYPE": "mh_dylib",
|
"MACH_O_TYPE": "mh_dylib",
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(name),
|
|
||||||
"CODE_SIGNING_ALLOWED": "NO",
|
"CODE_SIGNING_ALLOWED": "NO",
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,154 +182,163 @@ def framework_library_configs(name):
|
|||||||
}
|
}
|
||||||
return configs
|
return configs
|
||||||
|
|
||||||
def app_binary_configs(name):
|
def app_binary_configs():
|
||||||
binary_specific_config = {
|
config = {
|
||||||
"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES": "YES",
|
"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES": "YES",
|
||||||
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS",
|
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(suffix=""),
|
||||||
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
|
"CODE_SIGN_ENTITLEMENTS": get_codesign_entitlements("app"),
|
||||||
"CODE_SIGN_ENTITLEMENTS": "Telegram-iOS/Telegram-iOS-Hockeyapp.entitlements",
|
"DEVELOPMENT_TEAM": get_development_team(),
|
||||||
"DEVELOPMENT_TEAM": "X834Q8SBVP",
|
|
||||||
"PROVISIONING_PROFILE_SPECIFIER": "match Development org.telegram.Telegram-iOS",
|
|
||||||
"ASSETCATALOG_COMPILER_APPICON_NAME": "AppIcon",
|
"ASSETCATALOG_COMPILER_APPICON_NAME": "AppIcon",
|
||||||
"BUILD_NUMBER": appConfig()["buildNumber"],
|
"BUILD_NUMBER": get_build_number(),
|
||||||
"APP_NAME": "Telegram",
|
"APP_NAME": "Telegram",
|
||||||
"PRODUCT_NAME": "Telegram",
|
"PRODUCT_NAME": "Telegram",
|
||||||
}
|
}
|
||||||
binary_config = merge_dict(SHARED_CONFIGS, binary_specific_config)
|
config = merge_dict(SHARED_CONFIGS, config)
|
||||||
binary_config = merge_dict(binary_config, optimization_config())
|
config = merge_dict(config, optimization_config())
|
||||||
binary_config = config_with_updated_linker_flags(binary_config, ALL_LOAD_LINKER_FLAG)
|
config = config_with_updated_linker_flags(config, ALL_LOAD_LINKER_FLAG)
|
||||||
return configs_with_config(binary_config)
|
configs = configs_with_config(config)
|
||||||
|
configs = add_provisioning_profile_specifier(configs, "app")
|
||||||
|
configs = add_codesign_identity(configs)
|
||||||
|
return configs
|
||||||
|
|
||||||
def share_extension_configs(name):
|
def share_extension_configs():
|
||||||
binary_specific_config = {
|
config = {
|
||||||
"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES": "NO",
|
"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES": "NO",
|
||||||
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS." + name,
|
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(suffix=".Share"),
|
||||||
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
|
"CODE_SIGN_ENTITLEMENTS": get_codesign_entitlements("share"),
|
||||||
"CODE_SIGN_ENTITLEMENTS": "Share/Share-HockeyApp.entitlements",
|
"DEVELOPMENT_TEAM": get_development_team(),
|
||||||
"DEVELOPMENT_TEAM": "X834Q8SBVP",
|
"BUILD_NUMBER": get_build_number(),
|
||||||
"PROVISIONING_PROFILE_SPECIFIER": "match Development org.telegram.Telegram-iOS.Share",
|
|
||||||
"BUILD_NUMBER": appConfig()["buildNumber"],
|
|
||||||
"APP_NAME": "Telegram",
|
"APP_NAME": "Telegram",
|
||||||
"PRODUCT_NAME": "ShareExtension",
|
"PRODUCT_NAME": "ShareExtension",
|
||||||
}
|
}
|
||||||
binary_config = merge_dict(SHARED_CONFIGS, binary_specific_config)
|
config = merge_dict(SHARED_CONFIGS, config)
|
||||||
binary_config = merge_dict(binary_config, optimization_config())
|
config = merge_dict(config, optimization_config())
|
||||||
binary_config = config_with_updated_linker_flags(binary_config, ALL_LOAD_LINKER_FLAG)
|
config = config_with_updated_linker_flags(config, ALL_LOAD_LINKER_FLAG)
|
||||||
return configs_with_config(binary_config)
|
configs = configs_with_config(config)
|
||||||
|
configs = add_provisioning_profile_specifier(configs, "share")
|
||||||
|
configs = add_codesign_identity(configs)
|
||||||
|
return configs
|
||||||
|
|
||||||
def widget_extension_configs(name):
|
def widget_extension_configs():
|
||||||
binary_specific_config = {
|
config = {
|
||||||
"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES": "NO",
|
"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES": "NO",
|
||||||
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS." + name,
|
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(suffix=".Widget"),
|
||||||
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
|
"CODE_SIGN_ENTITLEMENTS": get_codesign_entitlements("widget"),
|
||||||
"CODE_SIGN_ENTITLEMENTS": "Widget/Widget-HockeyApp.entitlements",
|
"DEVELOPMENT_TEAM": get_development_team(),
|
||||||
"DEVELOPMENT_TEAM": "X834Q8SBVP",
|
"BUILD_NUMBER": get_build_number(),
|
||||||
"PROVISIONING_PROFILE_SPECIFIER": "match Development org.telegram.Telegram-iOS.Widget",
|
|
||||||
"BUILD_NUMBER": appConfig()["buildNumber"],
|
|
||||||
"APP_NAME": "Telegram",
|
"APP_NAME": "Telegram",
|
||||||
"PRODUCT_NAME": "WidgetExtension",
|
"PRODUCT_NAME": "WidgetExtension",
|
||||||
}
|
}
|
||||||
binary_config = merge_dict(SHARED_CONFIGS, binary_specific_config)
|
config = merge_dict(SHARED_CONFIGS, config)
|
||||||
binary_config = merge_dict(binary_config, optimization_config())
|
config = merge_dict(config, optimization_config())
|
||||||
binary_config = config_with_updated_linker_flags(binary_config, ALL_LOAD_LINKER_FLAG)
|
config = config_with_updated_linker_flags(config, ALL_LOAD_LINKER_FLAG)
|
||||||
return configs_with_config(binary_config)
|
configs = configs_with_config(config)
|
||||||
|
configs = add_provisioning_profile_specifier(configs, "widget")
|
||||||
|
configs = add_codesign_identity(configs)
|
||||||
|
return configs
|
||||||
|
|
||||||
def notification_content_extension_configs(name):
|
def notification_content_extension_configs():
|
||||||
binary_specific_config = {
|
config = {
|
||||||
"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES": "NO",
|
"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES": "NO",
|
||||||
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS." + name,
|
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(suffix=".NotificationContent"),
|
||||||
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
|
"CODE_SIGN_ENTITLEMENTS": get_codesign_entitlements("notification_content"),
|
||||||
"CODE_SIGN_ENTITLEMENTS": "NotificationContent/NotificationContent-HockeyApp.entitlements",
|
"DEVELOPMENT_TEAM": get_development_team(),
|
||||||
"DEVELOPMENT_TEAM": "X834Q8SBVP",
|
"BUILD_NUMBER": get_build_number(),
|
||||||
"PROVISIONING_PROFILE_SPECIFIER": "match Development org.telegram.Telegram-iOS.NotificationContent",
|
|
||||||
"BUILD_NUMBER": appConfig()["buildNumber"],
|
|
||||||
"APP_NAME": "Telegram",
|
"APP_NAME": "Telegram",
|
||||||
"PRODUCT_NAME": "NotificationContentExtension",
|
"PRODUCT_NAME": "NotificationContentExtension",
|
||||||
}
|
}
|
||||||
binary_config = merge_dict(SHARED_CONFIGS, binary_specific_config)
|
config = merge_dict(SHARED_CONFIGS, config)
|
||||||
binary_config = merge_dict(binary_config, optimization_config())
|
config = merge_dict(config, optimization_config())
|
||||||
binary_config = config_with_updated_linker_flags(binary_config, ALL_LOAD_LINKER_FLAG)
|
config = config_with_updated_linker_flags(config, ALL_LOAD_LINKER_FLAG)
|
||||||
return configs_with_config(binary_config)
|
configs = configs_with_config(config)
|
||||||
|
configs = add_provisioning_profile_specifier(configs, "notification_content")
|
||||||
|
configs = add_codesign_identity(configs)
|
||||||
|
return configs
|
||||||
|
|
||||||
def notification_service_extension_configs(name):
|
def notification_service_extension_configs():
|
||||||
binary_specific_config = {
|
config = {
|
||||||
"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES": "NO",
|
"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES": "NO",
|
||||||
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS." + name,
|
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(suffix=".NotificationService"),
|
||||||
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
|
"CODE_SIGN_ENTITLEMENTS": get_codesign_entitlements("notification_service"),
|
||||||
"CODE_SIGN_ENTITLEMENTS": "NotificationService/NotificationService-HockeyApp.entitlements",
|
"DEVELOPMENT_TEAM": get_development_team(),
|
||||||
"DEVELOPMENT_TEAM": "X834Q8SBVP",
|
"BUILD_NUMBER": get_build_number(),
|
||||||
"PROVISIONING_PROFILE_SPECIFIER": "match Development org.telegram.Telegram-iOS.NotificationService",
|
|
||||||
"BUILD_NUMBER": appConfig()["buildNumber"],
|
|
||||||
"APP_NAME": "Telegram",
|
"APP_NAME": "Telegram",
|
||||||
"PRODUCT_NAME": "NotificationServiceExtension",
|
"PRODUCT_NAME": "NotificationServiceExtension",
|
||||||
}
|
}
|
||||||
binary_config = merge_dict(SHARED_CONFIGS, binary_specific_config)
|
config = merge_dict(SHARED_CONFIGS, config)
|
||||||
binary_config = merge_dict(binary_config, optimization_config())
|
config = merge_dict(config, optimization_config())
|
||||||
binary_config = config_with_updated_linker_flags(binary_config, ALL_LOAD_LINKER_FLAG)
|
config = config_with_updated_linker_flags(config, ALL_LOAD_LINKER_FLAG)
|
||||||
return configs_with_config(binary_config)
|
configs = configs_with_config(config)
|
||||||
|
configs = add_provisioning_profile_specifier(configs, "notification_service")
|
||||||
|
configs = add_codesign_identity(configs)
|
||||||
|
return configs
|
||||||
|
|
||||||
def intents_extension_configs(name):
|
def intents_extension_configs():
|
||||||
binary_specific_config = {
|
config = {
|
||||||
"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES": "NO",
|
"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES": "NO",
|
||||||
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS." + name,
|
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(suffix=".SiriIntents"),
|
||||||
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
|
"CODE_SIGN_ENTITLEMENTS": get_codesign_entitlements("intents"),
|
||||||
"CODE_SIGN_ENTITLEMENTS": "SiriIntents/SiriIntents-HockeyApp.entitlements",
|
"DEVELOPMENT_TEAM": get_development_team(),
|
||||||
"DEVELOPMENT_TEAM": "X834Q8SBVP",
|
"BUILD_NUMBER": get_build_number(),
|
||||||
"PROVISIONING_PROFILE_SPECIFIER": "match Development org.telegram.Telegram-iOS.SiriIntents",
|
|
||||||
"BUILD_NUMBER": appConfig()["buildNumber"],
|
|
||||||
"APP_NAME": "Telegram",
|
"APP_NAME": "Telegram",
|
||||||
"PRODUCT_NAME": "IntentsExtension",
|
"PRODUCT_NAME": "IntentsExtension",
|
||||||
}
|
}
|
||||||
binary_config = merge_dict(SHARED_CONFIGS, binary_specific_config)
|
config = merge_dict(SHARED_CONFIGS, config)
|
||||||
binary_config = merge_dict(binary_config, optimization_config())
|
config = merge_dict(config, optimization_config())
|
||||||
binary_config = config_with_updated_linker_flags(binary_config, ALL_LOAD_LINKER_FLAG)
|
config = config_with_updated_linker_flags(config, ALL_LOAD_LINKER_FLAG)
|
||||||
return configs_with_config(binary_config)
|
configs = configs_with_config(config)
|
||||||
|
configs = add_provisioning_profile_specifier(configs, "intents")
|
||||||
|
configs = add_codesign_identity(configs)
|
||||||
|
return configs
|
||||||
|
|
||||||
def watch_extension_binary_configs(name):
|
def watch_extension_binary_configs():
|
||||||
config = {
|
config = {
|
||||||
"SDKROOT": "watchos",
|
"SDKROOT": "watchos",
|
||||||
"WATCHOS_DEPLOYMENT_TARGET": "4.0",
|
"WATCHOS_DEPLOYMENT_TARGET": "4.0",
|
||||||
"TARGETED_DEVICE_FAMILY": "4",
|
"TARGETED_DEVICE_FAMILY": "4",
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier("watchkitapp.watchkitextension"),
|
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(suffix=".watchkitapp.watchkitextension"),
|
||||||
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
|
"DEVELOPMENT_TEAM": get_development_team(),
|
||||||
"DEVELOPMENT_TEAM": "X834Q8SBVP",
|
|
||||||
"PROVISIONING_PROFILE_SPECIFIER": "match Development org.telegram.Telegram-iOS.watchkitapp.watchkitextension",
|
|
||||||
"LD_RUNPATH_SEARCH_PATHS": "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks",
|
"LD_RUNPATH_SEARCH_PATHS": "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks",
|
||||||
"WK_COMPANION_APP_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS",
|
"WK_COMPANION_APP_BUNDLE_IDENTIFIER": bundle_identifier(suffix=""),
|
||||||
"WK_APP_BUNDLE_IDENTIFIER": bundle_identifier("watchkitapp"),
|
"WK_APP_BUNDLE_IDENTIFIER": bundle_identifier(suffix=".watchkitapp"),
|
||||||
"APP_NAME": "Telegram",
|
"APP_NAME": "Telegram",
|
||||||
"APP_BUNDLE_ID": "org.telegram.Telegram-iOS",
|
"APP_BUNDLE_ID": bundle_identifier(suffix=""),
|
||||||
"BUILD_NUMBER": appConfig()["buildNumber"],
|
"BUILD_NUMBER": get_build_number(),
|
||||||
"ENABLE_BITCODE": "YES",
|
"ENABLE_BITCODE": "YES",
|
||||||
}
|
}
|
||||||
config = config_with_updated_linker_flags(config, ALL_LOAD_LINKER_FLAG)
|
config = config_with_updated_linker_flags(config, ALL_LOAD_LINKER_FLAG)
|
||||||
return configs_with_config(config)
|
configs = configs_with_config(config)
|
||||||
|
configs = add_provisioning_profile_specifier(configs, "watch_extension")
|
||||||
|
configs = add_codesign_identity(configs)
|
||||||
|
return configs
|
||||||
|
|
||||||
def watch_binary_configs(name):
|
def watch_binary_configs():
|
||||||
config = {
|
config = {
|
||||||
"SDKROOT": "watchos",
|
"SDKROOT": "watchos",
|
||||||
"WATCHOS_DEPLOYMENT_TARGET": "4.0",
|
"WATCHOS_DEPLOYMENT_TARGET": "4.0",
|
||||||
"TARGETED_DEVICE_FAMILY": "4",
|
"TARGETED_DEVICE_FAMILY": "4",
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier("watchkitapp"),
|
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(suffix=".watchkitapp"),
|
||||||
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
|
"DEVELOPMENT_TEAM": get_development_team(),
|
||||||
"DEVELOPMENT_TEAM": "X834Q8SBVP",
|
|
||||||
"PROVISIONING_PROFILE_SPECIFIER": "match Development org.telegram.Telegram-iOS.watchkitapp",
|
|
||||||
"LD_RUNPATH_SEARCH_PATHS": "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks",
|
"LD_RUNPATH_SEARCH_PATHS": "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks",
|
||||||
"WK_COMPANION_APP_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS",
|
"WK_COMPANION_APP_BUNDLE_IDENTIFIER": bundle_identifier(suffix=""),
|
||||||
"WK_APP_BUNDLE_IDENTIFIER": bundle_identifier("watchkitapp"),
|
"WK_APP_BUNDLE_IDENTIFIER": bundle_identifier(suffix=".watchkitapp"),
|
||||||
"APP_NAME": "Telegram",
|
"APP_NAME": "Telegram",
|
||||||
"APP_BUNDLE_ID": "org.telegram.Telegram-iOS",
|
"APP_BUNDLE_ID": bundle_identifier(suffix=""),
|
||||||
"BUILD_NUMBER": appConfig()["buildNumber"],
|
"ASSETCATALOG_COMPILER_APPICON_NAME": "AppIcon",
|
||||||
|
"BUILD_NUMBER": get_build_number(),
|
||||||
"ENABLE_BITCODE": "YES",
|
"ENABLE_BITCODE": "YES",
|
||||||
}
|
}
|
||||||
config = config_with_updated_linker_flags(config, ALL_LOAD_LINKER_FLAG)
|
config = config_with_updated_linker_flags(config, ALL_LOAD_LINKER_FLAG)
|
||||||
return configs_with_config(config)
|
configs = configs_with_config(config)
|
||||||
|
configs = add_provisioning_profile_specifier(configs, "watch_app")
|
||||||
|
configs = add_codesign_identity(configs)
|
||||||
|
return configs
|
||||||
|
|
||||||
def info_plist_substitutions(name):
|
def info_plist_substitutions(name):
|
||||||
substitutions = {
|
substitutions = {
|
||||||
@ -246,114 +350,105 @@ def info_plist_substitutions(name):
|
|||||||
}
|
}
|
||||||
return substitutions
|
return substitutions
|
||||||
|
|
||||||
def app_info_plist_substitutions(name):
|
def app_info_plist_substitutions():
|
||||||
substitutions = {
|
substitutions = {
|
||||||
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
||||||
"EXECUTABLE_NAME": name,
|
"EXECUTABLE_NAME": "Telegram",
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS",
|
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(suffix=""),
|
||||||
"PRODUCT_NAME": name,
|
"PRODUCT_NAME": "Telegram",
|
||||||
"APP_NAME": name,
|
"APP_NAME": "Telegram",
|
||||||
"CURRENT_PROJECT_VERSION": "1",
|
"CURRENT_PROJECT_VERSION": "1",
|
||||||
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
|
|
||||||
"APP_SPECIFIC_URL_SCHEME": appConfig()["appSpecificUrlScheme"],
|
"APP_SPECIFIC_URL_SCHEME": appConfig()["appSpecificUrlScheme"],
|
||||||
"BUILD_NUMBER": appConfig()["buildNumber"],
|
"BUILD_NUMBER": get_build_number(),
|
||||||
}
|
}
|
||||||
return substitutions
|
return substitutions
|
||||||
|
|
||||||
def share_extension_info_plist_substitutions(name):
|
def share_extension_info_plist_substitutions():
|
||||||
substitutions = {
|
substitutions = {
|
||||||
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
||||||
"EXECUTABLE_NAME": name,
|
"EXECUTABLE_NAME": "ShareExtension",
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS.Share",
|
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(suffix=".Share"),
|
||||||
"PRODUCT_NAME": name,
|
"PRODUCT_NAME": "Share",
|
||||||
"APP_NAME": "Telegram",
|
"APP_NAME": "Telegram",
|
||||||
"CURRENT_PROJECT_VERSION": "1",
|
"CURRENT_PROJECT_VERSION": "1",
|
||||||
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
|
|
||||||
"APP_SPECIFIC_URL_SCHEME": appConfig()["appSpecificUrlScheme"],
|
"APP_SPECIFIC_URL_SCHEME": appConfig()["appSpecificUrlScheme"],
|
||||||
"BUILD_NUMBER": appConfig()["buildNumber"],
|
"BUILD_NUMBER": get_build_number(),
|
||||||
}
|
}
|
||||||
return substitutions
|
return substitutions
|
||||||
|
|
||||||
def widget_extension_info_plist_substitutions(name):
|
def widget_extension_info_plist_substitutions():
|
||||||
substitutions = {
|
substitutions = {
|
||||||
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
||||||
"EXECUTABLE_NAME": name,
|
"EXECUTABLE_NAME": "WidgetExtension",
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS.Widget",
|
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(suffix=".Widget"),
|
||||||
"PRODUCT_NAME": name,
|
"PRODUCT_NAME": "Widget",
|
||||||
"APP_NAME": "Telegram",
|
"APP_NAME": "Telegram",
|
||||||
"CURRENT_PROJECT_VERSION": "1",
|
"CURRENT_PROJECT_VERSION": "1",
|
||||||
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
|
|
||||||
"APP_SPECIFIC_URL_SCHEME": appConfig()["appSpecificUrlScheme"],
|
"APP_SPECIFIC_URL_SCHEME": appConfig()["appSpecificUrlScheme"],
|
||||||
"BUILD_NUMBER": appConfig()["buildNumber"],
|
"BUILD_NUMBER": get_build_number(),
|
||||||
}
|
}
|
||||||
return substitutions
|
return substitutions
|
||||||
|
|
||||||
def notification_content_extension_info_plist_substitutions(name):
|
def notification_content_extension_info_plist_substitutions():
|
||||||
substitutions = {
|
substitutions = {
|
||||||
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
||||||
"EXECUTABLE_NAME": name,
|
"EXECUTABLE_NAME": "NotificationContentExtension",
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS.NotificationContent",
|
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(suffix=".NotificationContent"),
|
||||||
"PRODUCT_NAME": name,
|
"PRODUCT_NAME": "Telegram",
|
||||||
|
"APP_NAME": "Telegram",
|
||||||
|
"CURRENT_PROJECT_VERSION": "1",
|
||||||
|
"BUILD_NUMBER": get_build_number(),
|
||||||
|
}
|
||||||
|
return substitutions
|
||||||
|
|
||||||
|
def notification_service_extension_info_plist_substitutions():
|
||||||
|
substitutions = {
|
||||||
|
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
||||||
|
"EXECUTABLE_NAME": "NotificationServiceExtension",
|
||||||
|
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(suffix=".NotificationService"),
|
||||||
|
"PRODUCT_NAME": "Telegram",
|
||||||
|
"APP_NAME": "Telegram",
|
||||||
|
"CURRENT_PROJECT_VERSION": "1",
|
||||||
|
"BUILD_NUMBER": get_build_number(),
|
||||||
|
}
|
||||||
|
return substitutions
|
||||||
|
|
||||||
|
def intents_extension_info_plist_substitutions():
|
||||||
|
substitutions = {
|
||||||
|
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
||||||
|
"EXECUTABLE_NAME": "IntentsExtension",
|
||||||
|
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(suffix=".SiriIntents"),
|
||||||
|
"PRODUCT_NAME": "Telegram",
|
||||||
"APP_NAME": "Telegram",
|
"APP_NAME": "Telegram",
|
||||||
"CURRENT_PROJECT_VERSION": "1",
|
"CURRENT_PROJECT_VERSION": "1",
|
||||||
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
|
|
||||||
"APP_SPECIFIC_URL_SCHEME": appConfig()["appSpecificUrlScheme"],
|
"APP_SPECIFIC_URL_SCHEME": appConfig()["appSpecificUrlScheme"],
|
||||||
"BUILD_NUMBER": appConfig()["buildNumber"],
|
"BUILD_NUMBER": get_build_number(),
|
||||||
|
"PRODUCT_MODULE_NAME": "SiriIntents",
|
||||||
}
|
}
|
||||||
return substitutions
|
return substitutions
|
||||||
|
|
||||||
def notification_service_extension_info_plist_substitutions(name):
|
def watch_extension_info_plist_substitutions():
|
||||||
substitutions = {
|
substitutions = {
|
||||||
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
||||||
"EXECUTABLE_NAME": name,
|
"EXECUTABLE_NAME": "WatchAppExtension",
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS.NotificationService",
|
"PRODUCT_BUNDLE_IDENTIFIER": bundle_identifier(suffix=".watchkitapp.watchkitextension"),
|
||||||
"PRODUCT_NAME": name,
|
|
||||||
"APP_NAME": "Telegram",
|
"APP_NAME": "Telegram",
|
||||||
|
"APP_BUNDLE_ID": bundle_identifier(suffix=""),
|
||||||
|
"PRODUCT_NAME": "Telegram",
|
||||||
"CURRENT_PROJECT_VERSION": "1",
|
"CURRENT_PROJECT_VERSION": "1",
|
||||||
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
|
"BUILD_NUMBER": get_build_number(),
|
||||||
"APP_SPECIFIC_URL_SCHEME": appConfig()["appSpecificUrlScheme"],
|
|
||||||
"BUILD_NUMBER": appConfig()["buildNumber"],
|
|
||||||
}
|
}
|
||||||
return substitutions
|
return substitutions
|
||||||
|
|
||||||
def intents_extension_info_plist_substitutions(name):
|
def watch_info_plist_substitutions():
|
||||||
substitutions = {
|
substitutions = {
|
||||||
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
||||||
"EXECUTABLE_NAME": name,
|
"EXECUTABLE_NAME": "WatchApp",
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS.SiriIntents",
|
"PRODUCT_BUNDLE_IDENTIFIER":bundle_identifier(suffix=".watchkitapp"),
|
||||||
"PRODUCT_NAME": name,
|
|
||||||
"APP_NAME": "Telegram",
|
"APP_NAME": "Telegram",
|
||||||
|
"APP_BUNDLE_ID": bundle_identifier(suffix=""),
|
||||||
|
"PRODUCT_NAME": "Telegram",
|
||||||
"CURRENT_PROJECT_VERSION": "1",
|
"CURRENT_PROJECT_VERSION": "1",
|
||||||
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
|
"BUILD_NUMBER": get_build_number(),
|
||||||
"APP_SPECIFIC_URL_SCHEME": appConfig()["appSpecificUrlScheme"],
|
|
||||||
"BUILD_NUMBER": appConfig()["buildNumber"],
|
|
||||||
}
|
|
||||||
return substitutions
|
|
||||||
|
|
||||||
def watch_extension_info_plist_substitutions(name):
|
|
||||||
substitutions = {
|
|
||||||
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
|
||||||
"EXECUTABLE_NAME": name,
|
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS.watchkitapp.watchkitextension",
|
|
||||||
"APP_NAME": "Telegram",
|
|
||||||
"APP_BUNDLE_ID": "org.telegram.Telegram-iOS",
|
|
||||||
"PRODUCT_NAME": name,
|
|
||||||
"CURRENT_PROJECT_VERSION": "1",
|
|
||||||
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
|
|
||||||
"BUILD_NUMBER": appConfig()["buildNumber"],
|
|
||||||
}
|
|
||||||
return substitutions
|
|
||||||
|
|
||||||
def watch_info_plist_substitutions(name):
|
|
||||||
substitutions = {
|
|
||||||
"DEVELOPMENT_LANGUAGE": DEVELOPMENT_LANGUAGE,
|
|
||||||
"EXECUTABLE_NAME": name,
|
|
||||||
"PRODUCT_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS.watchkitapp",
|
|
||||||
"APP_NAME": "Telegram",
|
|
||||||
"APP_BUNDLE_ID": "org.telegram.Telegram-iOS",
|
|
||||||
"PRODUCT_NAME": name,
|
|
||||||
"CURRENT_PROJECT_VERSION": "1",
|
|
||||||
"CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)",
|
|
||||||
"BUILD_NUMBER": appConfig()["buildNumber"],
|
|
||||||
}
|
}
|
||||||
return substitutions
|
return substitutions
|
||||||
|
67
Makefile
67
Makefile
@ -1,14 +1,40 @@
|
|||||||
.PHONY : check_env build build_arm64 package_arm64 build_buckdebug build_verbose kill_xcode clean project project_buckdebug
|
.PHONY : check_env build build_arm64 package_arm64 app_arm64 build_buckdebug build_verbose kill_xcode clean project project_buckdebug
|
||||||
|
|
||||||
BUCK_OPTIONS=\
|
BUCK_OPTIONS=\
|
||||||
--config custom.apiId="${TELEGRAM_API_ID}" \
|
--config custom.developmentCodeSignIdentity="${DEVELOPMENT_CODE_SIGN_IDENTITY}" \
|
||||||
--config custom.apiHash="${TELGRAM_API_HASH}" \
|
--config custom.distributionCodeSignIdentity="${DISTRIBUTION_CODE_SIGN_IDENTITY}" \
|
||||||
--config custom.hockeyAppId="${TELGRAM_HOCKEYAPP_ID}" \
|
--config custom.developmentTeam="${DEVELOPMENT_TEAM}" \
|
||||||
--config custom.isInternalBuild="${TELEGRAM_IS_INTERNAL_BUILD}" \
|
--config custom.baseApplicationBundleId="${BUNDLE_ID}" \
|
||||||
--config custom.isAppStoreBuild="${TELEGRAM_IS_APPSTORE_BUILD}" \
|
--config custom.apiId="${API_ID}" \
|
||||||
--config custom.appStoreId="${TELEGRAM_APPSTORE_ID}" \
|
--config custom.apiHash="${API_HASH}" \
|
||||||
--config custom.appSpecificUrlScheme="${TELEGRAM_APP_SPECIFIC_URL_SCHEME}" \
|
--config custom.hockeyAppId="${HOCKEYAPP_ID}" \
|
||||||
--config custom.buildNumber="${TELEGRAM_BUILD_NUMBER}"
|
--config custom.isInternalBuild="${IS_INTERNAL_BUILD}" \
|
||||||
|
--config custom.isAppStoreBuild="${IS_APPSTORE_BUILD}" \
|
||||||
|
--config custom.appStoreId="${APPSTORE_ID}" \
|
||||||
|
--config custom.appSpecificUrlScheme="${APP_SPECIFIC_URL_SCHEME}" \
|
||||||
|
--config custom.buildNumber="${BUILD_NUMBER}" \
|
||||||
|
--config custom.entitlementsApp="${ENTITLEMENTS_APP}" \
|
||||||
|
--config custom.developmentProvisioningProfileApp="${DEVELOPMENT_PROVISIONING_PROFILE_APP}" \
|
||||||
|
--config custom.distributionProvisioningProfileApp="${DISTRIBUTION_PROVISIONING_PROFILE_APP}" \
|
||||||
|
--config custom.entitlementsExtensionShare="${ENTITLEMENTS_EXTENSION_SHARE}" \
|
||||||
|
--config custom.developmentProvisioningProfileExtensionShare="${DEVELOPMENT_PROVISIONING_PROFILE_EXTENSION_SHARE}" \
|
||||||
|
--config custom.distributionProvisioningProfileExtensionShare="${DISTRIBUTION_PROVISIONING_PROFILE_EXTENSION_SHARE}" \
|
||||||
|
--config custom.entitlementsExtensionWidget="${ENTITLEMENTS_EXTENSION_WIDGET}" \
|
||||||
|
--config custom.developmentProvisioningProfileExtensionWidget="${DEVELOPMENT_PROVISIONING_PROFILE_EXTENSION_WIDGET}" \
|
||||||
|
--config custom.distributionProvisioningProfileExtensionWidget="${DISTRIBUTION_PROVISIONING_PROFILE_EXTENSION_WIDGET}" \
|
||||||
|
--config custom.entitlementsExtensionNotificationService="${ENTITLEMENTS_EXTENSION_NOTIFICATIONSERVICE}" \
|
||||||
|
--config custom.developmentProvisioningProfileExtensionNotificationService="${DEVELOPMENT_PROVISIONING_PROFILE_EXTENSION_NOTIFICATIONSERVICE}" \
|
||||||
|
--config custom.distributionProvisioningProfileExtensionNotificationService="${DISTRIBUTION_PROVISIONING_PROFILE_EXTENSION_NOTIFICATIONSERVICE}" \
|
||||||
|
--config custom.entitlementsExtensionNotificationContent="${ENTITLEMENTS_EXTENSION_NOTIFICATIONCONTENT}" \
|
||||||
|
--config custom.developmentProvisioningProfileExtensionNotificationContent="${DEVELOPMENT_PROVISIONING_PROFILE_EXTENSION_NOTIFICATIONCONTENT}" \
|
||||||
|
--config custom.distributionProvisioningProfileExtensionNotificationContent="${DISTRIBUTION_PROVISIONING_PROFILE_EXTENSION_NOTIFICATIONCONTENT}" \
|
||||||
|
--config custom.entitlementsExtensionIntents="${ENTITLEMENTS_EXTENSION_INTENTS}" \
|
||||||
|
--config custom.developmentProvisioningProfileExtensionIntents="${DEVELOPMENT_PROVISIONING_PROFILE_EXTENSION_INTENTS}" \
|
||||||
|
--config custom.distributionProvisioningProfileExtensionIntents="${DISTRIBUTION_PROVISIONING_PROFILE_EXTENSION_INTENTS}" \
|
||||||
|
--config custom.developmentProvisioningProfileWatchApp="${DEVELOPMENT_PROVISIONING_PROFILE_WATCH_APP}" \
|
||||||
|
--config custom.distributionProvisioningProfileWatchApp="${DISTRIBUTION_PROVISIONING_PROFILE_WATCH_APP}" \
|
||||||
|
--config custom.developmentProvisioningProfileWatchExtension="${DEVELOPMENT_PROVISIONING_PROFILE_WATCH_EXTENSION}" \
|
||||||
|
--config custom.distributionProvisioningProfileWatchExtension="${DISTRIBUTION_PROVISIONING_PROFILE_WATCH_EXTENSION}"
|
||||||
|
|
||||||
BUCK=/Users/peter/build/buck-next/buck/buck-out/gen/programs/buck.pex
|
BUCK=/Users/peter/build/buck-next/buck/buck-out/gen/programs/buck.pex
|
||||||
|
|
||||||
@ -17,14 +43,31 @@ check_env:
|
|||||||
|
|
||||||
build: check_env
|
build: check_env
|
||||||
$(BUCK) build //:AppPackage#iphoneos-arm64,iphoneos-armv7 ${BUCK_OPTIONS}
|
$(BUCK) build //:AppPackage#iphoneos-arm64,iphoneos-armv7 ${BUCK_OPTIONS}
|
||||||
sh package_app.sh $(BUCK) "${BUCK_OPTIONS}" iphoneos-arm64,iphoneos-armv7
|
sh package_app.sh iphoneos-arm64,iphoneos-armv7 $(BUCK) ${BUCK_OPTIONS}
|
||||||
|
|
||||||
build_arm64: check_env
|
build_arm64: check_env
|
||||||
$(BUCK) build //:AppPackage#iphoneos-arm64 ${BUCK_OPTIONS}
|
$(BUCK) build //:AppPackage#iphoneos-arm64 ${BUCK_OPTIONS}
|
||||||
sh package_app.sh $(BUCK) "${BUCK_OPTIONS}" iphoneos-arm64
|
|
||||||
|
|
||||||
package_arm64:
|
package_arm64:
|
||||||
sh package_app.sh $(BUCK) "${BUCK_OPTIONS}" iphoneos-arm64
|
PACKAGE_DEVELOPMENT_TEAM="${DEVELOPMENT_TEAM}" \
|
||||||
|
PACKAGE_CODE_SIGN_IDENTITY="${DISTRIBUTION_CODE_SIGN_IDENTITY}" \
|
||||||
|
PACKAGE_PROVISIONING_PROFILE_APP="${DISTRIBUTION_PROVISIONING_PROFILE_APP}" \
|
||||||
|
PACKAGE_ENTITLEMENTS_APP="${ENTITLEMENTS_APP}" \
|
||||||
|
PACKAGE_PROVISIONING_PROFILE_EXTENSION_Share="${DISTRIBUTION_PROVISIONING_PROFILE_EXTENSION_SHARE}" \
|
||||||
|
PACKAGE_ENTITLEMENTS_EXTENSION_Share="${ENTITLEMENTS_EXTENSION_SHARE}" \
|
||||||
|
PACKAGE_PROVISIONING_PROFILE_EXTENSION_Widget="${DISTRIBUTION_PROVISIONING_PROFILE_EXTENSION_WIDGET}" \
|
||||||
|
PACKAGE_ENTITLEMENTS_EXTENSION_Widget="${ENTITLEMENTS_EXTENSION_WIDGET}" \
|
||||||
|
PACKAGE_PROVISIONING_PROFILE_EXTENSION_NotificationService="${DISTRIBUTION_PROVISIONING_PROFILE_EXTENSION_NOTIFICATIONSERVICE}" \
|
||||||
|
PACKAGE_ENTITLEMENTS_EXTENSION_NotificationService="${ENTITLEMENTS_EXTENSION_NOTIFICATIONSERVICE}" \
|
||||||
|
PACKAGE_PROVISIONING_PROFILE_EXTENSION_NotificationContent="${DISTRIBUTION_PROVISIONING_PROFILE_EXTENSION_NOTIFICATIONCONTENT}" \
|
||||||
|
PACKAGE_ENTITLEMENTS_EXTENSION_NotificationContent="${ENTITLEMENTS_EXTENSION_NOTIFICATIONCONTENT}" \
|
||||||
|
PACKAGE_PROVISIONING_PROFILE_EXTENSION_Intents="${DISTRIBUTION_PROVISIONING_PROFILE_EXTENSION_INTENTS}" \
|
||||||
|
PACKAGE_ENTITLEMENTS_EXTENSION_Intents="${ENTITLEMENTS_EXTENSION_INTENTS}" \
|
||||||
|
PACKAGE_PROVISIONING_PROFILE_WATCH_APP="${DISTRIBUTION_PROVISIONING_PROFILE_WATCH_APP}" \
|
||||||
|
PACKAGE_PROVISIONING_PROFILE_WATCH_EXTENSION="${DISTRIBUTION_PROVISIONING_PROFILE_WATCH_EXTENSION}" \
|
||||||
|
sh package_app.sh iphoneos-arm64 $(BUCK) $(BUCK_OPTIONS)
|
||||||
|
|
||||||
|
app_arm64: build_arm64 package_arm64
|
||||||
|
|
||||||
build_buckdebug: check_env
|
build_buckdebug: check_env
|
||||||
BUCK_DEBUG_MODE=1 $(BUCK) build //:AppPackage#iphoneos-arm64 ${BUCK_OPTIONS}
|
BUCK_DEBUG_MODE=1 $(BUCK) build //:AppPackage#iphoneos-arm64 ${BUCK_OPTIONS}
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>5.11</string>
|
<string>5.11</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>99999</string>
|
<string>${BUILD_NUMBER}</string>
|
||||||
<key>NSExtension</key>
|
<key>NSExtension</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>NSExtensionAttributes</key>
|
<key>NSExtensionAttributes</key>
|
||||||
|
@ -223,7 +223,7 @@
|
|||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>99999</string>
|
<string>${BUILD_NUMBER}</string>
|
||||||
<key>ITSAppUsesNonExemptEncryption</key>
|
<key>ITSAppUsesNonExemptEncryption</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>LSApplicationQueriesSchemes</key>
|
<key>LSApplicationQueriesSchemes</key>
|
||||||
|
@ -29,5 +29,9 @@
|
|||||||
<string>$(APP_BUNDLE_ID)</string>
|
<string>$(APP_BUNDLE_ID)</string>
|
||||||
<key>WKWatchKitApp</key>
|
<key>WKWatchKitApp</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
<key>UIDeviceFamily</key>
|
||||||
|
<array>
|
||||||
|
<integer>4</integer>
|
||||||
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
242
package_app.sh
242
package_app.sh
@ -3,14 +3,10 @@
|
|||||||
set -x
|
set -x
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
if [ -z "$1" ] || [ -z "$2" ]; then
|
PLATFORM_FLAVORS="$1"
|
||||||
echo "Usage: sh package_app.sh path/to/buck platform-flavors"
|
BUCK="$2"
|
||||||
exit 1
|
shift
|
||||||
fi
|
shift
|
||||||
|
|
||||||
BUCK="$1"
|
|
||||||
BUCK_OPTIONS="$2"
|
|
||||||
PLATFORM_FLAVORS="$3"
|
|
||||||
|
|
||||||
BUILD_PATH="build"
|
BUILD_PATH="build"
|
||||||
APP_NAME="Telegram"
|
APP_NAME="Telegram"
|
||||||
@ -20,11 +16,18 @@ DSYMS_FOLDER_NAME="DSYMs"
|
|||||||
DSYMS_ZIP="$BUILD_PATH/$DSYMS_FOLDER_NAME.zip"
|
DSYMS_ZIP="$BUILD_PATH/$DSYMS_FOLDER_NAME.zip"
|
||||||
DSYMS_DIR="$BUILD_PATH/$DSYMS_FOLDER_NAME"
|
DSYMS_DIR="$BUILD_PATH/$DSYMS_FOLDER_NAME"
|
||||||
|
|
||||||
|
TEMP_PATH="$BUILD_PATH/temp"
|
||||||
|
TEMP_ENTITLEMENTS_PATH="$TEMP_PATH/entitlements"
|
||||||
|
|
||||||
mkdir -p "$BUILD_PATH"
|
mkdir -p "$BUILD_PATH"
|
||||||
rm -f "$IPA_PATH"
|
rm -f "$IPA_PATH"
|
||||||
rm -f "$DSYMS_ZIP"
|
rm -f "$DSYMS_ZIP"
|
||||||
rm -rf "$DSYMS_DIR"
|
rm -rf "$DSYMS_DIR"
|
||||||
mkdir -p "$DSYMS_DIR"
|
mkdir -p "$DSYMS_DIR"
|
||||||
|
rm -rf "$TEMP_PATH"
|
||||||
|
|
||||||
|
mkdir -p "$TEMP_PATH"
|
||||||
|
mkdir -p "$TEMP_ENTITLEMENTS_PATH"
|
||||||
|
|
||||||
cp "buck-out/gen/AppPackage#$PLATFORM_FLAVORS.ipa" "$IPA_PATH.original"
|
cp "buck-out/gen/AppPackage#$PLATFORM_FLAVORS.ipa" "$IPA_PATH.original"
|
||||||
rm -rf "$IPA_PATH.original.unpacked"
|
rm -rf "$IPA_PATH.original.unpacked"
|
||||||
@ -32,6 +35,7 @@ rm -f "$BUILD_PATH/${APP_NAME}_signed.ipa"
|
|||||||
mkdir -p "$IPA_PATH.original.unpacked"
|
mkdir -p "$IPA_PATH.original.unpacked"
|
||||||
unzip "$IPA_PATH.original" -d "$IPA_PATH.original.unpacked/"
|
unzip "$IPA_PATH.original" -d "$IPA_PATH.original.unpacked/"
|
||||||
rm "$IPA_PATH.original"
|
rm "$IPA_PATH.original"
|
||||||
|
rm -f "$KEYCHAIN_PATH"
|
||||||
|
|
||||||
UNPACKED_PATH="$IPA_PATH.original.unpacked"
|
UNPACKED_PATH="$IPA_PATH.original.unpacked"
|
||||||
APP_PATH="$UNPACKED_PATH/Payload/Telegram.app"
|
APP_PATH="$UNPACKED_PATH/Payload/Telegram.app"
|
||||||
@ -41,25 +45,118 @@ rm -rf "$IPA_PATH.original.unpacked/SwiftSupport/iphoneos/"*
|
|||||||
rm -rf "$IPA_PATH.original.unpacked/Symbols/"*
|
rm -rf "$IPA_PATH.original.unpacked/Symbols/"*
|
||||||
rm -rf "$FRAMEWORKS_DIR/"*
|
rm -rf "$FRAMEWORKS_DIR/"*
|
||||||
|
|
||||||
for DEPENDENCY in $(${BUCK} query "kind('apple_library|apple_binary', deps('//:Telegram#$PLATFORM_FLAVORS', 1))" ${BUCK_OPTIONS}); do
|
if [ -z "$1" ] || [ -z "$2" ]; then
|
||||||
case "$DEPENDENCY" in
|
echo "Usage: sh package_app.sh path/to/buck platform-flavors"
|
||||||
*"#"*)
|
exit 1
|
||||||
;;
|
fi
|
||||||
*)
|
|
||||||
DEPENDENCY="$DEPENDENCY#$PLATFORM_FLAVORS"
|
if [ -z "$PACKAGE_CODE_SIGN_IDENTITY" ]; then
|
||||||
;;
|
echo "PACKAGE_CODE_SIGN_IDENTITY is not set"
|
||||||
esac
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$DEVELOPMENT_TEAM" ]; then
|
||||||
|
echo "DEVELOPMENT_TEAM is not set"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "$CODESIGNING_DATA_PATH" ]; then
|
||||||
|
echo "CODESIGNING_DATA_PATH $CODESIGNING_DATA_PATH does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
APP_ITEMS_WITH_PROVISIONING_PROFILE="APP EXTENSION_Share EXTENSION_Widget EXTENSION_NotificationService EXTENSION_NotificationContent EXTENSION_Intents WATCH_APP WATCH_EXTENSION"
|
||||||
|
APP_ITEMS_WITH_ENTITLEMENTS="APP EXTENSION_Share EXTENSION_Widget EXTENSION_NotificationService EXTENSION_NotificationContent EXTENSION_Intents"
|
||||||
|
|
||||||
|
COMMON_IDENTITY_HASH=""
|
||||||
|
|
||||||
|
for ITEM in $APP_ITEMS_WITH_PROVISIONING_PROFILE; do
|
||||||
|
PROFILE_VAR=PACKAGE_PROVISIONING_PROFILE_$ITEM
|
||||||
|
if [ -z "${!PROFILE_VAR}" ]; then
|
||||||
|
echo "$PROFILE_VAR is not set"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
for PROFILE in "$CODESIGNING_DATA_PATH/profiles/"*; do
|
||||||
|
PROFILE_DATA=$(security cms -D -i "$PROFILE")
|
||||||
|
PROFILE_NAME=$(/usr/libexec/PlistBuddy -c "Print :Name" /dev/stdin <<< $(echo $PROFILE_DATA))
|
||||||
|
if [ "$PROFILE_NAME" == "${!PROFILE_VAR}" ]; then
|
||||||
|
TEAM_IDENTIFIER=$(/usr/libexec/PlistBuddy -c "Print :Entitlements:com.apple.developer.team-identifier" /dev/stdin <<< $(echo $PROFILE_DATA))
|
||||||
|
if [ "$TEAM_IDENTIFIER" != "$DEVELOPMENT_TEAM" ]; then
|
||||||
|
"Entitlements:com.apple.developer.team-identifier in $PROFILE does not match $DEVELOPMENT_TEAM"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo $(/usr/libexec/PlistBuddy -c "Print :DeveloperCertificates:0 :data" /dev/stdin <<< $(echo $PROFILE_DATA)) > cert.pem
|
||||||
|
IDENTITY_NAME=$(/usr/libexec/PlistBuddy -c "Print :DeveloperCertificates:0 :data" /dev/stdin <<< $(echo $PROFILE_DATA) | openssl x509 -inform DER -subject -nameopt multiline -sha1 -noout | grep commonName | sed -e 's#[ ]*commonName[ ]*=[ ]*##g')
|
||||||
|
if [ ! -z "$IDENTITY_NAME" ]; then
|
||||||
|
IDENTITY_HASH=$(/usr/libexec/PlistBuddy -c "Print :DeveloperCertificates:0 :data" /dev/stdin <<< $(echo $PROFILE_DATA) | openssl x509 -inform DER -fingerprint -sha1 -noout | sed -e 's#SHA1 Fingerprint=##' | sed -e 's#:##g')
|
||||||
|
if [ -z "$COMMON_IDENTITY_HASH" ]; then
|
||||||
|
COMMON_IDENTITY_HASH="$IDENTITY_HASH"
|
||||||
|
elif [ "$COMMON_IDENTITY_HASH" != "$IDENTITY_HASH" ]; then
|
||||||
|
"Signing identity in $PROFILE ($IDENTITY_HASH) does not match $COMMON_IDENTITY_HASH from previously processed profiles"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Signing identity name in $PROFILE does not match $PACKAGE_CODE_SIGN_IDENTITY"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
declare PROFILE_PATH_$ITEM="$PROFILE"
|
||||||
|
|
||||||
|
PROFILE_ENTITLEMENTS_PATH="$TEMP_ENTITLEMENTS_PATH/$ITEM.entitlements"
|
||||||
|
security cms -D -i "$PROFILE" > "$TEMP_PATH/temp.plist" && /usr/libexec/PlistBuddy -x -c 'Print:Entitlements' "$TEMP_PATH/temp.plist" > "$PROFILE_ENTITLEMENTS_PATH"
|
||||||
|
declare ENTITLEMENTS_PATH_$ITEM="$PROFILE_ENTITLEMENTS_PATH"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
for ITEM in $APP_ITEMS_WITH_PROVISIONING_PROFILE; do
|
||||||
|
PROFILE_PATH_VAR=PROFILE_PATH_$ITEM
|
||||||
|
if [ -z "${!PROFILE_PATH_VAR}" ]; then
|
||||||
|
echo "Provisioning profile for $ITEM was not found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
for ITEM in $APP_ITEMS_WITH_ENTITLEMENTS; do
|
||||||
|
ENTITLEMENTS_VAR=PACKAGE_ENTITLEMENTS_$ITEM
|
||||||
|
if [ -z "${!ENTITLEMENTS_VAR}" ]; then
|
||||||
|
echo "$ENTITLEMENTS_VAR is not set"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ ! -f "${!ENTITLEMENTS_VAR}" ]; then
|
||||||
|
echo "${!ENTITLEMENTS_VAR} does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#declare ENTITLEMENTS_PATH_$ITEM="${!ENTITLEMENTS_VAR}"
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "$COMMON_IDENTITY_HASH" ]; then
|
||||||
|
echo "Failed to determine signing identity"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for DEPENDENCY in $(${BUCK} query "kind('apple_library', deps('//:Telegram#$PLATFORM_FLAVORS', 1))" "$@"); do
|
||||||
DEPENDENCY_PATH=$(echo "$DEPENDENCY" | sed -e "s#^//##" | sed -e "s#:#/#")
|
DEPENDENCY_PATH=$(echo "$DEPENDENCY" | sed -e "s#^//##" | sed -e "s#:#/#")
|
||||||
DEPENDENCY_NAME=$(echo "$DEPENDENCY" | sed -e "s/#.*//" | sed -e "s/^.*\://")
|
DEPENDENCY_NAME=$(echo "$DEPENDENCY" | sed -e "s/#.*//" | sed -e "s/^.*\://")
|
||||||
DYLIB_PATH="buck-out/gen/$DEPENDENCY_PATH/lib$DEPENDENCY_NAME.dylib"
|
DYLIB_PATH="buck-out/gen/$DEPENDENCY_PATH/lib$DEPENDENCY_NAME.dylib"
|
||||||
if [ -f "$DYLIB_PATH" ]; then
|
|
||||||
TARGET_DYLIB_PATH="$FRAMEWORKS_DIR/lib$DEPENDENCY_NAME.dylib"
|
TARGET_DYLIB_PATH="$FRAMEWORKS_DIR/lib$DEPENDENCY_NAME.dylib"
|
||||||
cp "$DYLIB_PATH" "$TARGET_DYLIB_PATH"
|
cp "$DYLIB_PATH" "$TARGET_DYLIB_PATH"
|
||||||
fi
|
|
||||||
DSYM_PATH="buck-out/gen/$(echo "$DEPENDENCY" | sed -e "s/#/#apple-dsym,/" | sed -e "s#^//##" | sed -e "s#:#/#").dSYM"
|
DSYM_PATH="buck-out/gen/$(echo "$DEPENDENCY" | sed -e "s/#/#apple-dsym,/" | sed -e "s#^//##" | sed -e "s#:#/#").dSYM"
|
||||||
cp -f -r "$DSYM_PATH" "$DSYMS_DIR/"
|
cp -r "$DSYM_PATH" "$DSYMS_DIR/"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
APP_BINARY_DSYM_PATH="buck-out/gen/Telegram#dwarf-and-dsym,$PLATFORM_FLAVORS,no-include-frameworks/Telegram.app.dSYM"
|
||||||
|
cp -r "$APP_BINARY_DSYM_PATH" "$DSYMS_DIR/"
|
||||||
|
|
||||||
|
EXTENSIONS="Share Widget Intents NotificationContent NotificationService"
|
||||||
|
for EXTENSION in $EXTENSIONS; do
|
||||||
|
EXTENSION_DSYM_PATH="buck-out/gen/${EXTENSION}Extension#dwarf-and-dsym,$PLATFORM_FLAVORS,no-include-frameworks/${EXTENSION}Extension.appex.dSYM"
|
||||||
|
cp -r "$EXTENSION_DSYM_PATH" "$DSYMS_DIR/"
|
||||||
|
done
|
||||||
|
|
||||||
|
WATCH_EXTENSION_DSYM_PATH="buck-out/gen/WatchAppExtension#dwarf-and-dsym,no-include-frameworks,watchos-arm64_32,watchos-armv7k/WatchAppExtension.appex.dSYM"
|
||||||
|
cp -r "$WATCH_EXTENSION_DSYM_PATH" "$DSYMS_DIR/"
|
||||||
|
|
||||||
for LIB in $(ls "$FRAMEWORKS_DIR"/*.dylib); do
|
for LIB in $(ls "$FRAMEWORKS_DIR"/*.dylib); do
|
||||||
strip -S -T "$LIB"
|
strip -S -T "$LIB"
|
||||||
done
|
done
|
||||||
@ -75,27 +172,114 @@ done
|
|||||||
|
|
||||||
cp "$IPA_PATH.original.unpacked/SwiftSupport/iphoneos/"*.dylib "$FRAMEWORKS_DIR/"
|
cp "$IPA_PATH.original.unpacked/SwiftSupport/iphoneos/"*.dylib "$FRAMEWORKS_DIR/"
|
||||||
|
|
||||||
CERTIFICATE="76F9BA5C281AA72599FE015E0CE1A5D82F5A3DED"
|
|
||||||
|
|
||||||
for framework in "$FRAMEWORKS_DIR"/*; do
|
for framework in "$FRAMEWORKS_DIR"/*; do
|
||||||
if [[ "$framework" == *.framework || "$framework" == *.dylib ]]; then
|
if [[ "$framework" == *.framework || "$framework" == *.dylib ]]; then
|
||||||
/usr/bin/codesign ${VERBOSE} ${KEYCHAIN_FLAG} -f -s "$CERTIFICATE" "$framework"
|
/usr/bin/codesign ${VERBOSE} ${KEYCHAIN_FLAG} -f -s "$COMMON_IDENTITY_HASH" "$framework"
|
||||||
else
|
|
||||||
log "Ignoring non-framework: $framework"
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
PROVISIONING_PROFILE="buildbox/transient-data/codesigning/profiles/InHouse_org.telegram.Telegram-iOS.mobileprovision"
|
PLUGINS="Share Widget Intents NotificationService NotificationContent"
|
||||||
cp "$PROVISIONING_PROFILE" "$APP_PATH/embedded.mobileprovision"
|
for PLUGIN in $PLUGINS; do
|
||||||
|
PLUGIN_PATH="$APP_PATH/PlugIns/${PLUGIN}Extension.appex"
|
||||||
|
if [ ! -d "$PLUGIN_PATH" ]; then
|
||||||
|
echo "Directory at $PLUGIN_PATH does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
PROFILE_PATH_VAR="PROFILE_PATH_EXTENSION_$PLUGIN"
|
||||||
|
if [ -z "${!PROFILE_PATH_VAR}" ]; then
|
||||||
|
echo "$PROFILE_PATH_VAR is not defined"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ ! -f "${!PROFILE_PATH_VAR}" ]; then
|
||||||
|
echo "${!PROFILE_PATH_VAR} does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
ENTITLEMENTS_PATH_VAR="ENTITLEMENTS_PATH_EXTENSION_$PLUGIN"
|
||||||
|
if [ -z "${!ENTITLEMENTS_PATH_VAR}" ]; then
|
||||||
|
echo "$ENTITLEMENTS_PATH_VAR is not defined"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ ! -f "${!ENTITLEMENTS_PATH_VAR}" ]; then
|
||||||
|
echo "${!ENTITLEMENTS_PATH_VAR} does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
cp "${!PROFILE_PATH_VAR}" "$PLUGIN_PATH/embedded.mobileprovision"
|
||||||
|
/usr/bin/codesign ${VERBOSE} -f -s "$COMMON_IDENTITY_HASH" --entitlements "${!ENTITLEMENTS_PATH_VAR}" "$PLUGIN_PATH"
|
||||||
|
done
|
||||||
|
|
||||||
ENTITLEMENTS="Entitlements.entitlements"
|
WATCH_APP_PATH="$APP_PATH/Watch/WatchApp.app"
|
||||||
|
WATCH_EXTENSION_PATH="$WATCH_APP_PATH/PlugIns/WatchAppExtension.appex"
|
||||||
|
|
||||||
/usr/bin/codesign ${VERBOSE} -f -s "$CERTIFICATE" --entitlements "$ENTITLEMENTS" "$APP_PATH"
|
WATCH_EXTENSION_PROFILE_PATH_VAR="PROFILE_PATH_WATCH_EXTENSION"
|
||||||
|
if [ -z "${!WATCH_EXTENSION_PROFILE_PATH_VAR}" ]; then
|
||||||
|
echo "$WATCH_EXTENSION_PROFILE_PATH_VAR is not defined"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ ! -f "${!WATCH_EXTENSION_PROFILE_PATH_VAR}" ]; then
|
||||||
|
echo "${!WATCH_EXTENSION_PROFILE_PATH_VAR} does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
WATCH_EXTENSION_ENTITLEMENTS_PATH_VAR="ENTITLEMENTS_PATH_WATCH_EXTENSION"
|
||||||
|
if [ -z "${!WATCH_EXTENSION_ENTITLEMENTS_PATH_VAR}" ]; then
|
||||||
|
echo "$WATCH_EXTENSION_ENTITLEMENTS_PATH_VAR is not defined"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ ! -f "${!WATCH_EXTENSION_ENTITLEMENTS_PATH_VAR}" ]; then
|
||||||
|
echo "${!WATCH_EXTENSION_ENTITLEMENTS_PATH_VAR} does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp "${!WATCH_EXTENSION_PROFILE_PATH_VAR}" "$WATCH_EXTENSION_PATH/embedded.mobileprovision"
|
||||||
|
/usr/bin/codesign ${VERBOSE} -f -s "$COMMON_IDENTITY_HASH" --entitlements "${!WATCH_EXTENSION_ENTITLEMENTS_PATH_VAR}" "$WATCH_EXTENSION_PATH"
|
||||||
|
|
||||||
|
WATCH_APP_PROFILE_PATH_VAR="PROFILE_PATH_WATCH_APP"
|
||||||
|
if [ -z "${!WATCH_APP_PROFILE_PATH_VAR}" ]; then
|
||||||
|
echo "$WATCH_APP_PROFILE_PATH_VAR is not defined"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ ! -f "${!WATCH_APP_PROFILE_PATH_VAR}" ]; then
|
||||||
|
echo "${!WATCH_APP_PROFILE_PATH_VAR} does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
WATCH_APP_ENTITLEMENTS_PATH_VAR="ENTITLEMENTS_PATH_WATCH_APP"
|
||||||
|
if [ -z "${!WATCH_APP_ENTITLEMENTS_PATH_VAR}" ]; then
|
||||||
|
echo "$WATCH_APP_ENTITLEMENTS_PATH_VAR is not defined"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ ! -f "${!WATCH_APP_ENTITLEMENTS_PATH_VAR}" ]; then
|
||||||
|
echo "${!WATCH_APP_ENTITLEMENTS_PATH_VAR} does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp "${!WATCH_APP_PROFILE_PATH_VAR}" "$WATCH_APP_PATH/embedded.mobileprovision"
|
||||||
|
/usr/bin/codesign ${VERBOSE} -f -s "$COMMON_IDENTITY_HASH" --entitlements "${!WATCH_APP_ENTITLEMENTS_PATH_VAR}" "$WATCH_APP_PATH"
|
||||||
|
|
||||||
|
APP_PROFILE_PATH_VAR="PROFILE_PATH_APP"
|
||||||
|
if [ -z "${!APP_PROFILE_PATH_VAR}" ]; then
|
||||||
|
echo "$APP_PROFILE_PATH_VAR is not defined"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ ! -f "${!APP_PROFILE_PATH_VAR}" ]; then
|
||||||
|
echo "${!APP_PROFILE_PATH_VAR} does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
APP_ENTITLEMENTS_PATH_VAR="ENTITLEMENTS_PATH_APP"
|
||||||
|
if [ -z "${!APP_ENTITLEMENTS_PATH_VAR}" ]; then
|
||||||
|
echo "$APP_ENTITLEMENTS_PATH_VAR is not defined"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ ! -f "${!APP_ENTITLEMENTS_PATH_VAR}" ]; then
|
||||||
|
echo "${!APP_ENTITLEMENTS_PATH_VAR} does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp "${!APP_PROFILE_PATH_VAR}" "$APP_PATH/embedded.mobileprovision"
|
||||||
|
/usr/bin/codesign ${VERBOSE} -f -s "$COMMON_IDENTITY_HASH" --entitlements "${!APP_ENTITLEMENTS_PATH_VAR}" "$APP_PATH"
|
||||||
|
|
||||||
DIR=$(pwd)
|
DIR=$(pwd)
|
||||||
|
|
||||||
cd "$UNPACKED_PATH"
|
cd "$UNPACKED_PATH"
|
||||||
zip -r "../${APP_NAME}_signed.ipa" Payload SwiftSupport
|
zip -r "../${APP_NAME}_signed.ipa" Payload #SwiftSupport WatchKitSupport2
|
||||||
cd "$DIR"
|
cd "$DIR"
|
||||||
|
|
||||||
cd "$BUILD_PATH"
|
cd "$BUILD_PATH"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user