Skip to content

Commit 1329bf1

Browse files
Restructures and expands 'Publish to SPFx marketplace' docs (SharePoint#5946)
* Restructures and expands 'Publish to SPFx marketplace' docs * Updates to address review feedback
1 parent daa7677 commit 1329bf1

7 files changed

+278
-83
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
title: Maintain and support your published app
3+
description: Tips to maintain and support your SharePoint Framework app after publishing it to the marketplace
4+
ms.date: 06/25/2020
5+
ms.prod: sharepoint
6+
localization_priority: Priority
7+
---
8+
9+
# Maintain and support your published app
10+
11+
Publishing the application to the marketplace is just the first step in helping users solve their business problem. Following sections contain some tips that you should consider after publishing your application to the marketplace.
12+
13+
## Install applications from the marketplace in the tenant app catalog
14+
15+
SharePoint Online allows you to create a tenant app catalog where you centrally manage applications available in your organization. Additionally, you can create site collection app catalogs, where you can deploy applications to specific sites.
16+
17+
Applications that you acquire from the marketplace, you can install only in tenant app catalogs. After installing the application, you can decide whether you want to deploy it globally and make it available to all sites in your tenant or if you want to deploy it only to specific sites.
18+
19+
For more information about managing SharePoint Framework solution in the app catalog visit: [https://docs.microsoft.com/sharepoint/use-app-catalog](https://docs.microsoft.com/sharepoint/use-app-catalog) and [https://docs.microsoft.com/sharepoint/dev/general-development/site-collection-app-catalog](https://docs.microsoft.com/sharepoint/dev/general-development/site-collection-app-catalog).
20+
21+
## Permissions required to install applications from the marketplace
22+
23+
By default, only tenant administrators can install applications from the marketplace. They can however choose to delegate the responsibility to others in your organization by granting them access to the tenant app catalog.
24+
25+
SharePoint Framework applications execute on behalf of the current user and can do whatever the current user can do. Because of this, only tenant app catalog administrators can install applications from the marketplace. Users who are not app catalog administrators can request a specific application to be installed by the app catalog administrator, but they cannot install the application themselves.
26+
27+
## Notify users of new versions
28+
29+
As you update your application, you should notify your users when an updated version is available. The marketplace does not offer any version checking mechanism and you should implement it your application so that notifications are meaningful and as unobtrusive as possible. In your code you can for example call a custom API that you own to compare the current version of the application with the latest version available.
30+
31+
Tenant app catalog administrators can update applications acquired from the marketplace directly from the app catalog, by selecting the application in the app catalog and from the ribbon choosing the **Upgrade Store App** option. When the upgrade succeeds, the latest version will be automatically visible to users in all sites where the application has been installed.
32+
33+
## Applications listed in the SharePoint category
34+
35+
All SharePoint Framework applications published in the marketplace are listed in the **SharePoint** category. At this moment, it is not possible to specify a custom category. Also, even if you configured web parts in your application to be exposed in Microsoft Teams, the application will still be listed in the **SharePoint** category.
36+
Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
---
2+
title: Prepare your SharePoint Framework application for publishing to the marketplace
3+
description: Tips & tricks to help you get your SharePoint Framework application published in the marketplace
4+
ms.date: 06/25/2020
5+
ms.prod: sharepoint
6+
localization_priority: Priority
7+
---
8+
9+
# Prepare your SharePoint Framework application for publishing to the marketplace
10+
11+
Before a SharePoint Framework application is published in the marketplace, it must go through an approval process. This process is executed free of charge by Microsoft and is meant to ensure that your app functions properly and that its page clearly describes its purpose and features. To help you get your application published in the marketplace, following is the list of tests executed as a part of the approval process.
12+
13+
## Prerequisites
14+
15+
### Use SharePoint Framework v1.11 or newer
16+
17+
To build solutions that you want to publish to the marketplace, you need to use SharePoint Framework v1.11 or higher. Starting from version 1.11, SharePoint Framework solution manifest has additional information about your organization and solution, which is required for publishing your application in the marketplace.
18+
19+
> [!TIP]
20+
> If your application is built using an older version of the SharePoint Framework, you can easily upgrade it to SharePoint Framework v1.11 or newer using Office 365 CLI. For more information, visit [https://pnp.github.io/office365-cli/cmd/spfx/project/project-upgrade/](https://pnp.github.io/office365-cli/cmd/spfx/project/project-upgrade/).
21+
22+
### Test application in both root and non-root sites
23+
24+
When testing your application, verify that it's working as intended when installed both in the root site collection of a tenant as well as non-root sites. This will help you verify that it doesn't have any dependencies on specific site URLs.
25+
26+
### Test application in the required browsers
27+
28+
When testing your application against checks described in the following section, verify that it works as expected at least on Windows 10 in the latest versions of Microsoft Edge, Google Chrome, Firefox and Microsoft Teams Desktop client (if your application exposes web parts in Teams).
29+
30+
## Required checks
31+
32+
Following checks must be passed. If one or more checks from this category failed, your application will be rejected and you will be instructed to fix the reported issues.
33+
34+
### Under normal circumstances solution should work as intended
35+
36+
Under normal circumstances, all components (web parts and extensions) in your solution should work as intended. Preferably, before submitting your application for approval, you should verify that it's working as expected on multiple tenants and using different user accounts to ensure that it doesn't depend on any specific configuration. If your solution requires specific settings, mention it explicitly in your solution's description.
37+
38+
### Web part should work in all hosts in which its exposed
39+
40+
When building web parts using SharePoint Framework, you can choose [where they should be exposed](integrate-with-teams-introduction.md). Before submitting you application for review, ensure that your web part works as intended in all these hosts.
41+
42+
### Solution package must contain valid developer metadata
43+
44+
In the solution's manifest (managed in the `package-solution.json` file) there is a new section named `developer` with the following properties:
45+
46+
Attribute|Description|Mandatory
47+
---|---|---
48+
`name`|Name of the organization that built the application|Yes
49+
`websiteUrl`|URL of a website with additional information about the application|Yes
50+
`mpnId`|Microsoft Partner Network ID (more details on [MS Partner Network](https://docs.microsoft.com/partner-center/mpn-overview))|No (but highly recommended to provide it)
51+
`privacyUrl`|Privacy statement URL|Yes
52+
`termOfUseUrl`|Terms of use URL|Yes
53+
54+
Including this additional information allows you to clearly communicate information about your application towards your users and in the future should allow you to access additional usage data.
55+
56+
The developer information is displayed when installing web parts in Microsoft Teams. Information about the application and the developer that is displayed in the marketplace is managed separately in the marketplace.
57+
58+
### Web part metadata description text must briefly describe its functionality and value proposition
59+
60+
Ensure that your web part's description in the metadata is meaningful so that users understand what is your web part's purpose and what they can expect of it.
61+
62+
### Solution's description must clearly describe the different components included in the package
63+
64+
When submitting your package to the marketplace, be sure to clearly describe what different component (web parts, application customizers, etc.) are included in the package to manage user expectations and help them understand the impact of using your application.
65+
66+
### Don't use names of features in Teams and SharePoint in your solution's name
67+
68+
In your solution name don't use words matching features in Microsoft Teams or SharePoint, such as **Chat**, **Contacts**, **Calendar**, **Calls**, **Files**, **Meeting**, **Activity**, **Teams**, **Apps**, **Help**, **SharePoint**, **List**, **Page**, etc. as these names could be confused with the standard functionality in Teams and SharePoint.
69+
70+
### Don't use names of other Microsoft's products in your solution's name
71+
72+
Your solution will be rejected if its name contains a name of another Microsoft product, such as **Outlook**, **Word**, **Calendar**, **Tasks**, **Teams**, **Excel**, **PowerPoint**, **Visio**, etc.
73+
74+
### Don't use keywords that are related to Microsoft's products
75+
76+
Your solution must not use Microsoft Teams or SharePoint feature-specific keywords like - **Start meeting**, **Make call**, **Upload file**, **Start chat**, etc. These keywords are used in Microsoft's products and using them in your application could confuse users. If your application offers similar functionality, include the name of your name in the action, eg: **Start a Zoom Meeting**, **Upload file to Dropbox**, **Start Freshdesk chat**, etc.
77+
78+
### Naming your solution
79+
80+
If your solution is named after a common word, such as **Orders**, you will need to include your company name as well to clearly differentiate it from other solutions in the marketplace, eg. **Contoso Orders**.
81+
82+
### Don't include additional advertising in your app's description and screenshots
83+
84+
Make sure that your app's description, screenshots, text, and promotional images, describe only the app and don't contain any additional advertising.
85+
86+
### All properties exposed in the property pane should be functional
87+
88+
Properties exposed in the property pane of your web part should be meaningful. Changing their settings, should clearly change the behavior of your web part.
89+
90+
### Verify that the package file can be uploaded to App catalog without errors
91+
92+
Verify that the solution package can be uploaded to the App catalog in your tenant without any errors.
93+
94+
### Verify that the app can be deployed without errors
95+
96+
Verify that your application can be installed in a specific site but also that it can be deployed globally to all sites without any errors.
97+
98+
### Provide justification for any API requests
99+
100+
If your application requires additional API access (for example to communicate with Microsoft Graph), it should request them in the solution manifest. Additionally, prepare justification for the requested API access as we might ask for it when reviewing your app.
101+
102+
### All URLs displayed in the web part must be working
103+
104+
If your web part shows URLs, they must be pointing to existing resources and must not lead to non-existent or error pages.
105+
106+
### Application doesn't stop responding
107+
108+
When using your application, it shouldn't stop responding to users. If it needs to perform an operation that could take a moment to complete, it communicates this to the user.
109+
110+
### Is the solution complete
111+
112+
Does your solution contain all functionality as advertised in its description and screenshots?
113+
114+
### Is the application's UI finished
115+
116+
The first impression users will have of your application will be by looking at its UI. If it doesn't look polished, if some elements are misaligned, it uses many different fonts or some placeholder text has not been replaced by its final value, it could give them an impression that your application isn't finished and that they shouldn't use it.
117+
118+
> [!TIP]
119+
> To ensure seamless integration with SharePoint and Teams, we recommend that you use Office UI Fabric which is the design language for Microsoft 365. For more information, see the [design](../design/design-guidance-overview.md) section of this documentation.
120+
121+
### Application shouldn't prompt users without explicit interaction
122+
123+
Your application shouldn't prompt users without explicit interaction on their part.
124+
125+
### Verify that browsers don't block your pop-ups
126+
127+
If your application uses pop-ups, verify, that browsers with default settings don't block them interrupting the user flow.
128+
129+
### Correct first-launch experience
130+
131+
If possible, your application should work when launched for the first time. If it must be configured first, clearly communicate next steps to the user. If the configuration is complex or requires additional information, provide clear instructions to help users setup your application.
132+
133+
### Test syncing to Teams
134+
135+
If your application contains web parts that are exposed as Teams tabs or personal apps, verify that they can be deployed to teams using the **Sync to Teams** option in the App catalog without any errors. After syncing the configuration to Teams, verify that all web parts are exposed in the Teams' app catalog as intended, can be installed and work as expected.
136+
137+
### Verify that links with additional information are correct
138+
139+
Verify, that links such as **Terms of Service**, **Privacy Policy**, **About**, etc. are valid and point to correct pages.
140+
141+
### Acquire account or license
142+
143+
If your solution requires users to acquire an account or a license, is it clear how they can do it and how they can use the obtained information with your application?
144+
145+
### No demo content if free trial is included in the offering
146+
147+
If your offering includes a free trial of your application, then your application shouldn't include any demo content.
148+
149+
### Don't include malicious code
150+
151+
Solutions that contain malicious code, links to malicious websites or otherwise illegal resources will be rejected from publishing in the marketplace.
152+
153+
### Don't include vulnerable resource
154+
155+
Verify, that your code doesn't contain any vulnerabilities. If you're using third-party dependencies
156+
157+
### Ensure that your application doesn't use resources excessively
158+
159+
When testing your application, verify that it doesn't lead to noticeable or sustained increase in CPU usage, that it doesn't consume a lot of memory an that it doesn't lead to the browser becoming unresponsive. In general, your application should run well on an average desktop computer with internet access. Also, it shouldn't take longer than 10 seconds for your application to load.
160+
161+
## Recommended checks
162+
163+
Following checks are recommended to pass. While a failed check in this category won't prevent you from publishing your application in the marketplace, it might have a negative impact on end-user experience.
164+
165+
### Web part icon should be 64x64px with transparent background
166+
167+
We recommend that you use a 64x64px image with transparent background for your web part's icon. This will allow it to be correctly displayed in the different UI modes in SharePoint.
168+
169+
### Web part should have a title that's configurable in the property pane
170+
171+
We recommend that all web parts have a title that clearly describes the information the web part presents. Page authors should be able to adjust this title through property pane, so that if the web part is configurable, the title can correctly describe its contents.
172+
173+
> [!TIP]
174+
> You can easily add a configurable title to your web part by using the [WebPartTitle](https://pnp.github.io/sp-dev-fx-controls-react/controls/WebPartTitle/) PnP Reusable React control.
175+
176+
### Properly handle different themes
177+
178+
Your application should properly handle light- and dark-color themes. Switching between the different themes shouldn't have a negative effect on the usability of your application. While not supporting themes will not prevent you from publishing your app in the marketplace, it's strongly recommended that you support them to offer optimal user experience.
179+
180+
> [!TIP]
181+
> For more information about using themes in your application, see the [Use theme colors in your SharePoint Framework customizations](use-theme-colors-in-your-customizations.md) article.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
title: Publish SharePoint Framework applications to the marketplace - FAQ
3+
description: Frequently asked questions about publishing SharePoint Framework applications to the marketplace
4+
ms.date: 06/25/2020
5+
ms.prod: sharepoint
6+
localization_priority: Priority
7+
---
8+
9+
# Publish SharePoint Framework applications to the marketplace - FAQ
10+
11+
Following are some of the most frequently asked questions regarding publishing SharePoint Framework applications to the marketplace.
12+
13+
## Is it required to configure web parts to be isolated for publishing in the marketplace
14+
15+
No, it is not required to configure web parts to be isolated. It is fully up to you to decide if your web parts should be isolated or not and you can use either mode in the application you publish to the marketplace.
16+
17+
## Can I request additional API permissions for my solution
18+
19+
Yes, if your solution needs additional API permissions to work as intended, then you should request these permissions to be granted in your solution’s manifest. Please note, that the marketplace verification team could ask you to justify access to the permissions that you have requested when verifying your submission.
20+
21+
## Can I expose my web parts in Office add-ins
22+
23+
At this moment exposing SharePoint Framework web parts in Office add-ins is in preview and is not yet supported in solutions published in the marketplace.
24+
25+
## Can I include library components in my solution
26+
27+
Yes, library components are fully supported in solutions published to the marketplace.
28+
29+
## Can I use a custom Microsoft Teams manifest
30+
31+
When building SharePoint Framework web parts, you can choose to [expose them in SharePoint and Microsoft Teams as personal apps or tabs](https://docs.microsoft.com/sharepoint/dev/spfx/integrate-with-teams-introduction). To use your web parts in Teams you can either generate the manifest and the Teams solution package yourself or have the SharePoint Framework generate it for you. Creating the manifest manually gives you more flexibility and allows you to create multi-tab personal apps.
32+
33+
At this moment, the marketplace does not support embedding custom Teams manifests in SharePoint Framework packages. You can expose your web parts in Teams using the manifest auto-generated by SharePoint Framework.
34+
35+
If your web part requires configuration and you expose it as a personal Teams app, you need to implement a custom UI yourself to allow users to configure it.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
title: Publish SharePoint Framework applications to the marketplace
3+
description: Considerations for publishing SharePoint Framework applications to the marketplace
4+
ms.date: 06/25/2020
5+
ms.prod: sharepoint
6+
localization_priority: Priority
7+
---
8+
9+
# Publish SharePoint Framework applications to the marketplace
10+
11+
Publishing your SharePoint Framework solutions to [marketplace (also known as AppSource)](https://appsource.microsoft.com/) allows you to reach other organizations and let them easily install your application in their Microsoft 365 tenant. Following sections describe considerations that you should take into account before publishing your solutions to the marketplace.
12+
13+
* [App validation checklist](publish-to-marketplace-checklist.md)
14+
* [After publishing your app](publish-to-marketplace-after-publishing.md)
15+
* [Frequently asked questions](publish-to-marketplace-faq.md)

0 commit comments

Comments
 (0)