Skip to content

Commit

Permalink
Add ExtensionKit support
Browse files Browse the repository at this point in the history
ExtensionKit extensions uses EXAppExtensionAttributes in its info.plist. extension_point_identifiers_parser.py didn't support that so that it fails to find the ExtensionKit extensions.
Also adds an ExtensionKit extension to the example iOSAPP.

Signed-off-by: Cong Shi <[email protected]>
  • Loading branch information
congt committed Nov 19, 2024
1 parent 8f527c9 commit 7e0d0b7
Show file tree
Hide file tree
Showing 21 changed files with 1,670 additions and 575 deletions.
56 changes: 56 additions & 0 deletions examples/integration/ExtensionKitExtension/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
load("@build_bazel_rules_apple//apple:apple.bzl", "local_provisioning_profile")
load("@build_bazel_rules_apple//apple:ios.bzl", "ios_extension")
load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library")
load("@rules_xcodeproj//xcodeproj:defs.bzl", "xcode_provisioning_profile")
load(
"//:xcodeproj_targets.bzl",
"IOS_BUNDLE_ID",
"TEAMID",
)

config_setting(
name = "device_build",
values = {
"cpu": "ios_arm64",
},
)

ios_extension(
name = "ExtensionKitExtension",
bundle_id = "{}.extensionkit-extension".format(IOS_BUNDLE_ID),
extensionkit_extension = True,
families = ["iphone"],
infoplists = [":Info.plist"],
minimum_os_version = "15.0",
provisioning_profile = select({
":device_build": ":xcode_profile",
"//conditions:default": None,
}),
version = "//iOSApp:Version",
visibility = ["//iOSApp:__subpackages__"],
deps = [
"ExtensionKitExtension.library",
],
)

xcode_provisioning_profile(
name = "xcode_profile",
managed_by_xcode = True,
provisioning_profile = ":xcode_managed_profile",
tags = ["manual"],
)

local_provisioning_profile(
name = "xcode_managed_profile",
profile_name = "iOS Team Provisioning Profile: {}.extensionkit-extension".format(IOS_BUNDLE_ID),
tags = ["manual"],
team_id = TEAMID,
)

swift_library(
name = "ExtensionKitExtension.library",
srcs = glob(["**/*.swift"]),
module_name = "ExtensionKitExtension",
tags = ["manual"],
visibility = ["//:__subpackages__"],
)
21 changes: 21 additions & 0 deletions examples/integration/ExtensionKitExtension/Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>EXAppExtensionAttributes</key>
<dict>
<key>EXExtensionPointIdentifier</key>
<string>com.apple.generic-extension</string>
</dict>
</dict>
</plist>
6 changes: 6 additions & 0 deletions examples/integration/ExtensionKitExtension/main.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import Foundation

public class main {
public init() {}
public func main() { print("Hello world") }
}
5 changes: 4 additions & 1 deletion examples/integration/iOSApp/Source/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,10 @@ ios_application(
":device_build": None,
"//conditions:default": "iOSApp_ExecutableName",
}),
extensions = ["//WidgetExtension"],
extensions = [
"//ExtensionKitExtension",
"//WidgetExtension",
],
families = ["iphone"],
frameworks = [
"//iOSApp/Source/CoreUtilsObjC:FrameworkCoreUtilsObjC",
Expand Down
66 changes: 35 additions & 31 deletions examples/integration/test/fixtures/bazel-7/bwb_replacements.txt
Original file line number Diff line number Diff line change
@@ -1,31 +1,35 @@
CONFIGURATION-STABLE-0 darwin_x86_64-dbg-ST-407e30105d50
CONFIGURATION-STABLE-1 darwin_x86_64-dbg-ST-0cb41a45890d
CONFIGURATION-STABLE-2 darwin_x86_64-opt-ST-3ebaaa60f9ea
CONFIGURATION-STABLE-3 ios_x86_64-dbg-ios-x86_64-min15.0-applebin_ios-ST-ec26bca69b41
CONFIGURATION-STABLE-4 watchos_x86_64-dbg-watchos-x86_64-min7.0-applebin_watchos-ST-1043e03348d6
CONFIGURATION-STABLE-5 tvos_x86_64-dbg-tvos-x86_64-min15.0-applebin_tvos-ST-ce438f055cbb
CONFIGURATION-STABLE-6 darwin_x86_64-dbg-macos-x86_64-min12.0-applebin_macos-ST-2def78e7184f
CONFIGURATION-STABLE-7 ios_arm64-dbg-ios-arm64-min15.0-applebin_ios-ST-c30990658771
CONFIGURATION-STABLE-8 watchos_arm64_32-dbg-watchos-arm64_32-min7.0-applebin_watchos-ST-fd2a96b3b11f
CONFIGURATION-STABLE-9 tvos_arm64-dbg-tvos-arm64-min15.0-applebin_tvos-ST-7a5a862cb382
CONFIGURATION-STABLE-10 ios_x86_64-opt-ios-x86_64-min15.0-applebin_ios-ST-2c9b4ecefc25
CONFIGURATION-STABLE-11 watchos_x86_64-opt-watchos-x86_64-min7.0-applebin_watchos-ST-847c5b6a4329
CONFIGURATION-STABLE-12 tvos_x86_64-opt-tvos-x86_64-min15.0-applebin_tvos-ST-85587bfa0dfc
CONFIGURATION-STABLE-13 darwin_x86_64-opt-macos-x86_64-min12.0-applebin_macos-ST-5faa35951e87
CONFIGURATION-STABLE-14 ios_arm64-opt-ios-arm64-min15.0-applebin_ios-ST-9a1a343abca6
CONFIGURATION-STABLE-15 watchos_arm64_32-opt-watchos-arm64_32-min7.0-applebin_watchos-ST-64303a5eeb36
CONFIGURATION-STABLE-16 tvos_arm64-opt-tvos-arm64-min15.0-applebin_tvos-ST-fe56c91186e8
CONFIGURATION-STABLE-17 watchos_x86_64-dbg-watchos-x86_64-min8.0-applebin_watchos-ST-99e1c5fcd7e3
CONFIGURATION-STABLE-18 watchos_arm64_32-dbg-watchos-arm64_32-min8.0-applebin_watchos-ST-9d3d8bec26be
CONFIGURATION-STABLE-19 watchos_x86_64-opt-watchos-x86_64-min8.0-applebin_watchos-ST-0a19b84585db
CONFIGURATION-STABLE-20 watchos_arm64_32-opt-watchos-arm64_32-min8.0-applebin_watchos-ST-f46b06ca0e7b
CONFIGURATION-STABLE-21 darwin_x86_64-dbg-macos-x86_64-min11.0-applebin_macos-ST-12067848ee5c
CONFIGURATION-STABLE-22 darwin_x86_64-opt-macos-x86_64-min11.0-applebin_macos-ST-114572f286c3
CONFIGURATION-STABLE-23 darwin_x86_64-dbg-macos-x86_64-min11.0-applebin_macos-ST-2fa98142772b
CONFIGURATION-STABLE-24 darwin_arm64-dbg-macos-arm64-min11.0-applebin_macos-ST-17dc5fb9af4b
CONFIGURATION-STABLE-25 darwin_x86_64-dbg-macos-x86_64-min11.0-applebin_macos-ST-67006a47c4ef
CONFIGURATION-STABLE-26 darwin_x86_64-opt-macos-x86_64-min11.0-applebin_macos-ST-007da2440a68
CONFIGURATION-STABLE-27 darwin_arm64-opt-macos-arm64-min11.0-applebin_macos-ST-44db42dc8599
CONFIGURATION-STABLE-28 darwin_x86_64-opt-macos-x86_64-min11.0-applebin_macos-ST-b46e9b013234
CONFIGURATION-STABLE-29 darwin_x86_64-dbg-ST-e273d27b8a77
CONFIGURATION-STABLE-30 darwin_x86_64-opt-ST-d92b73c84722
CONFIGURATION-STABLE-0 darwin_x86_64-dbg-ST-376989c9bb44
CONFIGURATION-STABLE-1 darwin_x86_64-dbg-ST-65b9ae3229ca
CONFIGURATION-STABLE-2 darwin_x86_64-opt-ST-4603bbaf5d98
CONFIGURATION-STABLE-3 ios_x86_64-dbg-ios-x86_64-min15.0-applebin_ios-ST-ec49b5570e6a
CONFIGURATION-STABLE-4 watchos_x86_64-dbg-watchos-x86_64-min7.0-applebin_watchos-ST-c601ed35d954
CONFIGURATION-STABLE-5 ios_x86_64-dbg-ios-x86_64-min16.0-applebin_ios-ST-7c661f35007d
CONFIGURATION-STABLE-6 tvos_x86_64-dbg-tvos-x86_64-min15.0-applebin_tvos-ST-8fa93ae60f3c
CONFIGURATION-STABLE-7 darwin_x86_64-dbg-macos-x86_64-min12.0-applebin_macos-ST-e4d1b54e0a5f
CONFIGURATION-STABLE-8 ios_arm64-dbg-ios-arm64-min15.0-applebin_ios-ST-d4ed85805c03
CONFIGURATION-STABLE-9 watchos_arm64_32-dbg-watchos-arm64_32-min7.0-applebin_watchos-ST-2d1383ea1bfd
CONFIGURATION-STABLE-10 ios_arm64-dbg-ios-arm64-min16.0-applebin_ios-ST-9d40ca217462
CONFIGURATION-STABLE-11 tvos_arm64-dbg-tvos-arm64-min15.0-applebin_tvos-ST-f0bf1e4db2b5
CONFIGURATION-STABLE-12 ios_x86_64-opt-ios-x86_64-min15.0-applebin_ios-ST-f0647120a524
CONFIGURATION-STABLE-13 watchos_x86_64-opt-watchos-x86_64-min7.0-applebin_watchos-ST-9b6da1c1ca96
CONFIGURATION-STABLE-14 ios_x86_64-opt-ios-x86_64-min16.0-applebin_ios-ST-98784b0141f7
CONFIGURATION-STABLE-15 tvos_x86_64-opt-tvos-x86_64-min15.0-applebin_tvos-ST-fd3222aa8913
CONFIGURATION-STABLE-16 darwin_x86_64-opt-macos-x86_64-min12.0-applebin_macos-ST-478bd2e7095f
CONFIGURATION-STABLE-17 ios_arm64-opt-ios-arm64-min15.0-applebin_ios-ST-d4b659e4a9d4
CONFIGURATION-STABLE-18 watchos_arm64_32-opt-watchos-arm64_32-min7.0-applebin_watchos-ST-ecd9d94fb4e5
CONFIGURATION-STABLE-19 ios_arm64-opt-ios-arm64-min16.0-applebin_ios-ST-9a1b0839beb3
CONFIGURATION-STABLE-20 tvos_arm64-opt-tvos-arm64-min15.0-applebin_tvos-ST-618e0eabc398
CONFIGURATION-STABLE-21 watchos_x86_64-dbg-watchos-x86_64-min8.0-applebin_watchos-ST-65044d9cb033
CONFIGURATION-STABLE-22 watchos_arm64_32-dbg-watchos-arm64_32-min8.0-applebin_watchos-ST-e2adfc6423ec
CONFIGURATION-STABLE-23 watchos_x86_64-opt-watchos-x86_64-min8.0-applebin_watchos-ST-b7000f81fbba
CONFIGURATION-STABLE-24 watchos_arm64_32-opt-watchos-arm64_32-min8.0-applebin_watchos-ST-58e24dd35eea
CONFIGURATION-STABLE-25 darwin_x86_64-dbg-macos-x86_64-min11.0-applebin_macos-ST-23ced71d870c
CONFIGURATION-STABLE-26 darwin_x86_64-opt-macos-x86_64-min11.0-applebin_macos-ST-5c2767082c6b
CONFIGURATION-STABLE-27 darwin_x86_64-dbg-macos-x86_64-min11.0-applebin_macos-ST-7c4786726810
CONFIGURATION-STABLE-28 darwin_arm64-dbg-macos-arm64-min11.0-applebin_macos-ST-5f46583411cc
CONFIGURATION-STABLE-29 darwin_x86_64-dbg-macos-x86_64-min11.0-applebin_macos-ST-a6b23e99dd1c
CONFIGURATION-STABLE-30 darwin_x86_64-opt-macos-x86_64-min11.0-applebin_macos-ST-d247baf1a2e1
CONFIGURATION-STABLE-31 darwin_arm64-opt-macos-arm64-min11.0-applebin_macos-ST-4320432566be
CONFIGURATION-STABLE-32 darwin_x86_64-opt-macos-x86_64-min11.0-applebin_macos-ST-11b4a0ee8e7b
CONFIGURATION-STABLE-33 darwin_x86_64-dbg-ST-3a99c2752788
CONFIGURATION-STABLE-34 darwin_x86_64-opt-ST-a99a48f137fe
Loading

0 comments on commit 7e0d0b7

Please sign in to comment.