-
Notifications
You must be signed in to change notification settings - Fork 273
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ExtensionKit App Extensions not supported #1943
Comments
The new ExtensionKit Extension is very similar to the current App Extension, just with a few differences.
There are two potential approaches to implement this:
We're happy to implement this, but want to start the discussion beforehand. cc: @keith |
I noticed the |
Thanks for the extensive and detailed proposal! I think going with an attribute like you did in the linked PR probably makes sense. From what I understand, all extensions support both types except the new "Background Assets" which only supports |
I'm not sure which extension types are valid for ExtensionKit vs older app extensions, but I agree that an error would be helpful to surface this to consumers. I agree a disallow-list will be more helpful than an allow-list, since Apple will release new extension types, and consumers shouldn't need to wait for updates. We've noticed that creating a Background Asset extension as an older extension type (NSExtension and app-extension) will compile, but fails App Store validation and won't install to a device/simulator. To your recommendation of confirming the extension points are valid with ExtensionKit - can we check Info.plist values while building with Bazel? I wasn't sure if Starlark had the ability to read input files. The extension point string defining the extension point is either in the |
Oh, I see. We can follow a similar pattern as I think some validation warnings/errors can be useful, but we should be cautious not to block future legitimate use cases. Should we create any rule attributes to silence these warnings? Furthermore, should we use the plist to set the product type instead of expecting |
I just tried quickly to create an Intents extension for iOS (which isn't iOS 16 only), and I could't find a way to have Xcode add it into I remembered that we also have something called |
From Info.plist docs, it looks like these are supported NSExtension extension points, and EXExtensionPointIdentifiers aren't documented online, but I scanned Xcode's templates ( I started this commit to
I think this should provide discoverability to the correct build settings without blocking valid use cases, such as:
|
App extensions like Background Assets are of type
EXAppExtension
, instead ofNSExtension
, and have some different build settings. AnEXAppExtension
is of product typecom.apple.product-type.extensionkit-extension
and installed into theExtensions
directory instead ofPlugIns
.Trying to configure a Background Asset downloader extension with current Bazel rules will run into validation errors, since
PlugIns
expect anNSExtension
dictionary in Info.plist, but the extension pointcom.apple.background-asset-downloader-extension
disallows that property.For now, we can work around this simply by moving the
.appex
bundle fromPlugIns
toExtensions
.The text was updated successfully, but these errors were encountered: