iOS App 扩展

编辑页面

了解如何使用 EAS Build 通过应用扩展添加自定义功能。


For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.

应用扩展可让你将自定义功能和内容扩展到应用之外,并在用户与其他应用或 iOS 系统功能交互时向他们提供这些内容。EAS Build 提供了支持,以便在裸项目和托管项目中都能包含应用扩展。

托管项目(实验性支持)

一个典型的、简单的托管项目只有一个应用目标,没有应用扩展。你可以通过编写 配置插件(或使用一个会创建带有其自身配置插件的扩展的库)来向项目中添加应用扩展。配置插件允许你在构建任务的“预构建”阶段生成的 Xcode 项目中添加目标。

在应用配置中使用 extra.eas.build.experimental.ios.appExtensions 声明应用扩展,可以让 EAS CLI 在构建开始之前(即在 Xcode 项目生成之前)知道有哪些应用扩展,从而确保所需的凭据被生成并验证。配置插件也能够修改应用配置,而且在大多数情况下,如果你使用的是一个添加扩展的库,那么配置插件还会添加所需的配置,以便在应用配置中声明该扩展。如果你正在编写一个库,我们建议你考虑这一点。以下示例展示了如果直接在 app.json 中声明时会是什么样子:

app.json
{ "expo": { ... "extra": { "eas": { "build": { "experimental": { "ios": { "appExtensions": [ { "targetName": "myappextension", "bundleIdentifier": "com.myapp.extension", "entitlements": { "com.apple.example": "entitlement value" } } ] } } } } } } }

裸项目

当你构建裸项目时,EAS CLI 会自动检测在 Xcode 项目中配置的应用扩展,并为每个目标生成所有必要的凭据;或者你也可以在 credentials.json 中提供它们。更多信息,请参见 多目标项目