UPDATE #1:
TL;DR: I want to target:
- Outlook 2016 or later
- Outlook on the Web
- Outlook 2016 for Mac
- Outlook for iOS
- Outlook for Android
I require Mailbox 1.5 in order to support calling the Outlook REST APIs and to support pinnable taskpanes.
Since pinnable taskpanes are only supported in Outlook 2016 for Windows, and because Mailbox 1.5 is currently only supported in Outlook on the Web, I will need to set Mailbox 1.5 in the <VersionOverrides>
sections of the manifest.
Based on the validation report:
Your add-in manifest includes Tablet Settings and Phone Settings, however
Mailbox 1.4 is used in the core of your manifest. This mailbox is not
supported in the Outlook Web App.
That sounds like it conflicts with what Office Add-in host and platform availability says. So, I have set Mailbox 1.3 in the base level of the manifest.
Here is my manifest:
<?xml version="1.0" encoding="UTF-8"?>
<OfficeApp
xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
xmlns:mailappor="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="MailApp">
<Id>3042ed3a-6ca5-4b37-b5e3-a591f5605332</Id>
<Version>1.0.1.0</Version>
<ProviderName>Leap Legal Software</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="LEAP Mail Manager" />
<Description DefaultValue="Save your mail to LEAP."/>
<IconUrl DefaultValue="https://outlookapp.leap365.com/images/icon-64.png" />
<HighResolutionIconUrl DefaultValue="https://outlookapp.leap365.com/images/icon-128.png" />
<SupportUrl DefaultValue="https://leap.force.com/us/s/" />
<AppDomains>
<!--LEAP Add-in Domains -->
<AppDomain>https://outlookapp-dev.leap365.com/</AppDomain>
<AppDomain>https://outlookapp-test.leap365.com/</AppDomain>
<AppDomain>https://outlookapp.leap365.com/</AppDomain>
<!--TitleX Add-in Domains -->
<AppDomain>https://outlookapp.dev.titlex.com.au/</AppDomain>
<AppDomain>https://outlookapp.test.titlex.com.au/</AppDomain>
<AppDomain>https://outlookapp.titlex.com.au/</AppDomain>
<!-- LEAP Auth -->
<AppDomain>https://auth-dev.leap.services/</AppDomain>
<AppDomain>https://auth-test.leap.services/</AppDomain>
<AppDomain>https://auth.leap.services/</AppDomain>
<!-- TitleX Auth -->
<AppDomain>https://login.dev.titlex.com.au/</AppDomain>
<AppDomain>https://login.test.titlex.com.au/</AppDomain>
<AppDomain>https://login.titlex.com.au/</AppDomain>
<AppDomain>https://login.dev.titlex.co.uk/</AppDomain>
<AppDomain>https://login.test.titlex.co.uk/</AppDomain>
<AppDomain>https://login.titlex.co.uk/</AppDomain>
<AppDomain>https://login.dev.titlex.com/</AppDomain>
<AppDomain>https://login.test.titlex.com/</AppDomain>
<AppDomain>https://login.titlex.com/</AppDomain>
</AppDomains>
<Hosts>
<Host Name="Mailbox" />
</Hosts>
<Requirements>
<Sets DefaultMinVersion="1.3">
<Set Name="Mailbox" MinVersion="1.3" />
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="https://outlookapp.leap365.com/index.html"/>
<RequestedHeight>280</RequestedHeight>
</DesktopSettings>
<TabletSettings>
<SourceLocation DefaultValue="https://outlookapp.leap365.com/index.html" />
<RequestedHeight>280</RequestedHeight>
</TabletSettings>
<PhoneSettings>
<SourceLocation DefaultValue="https://outlookapp.leap365.com/index.html" />
</PhoneSettings>
</Form>
</FormSettings>
<Permissions>ReadWriteMailbox</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Read" /></Rule>
<DisableEntityHighlighting>false</DisableEntityHighlighting>
<VersionOverrides
xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<Requirements>
<bt:Sets DefaultMinVersion="1.5">
<bt:Set Name="Mailbox" MinVersion="1.5" />
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="Leap.Functions.Url" />
<!-- Message Read -->
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<CustomTab id="TabLeap">
<Group id="Leap.Group1">
<Label resid="Leap.Group1Label" />
<Control xsi:type="Button" id="Leap.DefaultCommand">
<Label resid="Leap.DefaultCommand.Label" />
<Supertip>
<Title resid="Leap.DefaultCommand.Label" />
<Description resid="Leap.DefaultCommand.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Leap.Icon.16" />
<bt:Image size="32" resid="Leap.Icon.32" />
<bt:Image size="80" resid="Leap.Icon.80" />
<bt:Image size="20" resid="Leap.Icon.20" />
<bt:Image size="24" resid="Leap.Icon.24" />
<bt:Image size="40" resid="Leap.Icon.40" />
<bt:Image size="48" resid="Leap.Icon.48" />
<bt:Image size="64" resid="Leap.Icon.64" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Leap.Taskpane.Url" />
</Action>
</Control>
</Group>
<Label resid="Leap.TabLabel"/>
</CustomTab>
</ExtensionPoint>
<!-- Go to http://aka.ms/ExtensionPointsCommands to learn how to add more Extension Points: MessageRead, AppointmentOrganizer, AppointmentAttendee -->
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Leap.Icon.16" DefaultValue="https://outlookapp.leap365.com/images/icon-16.png"/>
<bt:Image id="Leap.Icon.32" DefaultValue="https://outlookapp.leap365.com/images/icon-32.png"/>
<bt:Image id="Leap.Icon.80" DefaultValue="https://outlookapp.leap365.com/images/icon-80.png"/>
<bt:Image id="Leap.Icon.20" DefaultValue="https://outlookapp.leap365.com/images/icon-20.png" />
<bt:Image id="Leap.Icon.24" DefaultValue="https://outlookapp.leap365.com/images/icon-24.png" />
<bt:Image id="Leap.Icon.25" DefaultValue="https://outlookapp.leap365.com/images/icon-25.png" />
<bt:Image id="Leap.Icon.40" DefaultValue="https://outlookapp.leap365.com/images/icon-40.png" />
<bt:Image id="Leap.Icon.48" DefaultValue="https://outlookapp.leap365.com/images/icon-48.png" />
<bt:Image id="Leap.Icon.64" DefaultValue="https://outlookapp.leap365.com/images/icon-64.png" />
</bt:Images>
<bt:Urls>
<bt:Url id="Leap.Taskpane.Url" DefaultValue="https://outlookapp.leap365.com/index.html" />
<bt:Url id="Leap.Functions.Url" DefaultValue="https://outlookapp.leap365.com/functions.html" />
</bt:Urls>
<bt:ShortStrings>
<bt:String id="Leap.TabLabel" DefaultValue="LEAP Mail Manager" />
<bt:String id="Leap.Group1Label" DefaultValue="LEAP" />
<bt:String id="Leap.DefaultCommand.Label" DefaultValue="LEAP Mail Manager" />
<bt:String id="Leap.DefaultCommand.Title" DefaultValue="LEAP Mail Manager" />
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="Leap.DefaultCommand.Tooltip" DefaultValue="Click to show the add-in." />
<bt:String id="Leap.Description" DefaultValue="Save your mail to LEAP." />
</bt:LongStrings>
</Resources>
<!-- NOTE: TO SUPPORT A PINNABLE TASKPANE AND MOBILEFORMFACTOR -->
<VersionOverrides
xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
<Requirements>
<bt:Sets DefaultMinVersion="1.5">
<bt:Set Name="Mailbox" MinVersion="1.5" />
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="Leap.Functions.Url" />
<!-- Message Read -->
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<CustomTab id="TabLeap">
<Group id="Leap.Group1">
<Label resid="Leap.Group1Label" />
<Control xsi:type="Button" id="Leap.DefaultCommand">
<Label resid="Leap.DefaultCommand.Label" />
<Supertip>
<Title resid="Leap.DefaultCommand.Label" />
<Description resid="Leap.DefaultCommand.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Leap.Icon.16" />
<bt:Image size="32" resid="Leap.Icon.32" />
<bt:Image size="80" resid="Leap.Icon.80" />
<bt:Image size="20" resid="Leap.Icon.20" />
<bt:Image size="24" resid="Leap.Icon.24" />
<bt:Image size="40" resid="Leap.Icon.40" />
<bt:Image size="48" resid="Leap.Icon.48" />
<bt:Image size="64" resid="Leap.Icon.64" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Leap.Taskpane.Url" />
<SupportsPinning>true</SupportsPinning>
</Action>
</Control>
<!-- Go to http://aka.ms/ButtonCommands to learn how to add more Controls: ExecuteFunction and Menu -->
</Group>
<Label resid="Leap.TabLabel"/>
</CustomTab>
</ExtensionPoint>
<!-- Go to http://aka.ms/ExtensionPointsCommands to learn how to add more Extension Points: MessageRead, AppointmentOrganizer, AppointmentAttendee -->
</DesktopFormFactor>
<!-- See https://docs.microsoft.com/en-us/outlook/add-ins/add-mobile-support -->
<MobileFormFactor>
<FunctionFile resid="Leap.Functions.Url" />
<ExtensionPoint xsi:type="MobileMessageReadCommandSurface">
<Group id="Leap.Group1">
<Label resid="Leap.Group1Label" />
<Control xsi:type="MobileButton" id="Leap.DefaultCommand">
<Label resid="Leap.DefaultCommand.Label" />
<Icon xsi:type="bt:MobileIconList">
<bt:Image size="25" scale="1" resid="Leap.Icon.25" />
<bt:Image size="25" scale="2" resid="Leap.Icon.25" />
<bt:Image size="25" scale="3" resid="Leap.Icon.25" />
<bt:Image size="32" scale="1" resid="Leap.Icon.32" />
<bt:Image size="32" scale="2" resid="Leap.Icon.32" />
<bt:Image size="32" scale="3" resid="Leap.Icon.32" />
<bt:Image size="48" scale="1" resid="Leap.Icon.48" />
<bt:Image size="48" scale="2" resid="Leap.Icon.48" />
<bt:Image size="48" scale="3" resid="Leap.Icon.48" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Leap.Taskpane.Url" />
</Action>
</Control>
</Group>
</ExtensionPoint>
</MobileFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Leap.Icon.16" DefaultValue="https://outlookapp.leap365.com/images/icon-16.png"/>
<bt:Image id="Leap.Icon.32" DefaultValue="https://outlookapp.leap365.com/images/icon-32.png"/>
<bt:Image id="Leap.Icon.80" DefaultValue="https://outlookapp.leap365.com/images/icon-80.png"/>
<bt:Image id="Leap.Icon.20" DefaultValue="https://outlookapp.leap365.com/images/icon-20.png" />
<bt:Image id="Leap.Icon.24" DefaultValue="https://outlookapp.leap365.com/images/icon-24.png" />
<bt:Image id="Leap.Icon.25" DefaultValue="https://outlookapp.leap365.com/images/icon-25.png" />
<bt:Image id="Leap.Icon.40" DefaultValue="https://outlookapp.leap365.com/images/icon-40.png" />
<bt:Image id="Leap.Icon.48" DefaultValue="https://outlookapp.leap365.com/images/icon-48.png" />
<bt:Image id="Leap.Icon.64" DefaultValue="https://outlookapp.leap365.com/images/icon-64.png" />
</bt:Images>
<bt:Urls>
<bt:Url id="Leap.Taskpane.Url" DefaultValue="https://outlookapp.leap365.com/index.html" />
<bt:Url id="Leap.Functions.Url" DefaultValue="https://outlookapp.leap365.com/functions.html" />
</bt:Urls>
<bt:ShortStrings>
<bt:String id="Leap.TabLabel" DefaultValue="LEAP Mail Manager" />
<bt:String id="Leap.Group1Label" DefaultValue="LEAP" />
<bt:String id="Leap.DefaultCommand.Label" DefaultValue="LEAP Mail Manager" />
<bt:String id="Leap.DefaultCommand.Title" DefaultValue="LEAP Mail Manager" />
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="Leap.DefaultCommand.Tooltip" DefaultValue="Click to show the add-in." />
<bt:String id="Leap.Description" DefaultValue="Save your mail to LEAP." />
</bt:LongStrings>
</Resources>
</VersionOverrides>
</VersionOverrides>
</OfficeApp>
Here is the validate-office-addin result for the above add-in manifest:
Calling validation service. This might take a moment...
-------------------------------------
Validation: Passed
Based on the requirements specified in your manifest, your add-in can run on the following platforms; your add-in will be tested on these platforms when you submit it to the Office Store:
- Outlook 2013 Service Pack 1 or later
- Outlook 2016 or later
- Outlook on the Web
- Outlook 2016 for Mac
- Outlook for iOS
- Outlook for Android
Important: This analysis is based on the requirements specified in your manifest and does not account for any runtime JavaScript calls within your add-in. For information about which API sets and features are supported on each platform, see Office Add-in host and platfo
rm availability. (https://dev.office.com/add-in-availability).
*This does not include mobile apps. You can opt-in to support mobile apps when you submit your add-in.
-------------------------------------
However, the validation report from Microsoft says:
Your add-in is not working in Outlook 2016, Outlook 2013, Outlook for Mac,
the Outlook app on iOS or in the Outlook app on Android. Your add-in is not
available to be inserted in the above platforms. If you do not support 2013
SP1 because you are using an API only available in 2016/Online, you must put
these apis in the requirements tag in your manifest. If you are not using an
API only available in 2016/Online, then you must support 2013 SP1.
I have side-loaded the add-in from OWA.
I can see the add-in on:
- Outlook 2016 or later (Windows)
- Outlook on the Web (OWA)
I have yet to test if the add-in appears on Outlook 2016 for Mac.
For the life of me I can't seem to get the add-in to show up on:
- Outlook 2013 Service Pack 1 or later
- Outlook for iOS
- Outlook for Android
I don't understand why. Am I missing something in the manifest? Have I perhaps misconfigured the manifest? Please help.