WP8 BUG:从公司中心安装时代码签名身份不匹配

时间:2014-05-20 15:43:24

标签: c# windows-phone-8 windows-phone install

我发现了一个Windows Phone错误。

情况如下:

  • 一个设备注册了2个公司账户:" Foo"和" Bar"。
  • 我有一个由" Bar"
  • 签名的XAP文件
  • 如果从Internet Explorer,我提供了一个来自网页的简单链接的XAP文件,我会得到一个正确的对话框,说明"您是否要从" Bar"安装应用程序?&# 34;
  • 如果我使用由" Foo"签名的公司中心,那么,当我从公司中心提供XAP文件URL以调用InstallationManager.AddPackageAsync方法来安装应用程序时,我收到一条消息说明"你想安装#34; Foo"?" ...
  • 的应用程序

......这是错的,因为" Foo"尚未签署我即将安装的XAP文件。

微软是否已经知道这个错误?有办法解决它吗?

1 个答案:

答案 0 :(得分:1)

公司中心是一个像其他人一样的应用程序,它本身必须由公司证书签署才能在移动设备上部署。

   InstallationManager.AddPackageAsync(String, Uri) 

这将在移动设备上安装远程.xap文件。

   InstallationManager.FindPackagesForCurrentPublisher

将允许我们从当前应用程序(即Hub应用程序)的SAME Publisher恢复手机上安装的所有软件包。所以要注意,我们不再谈论用于识别软件包的证书,而只是存储在WMAppManifest.xml文件中的Publisher ID。确保您的包装有正确的Guid。您可以在Windows Phone开发人员中心的帐户信息中找到此标识符。

此方法返回IEnumerable。 Package类的好处是提供了两种有用的方法:

  • GetThumbnailToken以检索应用程序缩略图。
  • 启动直接从公司中心启动应用程序。

    InstallationManager.FindPackagesForCurrentPublisher()

此方法返回手机上安装的所有应用程序包(包对象),其发布者ID与调用此方法的公司中心应用程序相同。 因此,如果您的应用程序具有与公司中心不同的发布者ID,则该公司中心没有理由显示此类应用程序。因此,可以通过集线器应用程序将发布者ID更改为集线器应用程序的ID。或者通过集线器安装的所有应用程序都具有与集线器相同的发布者ID。