Teams and Outlook install
TL;DR: Teams and Outlook share one Teams manifest. RSPFx scaffolds it, bundles it in the .sppkg, and you sync it from the app catalog to Teams.
RSPFx scaffolds teams/manifest.json plus two icons. rspfx package puts them under ClientSideAssets/teams/ in the zip. SharePoint syncs the app to Teams and, with personal scope, to new Outlook.
What scaffold creates
teams/manifest.json uses Teams schema 1.13:
idequals the SharePoint componentid.packageNamelikecom.contoso.<name>.staticTabswithpersonalscope,entityIdequals componentid, andcontentUrlwithTeamsLogon.aspx?SPFX=true&dest=teamshostedapp.aspx%3F...%26componentId=<id>.configurableTabswithteamscope andcanUpdateConfiguration: true.validDomainsincludes*.sharepoint.com,*.office.com,*.secure.aadcdn.microsoftonline-p.com,*.login.microsoftonline.com,spoprod-a.akamaihd.net.
Icons: teams/<id>_color.png at 192 by 192 and teams/<id>_outline.png at 32 by 32. Schema is at https://developer.microsoft.com/json-schemas/teams/v1.13/MicrosoftTeams.schema.json.
Keep id and staticTabs[0].entityId equal to your web part id. If you regenerate the web part id, update teams/manifest.json.
For reliable Outlook, add *.outlook.office.com to validDomains by hand. Scaffold omits it.
Comparison
| Area | Official SPFx plus Teams | RSPFx |
|---|---|---|
| Teams manifest | manual or yo | scaffolded - id and entityId synced |
| Packaging | gulp package-solution | rspfx package - same |
| Sync | catalog Sync to Teams | same |
| Outlook | personal scope | same |
Troubleshoot
| Symptom | Fix |
|---|---|
| App not in Teams | Sync to Teams not clicked or teams/ missing at package time |
Invalid Teams manifest | check id equals component id and validDomains has *.sharepoint.com |
| App in Teams but not Outlook | wait for sync, check personal scope, add *.outlook.office.com |
| White screen in Teams or Outlook | contentUrl must use %26 not & |
For pipeline details, see ../../reference/architecture.md.