Hi there,
I'm trying to work on an architecture where one app exposes an API (Extension Host) that other apps can plugin to. I've been reading all I can from the docs and whatever I can find online. It seemed like iOS26 added the ability to do such a thing (at least in early builds).
Is that the case?
Has the functionality been walked back such that extensions can only be loaded in iOS from within the single app bundle?
My use case is the following:
I'm working on an agent app that desires to have 3rd party developers add functionality (think how MCP servers add functionality to LLMs). The 3rd party plugins would be provided in their own app bundles vetted by the AppStore review team, of course, and would only provide hooks, basically, the main app can use to execute functions or get state.
This is the best thread I found on the topic, and the subtext is that it needs to be in the same bundle. https://developer.apple.com/forums/thread/803896?answerId=865314022#865314022
Let's say for the moment that this isn't possible using ExtensionKit. What's the best way to achieve this? Our current best alternative idea is a hidded WebKit window that runs JS/WASM but that's so hackish.
Please let me know, thanks!
Has the functionality been walked back such that extensions can only be loaded in iOS from within the single app bundle?
I wouldn’t say “walked back” because full ExtensionKit support was never a feature of iOS. Well, I guess you could considered it to be walked back relative to macOS…
Anyway, see my replies on this thread for the current state of affairs.
What's the best way to achieve this?
There’s no way to achieve that goal for native code.
If you’re willing to entertain the idea of non-native code then you have various options, the most obvious being:
- Support JavaScript via JavaScriptCore.
- Support Wasm with your own runtime [1].
Keep in mind, however, that this is only the technical side of this coin. On the business side, I want to be clear that I don’t work for App Review and thus can’t give definitive answers about this policy. I recommend that you review their published App Review Guidelines.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
[1] Wasm runtimes are sufficient lightweight that I don’t think it makes sense to try to involve a web view.