13

Windows Phone 8.1 用のあらゆる種類の HTML アプリケーションを会社のアプリとして展開しようとすると問題が発生します。私が開発したアプリケーションは、Visual Studio Apache Cordova Apps プロジェクトを使用していますが、手動で作成.appxした空のアプリ (ユニバーサル Windows 8.1) と空のアプリ (Windows Phone) もテストしました...最後の 2 つは効果的に見えるようです同じプロジェクトの種類である場合、ユニバーサルなものは、Windows 8.1 プロジェクトも含まれるソリューションに含まれています。

インストールしようとすると、以下に詳述するエラーメッセージが常に表示されます(電子メール、Web、および電話のローカルフォルダーからさまざまに試しました.

C# Windows Phone 8.1 Hub アプリ プロジェクトのインストールは、同じワークフローを使用して完全に機能します。


エラーメッセージ

会社のアプリをインストールできません

この会社のアプリに問題があります。会社のサポート担当者に連絡してください


開発環境

  • Windows 8.1 エンタープライズ
  • Visual Studio Enterprise 2015 with Cross Platform Mobile Development > HTML/JavaScript (Apache Cordova) Update 1
  • Windows® Phone Private Enterprise 用の Symantec Code Signing Certificate を持つ Windows Enterprise Developer アカウント
  • 開発者ロック解除済み Nokia Lumia 635 または企業 MDM 登録済み Nokia 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 証明書Subjectと一致するようにし、PhonePublisherID を持つようにします。
  • プロジェクトを右クリックし、「Store > Create App Packages...」
  • リリース バージョンをバンドルおよびビルドしないように、ウィザードで Windows ストアに [いいえ] を選択します。
  • SignTool.exe または BuildMDILAPPX.ps1 を使用して、証明書を使用してパッケージに署名します。
  • AET.aetx ファイルを電話にまだインストールしていない場合はインストールします。
  • 電話にアプリケーションをインストールします (電子メール、Web、またはローカル フォルダーから)
  • エラー
4

1 に答える 1

5

答えは、非常に明白ではないにしても、非常に単純です。マイクロソフトは言った

Windows Phone 8.1 には、エンタープライズ appx パッケージにこの [CodeIntegrity.cat] ファイルが必要であるという既知の問題があります。

実際には、Windows ストア アプリのパッケージ化、展開、およびクエリのトラブルシューティングに関するページに小さな手がかりがあります(APPX_E_MISSING_REQUIRED_FILEただし、署名された企業アプリを展開するときに実際にこのエラー コードを取得することはないため、実際には手がかりにはなりません)。この場合)。それは述べています -

マニフェストまたはブロック マップがないか、コード整合性ファイルは存在するが署名ファイルがないため、パッケージは有効ではありません。

パッケージに次の必要なファイルが 1 つ以上欠けていないことを確認します。

\AppxManifest.xml

\AppxBlockMap.xml

パッケージに \AppxMetadata\CodeIntegrity.cat が含まれている場合は、\AppxSignature.p7x も含まれている必要があります。

それが言っていないことは、(少なくとも私にとっては)逆もまた真であるということです

ファイルを挿入する企業アプリに署名している場合は、パッケージにもファイルAppxSignature.p7xが必要です。これは、プロジェクトに がある場合にのみ生成されます。Windows Phone 8.1 では、ハイブリッド アプリは を必要とせずに非常に簡単に作成できます。\AppxMetadata\CodeIntegrity.cat.appxdlldll

そこで、空のプロジェクトを作成し、空のClass Library (Portable for Universal Windows 8.1)プロジェクトをビルドしdllて、Cordova アプリのビルドによって作成されたソリューションのルートに挿入しました。WinJS 2.1 への依存関係も削除しました。これにより、アプリが会社のアプリとしてインストールされなくなり、WinJS ファイルが既にプロジェクトに含まれているためです (会社のアプリとしてインストールする場合、依存関係をデバイスにプッシュすることはできません。それらは Windows ストアまたは Visual Studio から展開されています)。

「Store > Create App Packages...」を選択すると、ルートに.appxa を持つファイルが生成され、スクリプトを実行すると、パッケージ用に a が作成されます。dllBuildMDILAPPX.ps1\AppxMetadata\CodeIntegrity.cat

このパッケージのインストールが機能し、正常にインストールされるようになりました。

于 2015-08-25T13:06:33.297 に答える