gpt4 book ai didi

windows-phone-8.1 - Windows Phone 8.1 HTML 公司应用程序 - 无法安装公司应用程序

转载 作者:行者123 更新时间:2023-12-02 05:34:22 26 4
gpt4 key购买 nike

我在尝试将 Windows Phone 8.1 的任何类型的 HTML 应用程序部署为公司应用程序时遇到问题。我开发的应用程序使用 Visual Studio Apache Cordova Apps 项目,但我还测试了手动创建的 .appx、空白应用程序(通用 Windows 8.1)和空白应用程序(Windows Phone) ...最后两个似乎实际上是相同的项目类型,通用项目只是在带有 Windows 8.1 项目的解决方案中。

当我尝试安装它时(通过电子邮件、网络和手机的本地文件夹进行了各种尝试),我总是收到下面详细说明的错误消息。

使用相同的工作流程安装 C# Windows Phone 8.1 Hub 应用程序项目可以完美运行。

<小时/>

错误消息

Can't install company app

There's a problem with this company app. Contact your company's support person for help

<小时/>

开发环境

  • Windows 8.1 企业版
  • 具有跨平台移动开发功能的 Visual Studio Enterprise 2015 > HTML/JavaScript (Apache Cordova) 更新 1
  • 具有适用于 Windows® Phone Private Enterprise 的 Symantec 代码签名证书的 Windows Enterprise 开发人员帐户
  • 开发者解锁了诺基亚 Lumia 635 或公司 MDM 注册了诺基亚 Lumia 635
<小时/>

工作项目类型

  • Hub 应用 (Windows Phone) [模板 > Visual C# > Windows > Windows 8 > Windows Phone]
  • 可能是任何其他 C# 项目类型(未经测试)
<小时/>

错误的项目类型

  • 空白应用程序 (Apache Cordova) [模板 > 其他语言 > TypeScript > Apache Cordova 应用程序]
  • 空白应用(通用 Windows 8.1)[模板 > 其他语言 > JavaScript > Windows > Windows 8 > 通用]
  • 空白应用 (Windows Phone) [模板 > 其他语言 > JavaScript > Windows > Windows 8 > Windows Phone]
  • 使用 Microsoft 的 AppxManifest.xml 基本模板和 MakePri.exe、MakeApp.exe 手动创建包含单个 HTML 文件的 appx
<小时/>

工作流程

  • 从 Visual Studio 创建相关项目类型
  • 更改 Phone.appxmanifest 文件,使发布者与 Symantec 证书主题相匹配,并拥有我们的 PhonePublisherID
  • 右键单击项目,“商店 > 创建应用程序包...”
  • 在向导中选择“否”进入 Windows 应用商店,以从不捆绑和构建发布版本
  • 使用 SignTool.exe 或 BuildMDILAPPX.ps1 使用我们的证书对软件包进行签名
  • 如果手机上尚未安装 AET.aetx 文件,请安装
  • 在手机上安装应用程序(通过电子邮件、网络或本地文件夹)
  • 错误

最佳答案

当答案出现时,即使不是很明显,也非常简单。微软表示

In Windows Phone 8.1 there is a known issue that required enterprise appx packages to have this [CodeIntegrity.cat] file.

Troubleshooting packaging, deployment, and query of Windows Store apps页面其实有一个小线索在 APPX_E_MISSING_REQUIRED_FILE 部分(尽管在部署签名的公司应用程序时您实际上并没有收到此错误代码,因此在这种情况下它并不是真正的线索)。它指出 -

The package isn't valid because it's missing a manifest or block map, or a code integrity file is present but a signature file is missing.

Ensure that the package isn't missing one or more of these required files:

\AppxManifest.xml

\AppxBlockMap.xml

If the package contains \AppxMetadata\CodeIntegrity.cat, it must also contain \AppxSignature.p7x.

它没有说的是(至少对我来说)反之亦然

如果您正在签署公司应用程序,则会插入 AppxSignature.p7x文件,那么您还必须有一个 \AppxMetadata\CodeIntegrity.cat文件在您的 .appx包裹。仅当您有 dll 时才会生成此信息在您的项目中以及在 Windows Phone 8.1 上,可以非常轻松地编写混合应用程序,而无需任何 dll s。

所以我创建了一个空白Class Library (Portable for Universal Windows 8.1)项目,建了一个空dll并将其插入通过构建 Cordova 应用程序创建的解决方案的根目录中。我还删除了对 WinJS 2.1 的依赖项,因为这可以阻止应用程序作为公司应用程序安装,并且 WinJS 文件已经在我的项目中(作为公司应用程序安装时,依赖项无法推送到设备,如果可以的话,它们可以它们是从 Windows 应用商店或 Visual Studio 部署的)。

选择“商店 > 创建应用程序包...”现在会生成 .appx文件带有 dll在根目录中,现在当我通过 BuildMDILAPPX.ps1 运行它时脚本a \AppxMetadata\CodeIntegrity.cat是为包创建的。

现在可以安装此软件包并成功安装。

关于windows-phone-8.1 - Windows Phone 8.1 HTML 公司应用程序 - 无法安装公司应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31837144/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com