准备要发布到市场的 SharePoint 框架应用程序

在市场中发布 SharePoint 框架应用程序之前,必须先完成审批过程。 此过程是由 Microsoft 免费执行的,旨在确保你的应用正常运行,并且其页面清楚地描述其用途和功能。 为了帮助你在市场中发布应用程序,在审批过程中执行的测试如下文所示。

先决条件

使用 SharePoint 框架 v1.11 或更高版本

若要构建要发布到市场的解决方案,你需要使用 SharePoint 框架 v1.11 或更高版本。 从版本 1.11 开始,SharePoint 框架解决方案的清单中将包含有关你的组织和解决方案的附加信息,这是在市场中发布应用程序所必需的。

提示

如果你的应用程序是使用更早版本的 SharePoint 框架构建的,你可以使用适用于 Microsoft 365 的 CLI 轻松地将其升级到 SharePoint 框架 v1.11 或更高版本。 有关详细信息,请访问 https://pnp.github.io/cli-microsoft365/cmd/spfx/project/project-upgrade/

在根网站和非根网站中测试应用程序

在测试你的应用程序时,验证安装在租户的根网站集以及非根网站中的应用程序是否能按预期运行。 这将帮助你验证它是否对特定网站 URL 没有任何依赖性。

在所需浏览器中测试应用程序

在针对下一部分所述的检查对应用程序进行测试时,验证其是否至少可在 Windows 10 上最新版本的 Microsoft Edge、Google Chrome、Firefox 和 Microsoft Teams 桌面客户端(如果你的应用程序在 Teams 中显示 Web 部件)中按预期运行。

必需的检查

以下是必须通过的检查。 如果此类别中的一个或多个检查失败,我们将拒绝你的应用程序,并指导你修复报告的问题。

确保 SharePoint 框架合同合规性

你的 Web 部件或定制器只能操作通过 domElement 属性提供的 DOM 元素。 此元素和提供的上下文对象是通过应用向网站添加功能的唯一批准方式。 直接操作页面 DOM 将导致解决方案被拒绝。

正常情况下,解决方案应按预期运行

正常情况下,解决方案中的所有组件(Web 部件和扩展)均应按预期运行。 在提交应用程序以供审批前,应验证它是否可在多个租户上以及是否可使用不同的用户帐户按预期工作,确保其不依赖于任何特定配置。 如果解决方案需要特定设置,请在解决方案的说明中明确指出。

Web 部件应可在其可见的所有主机中正常运行

使用 SharePoint 框架构建 Web 部件时,可选择其显示位置。 在提交应用程序以供审查前,请确保你的 Web 部件在所有这些主机中都能按预期运行。

解决方案程序包必须包含有效的开发人员元数据

解决方案的清单(在 package-solution.json 文件中管理)必须具有一个名为“developer”的权限部分,其中包含如下属性:

属性 说明 强制
name 构建应用程序的组织的名称
websiteUrl 包含应用程序附加信息的网站的 URL
mpnId Microsoft 合作伙伴网络 ID(详情请见 MS 合作伙伴网络 否(但强烈建议提供该内容)
privacyUrl 隐私声明 URL
termOfUseUrl 使用条款 URL

通过包括这些额外的信息,你可以清楚地向用户传达有关你的应用程序的信息,而且方便你将来访问附加的使用情况数据。

在 Microsoft Teams 中安装 Web 部件时,将显示开发人员信息。 在市场中显示的有关应用程序和开发人员的信息将在市场内单独管理。

Web 部件元数据说明文本必须简要描述其功能和价值主张

确保元数据中的 Web 部件说明是有意义的,以便用户了解你的 Web 部件的用途及其可期待的功能。

解决方案的说明必须清楚地说明程序包中包含的不同组件

将程序包提交到市场时,请务必清楚地说明程序包中包含的不同组件(Web 部件、应用程序定制器等),以便管理用户期望并帮助他们了解使用应用程序的影响。

请勿在解决方案名称中使用 Teams 和 SharePoint 中的功能的名称

在解决方案名称中,不要使用与 Microsoft Teams 或 SharePoint 中的功能匹配的字词,如“聊天”、“联系人”、“日历”、“通话”、“文件”、“会议”、“活动”、“Teams”、“应用”、“帮助”、“SharePoint”、“列表”和“页面”等,因为这些名称可能会与 Teams 和 SharePoint 中的标准功能混淆。

请勿在解决方案名称中使用其他 Microsoft 产品的名称

如果解决方案的名称中包含另一 Microsoft 产品的名称(如 OutlookWord日历任务TeamsExcelPowerPointVisio),则该解决方案将会遭到拒绝。

你的解决方案不能使用特定于 Microsoft Teams 或 SharePoint 功能的关键字(如“开始会议”、“发起通话”、“上传文件”、“开始聊天”等)。这些关键字已在 Microsoft 产品中使用,再在你应用程序中使用能会使用户感到困惑。 如果你的应用程序提供类似的功能,请在操作中包含你的应用的名称,例如:“开始 Zoom 会议”、“将文件上传到 Dropbox”、“开始 Freshdesk 聊天”等。

命名解决方案

如果你的解决方案是以一个常用词(如“Orders”)命名的,则还需要包括你的公司名称,以便与市场上的其他解决方案区分开来(例如“Contoso Orders”)。 而 Contoso 表示的是提交解决方案的公司名称。

确保 package-solution.json 配置文件具有基于上述格式更新的可理解 name 条目,如下例所示。

请勿在应用的说明和屏幕截图中包含其他广告

确保应用的说明、屏幕截图、文本和促销图像仅描述该应用,而不包含任何其他广告。

属性窗格中显示的所有属性均应该具有相应的功能

在 Web 部件的属性窗格中显示的属性应该是有意义的。 更改它们的设置,应该可以明显地更改 Web 部件的行为。

验证是否可将程序包文件上传到“应用程序目录”而不出现错误

验证解决方案程序包是否可以上传到租户中的“应用程序目录”中,而不出现任何错误。

验证是否可以无错误地部署应用程序

验证你的应用程序能否安装在特定网站中,但又同时可以部署到所有网站(全局部署),而不出现任何错误。

为任何 API 请求提供理由

如果你的应用程序需要额外的 API 访问(例如,与 Microsoft Graph 通信),其应在解决方案清单中提出请求。 此外,请为所请求的 API 访问准备好理由,因为我们可能会在审查你的应用时要求提供该理由。

不允许支持终端用户注入脚本

解决方案无法让终端用户将任意脚本嵌入到SharePoint页面中。 这意味着,在SharePoint中启用经典脚本编辑器或内容编辑器方案的解决方案不允许发布到SharePoint 商店中。

这种模式不允许在 SharePoint 商店不允许通过此模型,因为它开启了普通终端用户在门户上嵌入脚本的安全问题。 只能向位于 Microsoft 托管商店之外的客户提供此类解决方案。

Web 部件中显示的所有 URL 都必须能正常使用

如果 Web 部件显示 URL,它们必须指向现有资源,并且不能转至不存在的或错误的页面。

应用程序不会停止响应

应用程序在使用时不应停止对用户的响应。 如果需要执行可能需要一些时间才能完成的操作,它会将此信息传达给用户。

解决方案是否完整

你的解决方案是否包含其说明和屏幕截图中所宣传的所有功能?

应用程序的 UI 是否完善

用户对你的应用程序的第一印象来自于其 UI 的显示效果。 如果 UI 看起来不完善、某些元素没有对齐、使用了许多不同的字体,或者一些占位符文本没有替换为其最终值,则可能会给他们这样一种印象:你的应用程序还没有完成,他们还不应该使用。

提示

为了确保与 SharePoint 和 Teams 无缝集成,我们建议使用 Office UI Fabric,它是 Microsoft 365 的设计语言。 有关详细信息,请参阅本套文档的设计部分。

应用程序不应在没有显式交互的情况下提示用户

你的应用程序不应在用户没有进行显示交互的情况下提示用户。

验证浏览器不会阻止弹出窗口

如果你的应用程序使用弹出窗口,请验证浏览器在使用默认设置时不会阻止该类窗口,中断用户流。

正确的首次启动体验

如果可能,你的应用程序应在首次启动时便可正常运行。 如果必须先对其进行配置,请将后续步骤清楚地传达给用户。 如果配置十分复杂或需要其他信息,请提供明确说明,以帮助用户设置你的应用程序。

测试与 Teams 的同步情况

如果应用程序包含显示为 Teams 选项卡或个人应用的 Web 部件,请验证是否可以使用“应用程序目录”中的“同步到 Teams”选项将其部署到 Teams,而不出现任何错误。 将配置同步到 Teams 后,验证是否所有 Web 部件都按预期显示在 Teams 的应用程序目录中,是否都可以按预期安装和使用。

验证“服务条款”、“隐私政策”、“关于”等链接是否有效并指向正确的页面。

获取帐户或许可证

如果你的解决方案需要用户获取帐户或许可证,是否清楚地介绍了他们可以如何执行此操作,以及他们可以如何将获取的信息用于你的应用程序?

如果产品中包含免费试用版,请勿提供演示内容

如果你的产品提供免费的应用程序试用版,那么你的应用程序不应包含任何演示内容。

请勿包含恶意代码

包含恶意代码、恶意网站链接或其他非法资源的解决方案将无法在市场上发布。

请勿包含有漏洞的资源

验证代码是否不包含任何漏洞。 如果你使用的是第三方依赖项

确保应用程序不会过度使用资源

在测试应用程序时,请确保它不会导致 CPU 使用率显著或持续增加,并且不会占用大量内存,也不会导致浏览器停止响应。 一般来说,你的应用程序应在具有 Internet 连接的普通台式计算机上运行良好。 此外,应用程序的加载时间不应超过 10 秒钟。

Microsoft团队的目标解决方案需要在租户范围内进行。

应对Microsoft团队使用的SharePoin解决方案需要在 tenant-scoped targeted内进行。 这个设置是通过配置文件package-solution.json 中的 skipFeatureDeployment 属性来控制的,这个设置应该true 任何有针对 Microsoft Teams 的组件的解决方案。

以下是建议通过的检查。 虽然此类别中的检查失败不会阻止你在市场上发布应用程序,但它可能会对最终用户体验产生负面影响。

Web 部件图标应为 64x64 像素,且采用透明背景

我们建议在 Web 部件的图标中使用背景透明的 64x64 像素图像。 这将使其可在 SharePoint 中的不同 UI 模式下正确显示。

Microsoft Teams 徽标需使用正确的图像大小

如果你的解决方案包含面向 Microsoft Teams 的组件,则应根据 Microsoft Teams 指导使用正式的图像大小。 轮廓图像必须为 32x32px,彩色图像必须为 192x192px。

整页图像必须正确调整大小

如果解决方案包含旨在作为单部分应用页面呈现的组件,则这些组件中的每个组件都必须具有 fullPageAppIconImageUrl 属性,并具有在 SharePoint 中创建新页面时要使用的特定图像。 此图像的大小必须为 193x158px。

Web 部件应有一个可在属性窗格中进行配置的标题

我们建议为所有 Web 部件都提供一个标题,来清楚地描述 Web 部件所呈现的信息。 页面作者应该可以通过属性窗格调整此标题,以便标题可在 Web 部件可配置的情况下正确描述其内容。

提示

通过使用 WebPartTitle PnP 可重用 React 控件,可轻松地向 Web 部件添加可配置的标题。

正确处理不同的主题

应用程序应可正确处理浅色和深色主题。 在不同主题之间切换不会对应用程序的可用性产生负面影响。 虽然不提供主题支持不会阻止你在市场中发布应用,但建议你支持它们,以便提供最佳的用户体验。

提示

有关在应用程序中使用主题的详细信息,请参阅在 SharePoint 框架自定义项中使用主题颜色一文。