iOS 上 OfficeJS Outlook 加载项的旁加载问题

Sideloading Issue with OfficeJS Outlook Add-in on iOS

更新#2:

我创建了 OfficeDev/office-js#124 and OfficeDev/office-js-docs#1415 以便 Microsoft 的 某人 能够响应此问题。使用 Microsoft 支持,在线和在 Outlook 中使用 iOS 应用程序,都没有结果。

更新#1:

看来,将清单基本级别的要求集从 Mailbox 1.5 降级到 Mailbox 1.4 会增加我的负担加载项出现在我的 iOS 设备上。 This looks like a bug!

但是,这样做会扩大支持平台的列表以包括 Office 2013。,这意味着我 需要设置 Mailbox 1.4 VersionOverridesV1_0 级别。

我仍然在VersionOverridesV1_1级别设置了Mailbox 1.5,所以支持调用Outlook REST API 并支持固定任务窗格。

使用 Mailbox 1.5 中添加的 API 的加载项能否在 Outlook 2013 上正常运行?

(具体来说,我正在使用新的 Office.context.mailbox.getCallbackTokenAsync() 方法来获取 REST 令牌。)


我正在尝试让我的加载项出现在我的 iOS 设备上,以便我可以对其进行测试。该设备是安装了 iOS 11.0.3 的 iPhone 6s。

我要定位:

我需要 Mailbox 1.5 才能支持 calling the Outlook REST APIs and to support pinnable taskpanes

这是我的清单:

<?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>

这是上述加载项清单的 validate-office-addin 结果:

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.
-------------------------------------

查看 Office Add-in host and platform availability for Outlook 的文档,我发现我想要定位的所有平台都支持 Mailbox 1.5。

所以,一切看起来都对齐了,但我的加载项不会出现在我的 iOS 设备上!

但是,如果我将要求集从 1.5 降级到 1.4,然后再次旁加载,加载项就会出现。显然,这与我的预期相反。

问题:为什么在我的清单上指定 Mailbox 1.5 要求集使得我的旁加载插件不会出现在我的 iOS 设备上?请帮忙

截至 2018 年 6 月 26 日,Outlook for iOS 2.82.0 现在可以正确地旁加载我的加载项以进行测试。