Windows Phone 8.1 HTML Company Apps-не удается установить приложение компании

у меня возникли проблемы с развертыванием любого приложения HTML для Windows Phone 8.1 в качестве приложения компании. Приложение, которое я разработал, использует проект Visual Studio Apache Cordova Apps, но я также протестировал созданный вручную .appx, пустое приложение (универсальная Windows 8.1) и пустое приложение (Windows Phone)... последние два, по-видимому, являются одним и тем же типом проекта, Универсальный-только в решении с проектом Windows 8.1.

Я всегда получаю сообщение об ошибке подробно описано ниже, когда я пытаюсь установить его (пробовал по-разному из электронной почты, интернета и локальных папок телефона.

установка проекта приложения-концентратора Windows Phone 8.1 c# отлично работает с использованием того же рабочего процесса.


Сообщение Об Ошибке

не удается установить приложение компании

есть проблема с этим приложением компании. Обратитесь в службу поддержки вашей компании за помощь


Dev Среды

  • Windows 8.1 Enterprise
  • Visual Studio Enterprise 2015 с кросс-платформенной мобильной разработкой > HTML / JavaScript (Apache Cordova) обновление 1
  • учетная запись разработчика Windows Enterprise с сертификатом подписи кода Symantec для Windows® Phone Private Enterprise
  • разработчик разблокировал Nokia Lumia 635 или компания MDM зарегистрировала Nokia Lumia 635

Рабочий Проект Типы

  • Приложение-Концентратор (Windows Phone) [Шаблоны > Visual C# > Windows > Windows 8 > Windows Phone]
  • предположительно любой другой тип проекта C# (не протестирован)

Типы Ошибочных Проектов

  • Пустое Приложение (Apache Cordova) [Шаблоны > Другие Языки > TypeScript > Apache Cordova Apps]
  • Пустое Приложение (Универсальная Windows 8.1) [Шаблоны > Другие Языки > JavaScript > Windows > Windows 8 > Universal]
  • Пустое Приложение (Windows Телефоне) [Шаблоны > Другие Языки > Яваскрипт > Окна > Для Windows 8 > Windows Телефоне]
  • вручную создал appx с одним HTML-файлом, используя AppxManifest.базовый шаблон xml от Microsoft и MakePri.ехе, MakeApp в.exe

процесс

  • создайте соответствующий тип проекта из Visual Studio
  • изменить телефона.файл appxmanifest для соответствия издателю сертификат Symantec Subject и иметь наш PhonePublisherID
  • щелкните правой кнопкой мыши проект, "Store" > " создать пакеты приложения..."
  • пройдите через Мастер, выбрав " нет " в Windows Store, чтобы никогда не связывать и не создавать версию выпуска
  • используйте любой SignTool.exe или BuildMDILAPPX.ps1 подписать пакет с помощью нашего сертификата
  • установите AET.файл aetx на телефоне, если он еще не был
  • установить приложение на телефон (из электронной почты, веб-или локальной папки)

1 ответов


ответ, когда он пришел, довольно прост, если не очевиден. Microsoft заявила

в Windows Phone 8.1 существует известная проблема, которая требует, чтобы пакеты enterprise appx имели это [CodeIntegrity.Cat] файл.

на самом деле есть небольшая подсказка на странице Устранение неполадок упаковки, развертывания и запроса приложений Магазина Windows в разделе APPX_E_MISSING_REQUIRED_FILE (хотя вы на самом деле не сделать эту ошибку, когда развертывание подписанного приложения компании, и поэтому в этом случае это не ключ). В нем говорится -

пакет недопустим, так как в нем отсутствует манифест или карта блоков, либо присутствует файл целостности кода, но отсутствует файл подписи.

убедитесь, что в пакете не отсутствует один или несколько из этих необходимых файлов:

\AppxManifest.в XML

\AppxBlockMap.в XML

если пакет содержит \AppxMetadata\CodeIntegrity.cat, он также должен содержать \AppxSignature.p7x.

чего он не говорит, так это (по крайней мере для меня) наоборот.

если вы подписываете приложение компании, которое вставляет AppxSignature.p7x файл, тогда вы также должны иметь в своем . Это генерируется только если у вас есть dll в вашем проекте и на Windows Phone 8.1 гибридные приложения могут быть написаны довольно легко никогда не нуждаясь в каких-либо dlls.

поэтому я создал пустой Class Library (Portable for Universal Windows 8.1) проект, построенный пустой dll и вставил его в корень решения, созданного путем создания приложения Cordova. Я также удалил зависимость от WinJS 2.1, поскольку это может остановить установку приложения в качестве приложения компании, а файлы WinJS уже находятся в моем проекте (зависимости не могут быть перенесены на устройство при установке в качестве приложения компании, они могут быть развернуты из магазина Windows или из Visual Studio).

Выберите "Store" > " Создать Пакеты Приложения..."теперь производит С dll в корне и теперь, когда я запускаю его через BuildMDILAPPX.ps1 скрипт a \AppxMetadata\CodeIntegrity.cat создается для пакета.

установка этого пакета теперь работает и устанавливается успешно.