UPDATE #2:
I have created OfficeDev/office-js#124 and OfficeDev/office-js-docs#1415 in order for someone at Microsoft to respond to this problem. Using Microsoft Support, both online and in the Outlook for iOS app, have proved fruitless.
UPDATE #1:
It appears that downgrading the requirement set at the base level of the manifest from Mailbox 1.5 to Mailbox 1.4 gets my side-loaded add-in to appear on my iOS device. This looks like a bug!
However, doing this broadens the list of supported platforms to include Office 2013. Based on the answer to another of my questions, this means I also need to set Mailbox 1.4 at the VersionOverridesV1_0 level.
I have still set Mailbox 1.5 at the VersionOverridesV1_1 level, so that there is support for calling the Outlook REST APIs and to support pinnable taskpanes.
Will my add-in, that uses APIs added in Mailbox 1.5, work as I expect on Outlook 2013?
(Specifically, I am using the new Office.context.mailbox.getCallbackTokenAsync() method to get a REST token.)
I am trying to get my add-in to appear on my iOS device so that I can test it. The device is an iPhone 6s with iOS 11.0.3 installed.
I want to target:
- Outlook 2016 or later
- Outlook on the Web
- Outlook 2016 for Mac
- Outlook for iOS
I require Mailbox 1.5 in order to support calling the Outlook REST APIs and to support pinnable taskpanes.
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>40ca534e-480c-444f-85bf-9f7051f23fe2</Id>
<Version>1.0.2.0</Version>
<ProviderName>TitleX E-Conveyancing Pty Ltd</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="[TEST] TitleX" />
<Description DefaultValue="Save your mail to TitleX."/>
<IconUrl DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-64.png" />
<HighResolutionIconUrl DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-128.png" />
<SupportUrl DefaultValue="https://community.titlex.com.au/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.5">
<Set Name="Mailbox" />
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="https://outlookapp.test.titlex.com.au/titlex.html"/>
<RequestedHeight>280</RequestedHeight>
</DesktopSettings>
</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" />
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="TitleX.Functions.Url" />
<!-- Message Read -->
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<OfficeTab id="TabDefault">
<Group id="TitleX.Group1">
<Label resid="TitleX.Group1Label" />
<Control xsi:type="Button" id="TitleX.DefaultCommand">
<Label resid="TitleX.DefaultCommand.Label" />
<Supertip>
<Title resid="TitleX.DefaultCommand.Label" />
<Description resid="TitleX.DefaultCommand.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="TitleX.Icon.16" />
<bt:Image size="32" resid="TitleX.Icon.32" />
<bt:Image size="80" resid="TitleX.Icon.80" />
<bt:Image size="20" resid="TitleX.Icon.20" />
<bt:Image size="24" resid="TitleX.Icon.24" />
<bt:Image size="40" resid="TitleX.Icon.40" />
<bt:Image size="48" resid="TitleX.Icon.48" />
<bt:Image size="64" resid="TitleX.Icon.64" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="TitleX.Taskpane.Url" />
</Action>
</Control>
</Group>
<!--<Label resid="Leap.TabLabel"/>-->
</OfficeTab>
</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="TitleX.Icon.16" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-16.png"/>
<bt:Image id="TitleX.Icon.32" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-32.png"/>
<bt:Image id="TitleX.Icon.80" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-80.png"/>
<bt:Image id="TitleX.Icon.20" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-20.png" />
<bt:Image id="TitleX.Icon.24" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-24.png" />
<bt:Image id="TitleX.Icon.25" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-25.png" />
<bt:Image id="TitleX.Icon.40" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-40.png" />
<bt:Image id="TitleX.Icon.48" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-48.png" />
<bt:Image id="TitleX.Icon.64" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-64.png" />
</bt:Images>
<bt:Urls>
<bt:Url id="TitleX.Taskpane.Url" DefaultValue="https://outlookapp.test.titlex.com.au/titlex.html" />
<bt:Url id="TitleX.Functions.Url" DefaultValue="https://outlookapp.test.titlex.com.au/functions.html" />
</bt:Urls>
<bt:ShortStrings>
<bt:String id="TitleX.TabLabel" DefaultValue="[TEST] TitleX" />
<bt:String id="TitleX.Group1Label" DefaultValue="TitleX" />
<bt:String id="TitleX.DefaultCommand.Label" DefaultValue="[TEST] TitleX Mail Manager" />
<bt:String id="TitleX.DefaultCommand.Title" DefaultValue="[TEST] TitleX" />
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="TitleX.DefaultCommand.Tooltip" DefaultValue="Click to show the add-in." />
<bt:String id="TitleX.Description" DefaultValue="Save your mail to TitleX." />
</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" />
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="TitleX.Functions.Url" />
<!-- Message Read -->
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<OfficeTab id="TabDefault">
<Group id="TitleX.Group1">
<Label resid="TitleX.Group1Label" />
<Control xsi:type="Button" id="TitleX.DefaultCommand">
<Label resid="TitleX.DefaultCommand.Label" />
<Supertip>
<Title resid="TitleX.DefaultCommand.Label" />
<Description resid="TitleX.DefaultCommand.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="TitleX.Icon.16" />
<bt:Image size="32" resid="TitleX.Icon.32" />
<bt:Image size="80" resid="TitleX.Icon.80" />
<bt:Image size="20" resid="TitleX.Icon.20" />
<bt:Image size="24" resid="TitleX.Icon.24" />
<bt:Image size="40" resid="TitleX.Icon.40" />
<bt:Image size="48" resid="TitleX.Icon.48" />
<bt:Image size="64" resid="TitleX.Icon.64" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="TitleX.Taskpane.Url" />
<SupportsPinning>true</SupportsPinning>
</Action>
</Control>
<!-- Go to http://aka.ms/ButtonCommands to learn how to add more Controls: ExecuteFunction and Menu -->
</Group>
</OfficeTab>
</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="TitleX.Functions.Url" />
<ExtensionPoint xsi:type="MobileMessageReadCommandSurface">
<Group id="TitleX.Group1">
<Label resid="TitleX.Group1Label" />
<Control xsi:type="MobileButton" id="TitleX.DefaultCommand">
<Label resid="TitleX.DefaultCommand.Label" />
<Icon xsi:type="bt:MobileIconList">
<bt:Image size="25" scale="1" resid="TitleX.Icon.25" />
<bt:Image size="25" scale="2" resid="TitleX.Icon.25" />
<bt:Image size="25" scale="3" resid="TitleX.Icon.25" />
<bt:Image size="32" scale="1" resid="TitleX.Icon.32" />
<bt:Image size="32" scale="2" resid="TitleX.Icon.32" />
<bt:Image size="32" scale="3" resid="TitleX.Icon.32" />
<bt:Image size="48" scale="1" resid="TitleX.Icon.48" />
<bt:Image size="48" scale="2" resid="TitleX.Icon.48" />
<bt:Image size="48" scale="3" resid="TitleX.Icon.48" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="TitleX.Taskpane.Url" />
</Action>
</Control>
</Group>
</ExtensionPoint>
</MobileFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="TitleX.Icon.16" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-16.png"/>
<bt:Image id="TitleX.Icon.32" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-32.png"/>
<bt:Image id="TitleX.Icon.80" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-80.png"/>
<bt:Image id="TitleX.Icon.20" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-20.png" />
<bt:Image id="TitleX.Icon.24" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-24.png" />
<bt:Image id="TitleX.Icon.25" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-25.png" />
<bt:Image id="TitleX.Icon.40" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-40.png" />
<bt:Image id="TitleX.Icon.48" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-48.png" />
<bt:Image id="TitleX.Icon.64" DefaultValue="https://outlookapp.test.titlex.com.au/images/icon-64.png" />
</bt:Images>
<bt:Urls>
<bt:Url id="TitleX.Taskpane.Url" DefaultValue="https://outlookapp.test.titlex.com.au/titlex.html" />
<bt:Url id="TitleX.Functions.Url" DefaultValue="https://outlookapp.test.titlex.com.au/functions.html" />
</bt:Urls>
<bt:ShortStrings>
<bt:String id="TitleX.TabLabel" DefaultValue="[TEST] TitleX" />
<bt:String id="TitleX.Group1Label" DefaultValue="TitleX" />
<bt:String id="TitleX.DefaultCommand.Label" DefaultValue="[TEST] TitleX Mail Manager" />
<bt:String id="TitleX.DefaultCommand.Title" DefaultValue="[TEST] TitleX" />
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="TitleX.DefaultCommand.Tooltip" DefaultValue="Click to show the add-in." />
<bt:String id="TitleX.Description" DefaultValue="Save your mail to TitleX." />
</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 2016 or later
- Outlook 2016 for Mac
- Outlook for iOS
- Outlook on the Web
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.
-------------------------------------
Looking at the documentation for Office Add-in host and platform availability for Outlook, I see that Mailbox 1.5 is supported on all platforms that I want to target.
So, everything looks to be aligned, but my add-in won't appear on my iOS device!
If, however, I downgrade the requirement set from 1.5 to 1.4, then side-load again, the add-in appears. Obviously, that's contrary to what I expect.
Question: why does specifying the Mailbox 1.5 requirement set on my manifest make it so that my side-loaded add-in does NOT appear on my iOS device? Please help.
TabletSettings
andPhoneSettings
underForm
makes no difference - downgrading from Mailbox 1.5 to Mailbox 1.4 is the only change that makes the side-loaded add-in appear on my iOS device. – Sameer SinghOutlook for iOS 2.74.1
, which does not show my side-loaded add-in. I see there's an update - I will apply it and try again, and will report back. – Sameer SinghOutlook for iOS 2.74.2
has no effect. :( – Sameer Singh