Visual Studio 2015 + Cordova環境の証明書の有効期限は1年間となります。有効期限が切れた証明書を利用するとビルド時に 以下のようにAPPX0108のエラーが発生して失敗します。
1>------ ビルド開始: プロジェクト:CalendarMaker, 構成:Release Windows-x86 ------ 1> ------ ソース パッケージ ディレクトリからパッケージが正しくグローバルにインストールされていることを確認しています: C:¥Program Files (x86)¥Microsoft Visual Studio 14.0¥Common7¥IDE¥Extensions¥ApacheCordovaTools¥packages¥vs-tac 1> ------ ソースの package.json の名前: vs-tac 1> ------ ソースの package.json のバージョン: 1.0.42 1> ------ パッケージは既に正しいバージョンでグローバルにインストールされています。 1> ------ Cordova ツール 6.4.0 は既にインストールされています。 1> ------ Build Settings: 1> ------ Build Settings: 1> ------ platformConfigurationBldDir: -:¥---¥-------¥-------------¥CalendarMaker3¥CalendarMaker¥bld¥Windows-x86¥Release 1> ------ platformConfigurationBinDir: -:¥---¥-------¥-------------¥CalendarMaker3¥CalendarMaker¥bin¥Windows-x86¥Release 1> ------ buildCommand: build 1> ------ platform: Windows-x86 1> ------ cordovaPlatform: windows 1> ------ configuration: Release 1> ------ cordovaConfiguration: Release 1> ------ projectName: CalendarMaker 1> ------ projectSourceDir: -:¥---¥-------¥-------------¥CalendarMaker3¥CalendarMaker 1> ------ npmInstallDir: C:¥Users¥hogehoge¥AppData¥Roaming¥npm 1> ------ buildTarget: LocalMachine 1> ------ language: ja-JP 1> ------ プラットフォーム windows は既に存在しています 1> ------ ネイティブ ファイルを -:¥---¥-------¥-------------¥CalendarMaker3¥CalendarMaker¥res¥native¥windows から platforms¥windows にコピーしています 1> ------ -:¥---¥-------¥-------------¥CalendarMaker3¥CalendarMaker¥res¥native¥windows¥CordovaApp.pfx を platforms¥windows¥CordovaApp.pfx にコピーしました 1> ------ -:¥---¥-------¥-------------¥CalendarMaker3¥CalendarMaker¥res¥native¥windows¥Package.StoreAssociation.xml を platforms¥windows¥Package.StoreAssociation.xml にコピーしました 1> ------ platforms¥windows へのネイティブ ファイルのコピーが完了しました 1> ------ プラグインを更新しています 1> ------ 現在インストールされているプラグイン: 1> ------ 現在インストールされている依存プラグイン: 1> ------ 現在構成されているプラグイン: 1> ------ 準備中のプラットフォーム: windows 1> No scripts found for hook "before_build". 1> No scripts found for hook "before_prepare". 1> Checking config.xml for saved platforms that haven't been added to the project 1> Checking for any plugins added to the project that have not been installed in windows platform 1> No differences found between plugins added to project and installed in windows platform. Continuing... 1> Generating platform-specific config.xml from defaults for windows at -:¥---¥-------¥-------------¥CalendarMaker3¥CalendarMaker¥platforms¥windows¥config.xml 1> Merging project's config.xml into platform-specific windows config.xml 1> Found "merges/windows" folder. Copying its contents into the windows project. 1> Merging and updating files from [www, platforms¥windows¥platform_www, merges¥windows] to platforms¥windows¥www 1> copy platforms¥windows¥platform_www¥cordova-js-src¥confighelper.js platforms¥windows¥www¥cordova-js-src¥confighelper.js (updated file) 1> copy platforms¥windows¥platform_www¥cordova-js-src¥exec.js platforms¥windows¥www¥cordova-js-src¥exec.js (updated file) 1> copy platforms¥windows¥platform_www¥cordova-js-src¥platform.js platforms¥windows¥www¥cordova-js-src¥platform.js (updated file) 1> copy www¥index.html platforms¥windows¥www¥index.html (updated file) 1> copy www¥lib¥angular¥angular-csp.css platforms¥windows¥www¥lib¥angular¥angular-csp.css (updated file) 1> copy www¥lib¥angular¥angular.js platforms¥windows¥www¥lib¥angular¥angular.js (updated file) 1> copy www¥lib¥angular¥angular.min.js platforms¥windows¥www¥lib¥angular¥angular.min.js (updated file) 1> copy www¥lib¥onsen¥css¥font_awesome¥css¥font-awesome.css platforms¥windows¥www¥lib¥onsen¥css¥font_awesome¥css¥font-awesome.css (updated file) 1> copy www¥lib¥onsen¥css¥font_awesome¥css¥font-awesome.min.css platforms¥windows¥www¥lib¥onsen¥css¥font_awesome¥css¥font-awesome.min.css (updated file) 1> copy www¥lib¥onsen¥css¥ionicons¥css¥ionicons.css platforms¥windows¥www¥lib¥onsen¥css¥ionicons¥css¥ionicons.css (updated file) 1> copy www¥lib¥onsen¥css¥ionicons¥css¥ionicons.min.css platforms¥windows¥www¥lib¥onsen¥css¥ionicons¥css¥ionicons.min.css (updated file) 1> copy www¥lib¥onsen¥css¥onsen-css-components-blue-basic-theme.css platforms¥windows¥www¥lib¥onsen¥css¥onsen-css-components-blue-basic-theme.css (updated file) 1> copy www¥lib¥onsen¥css¥onsen-css-components-blue-theme.css platforms¥windows¥www¥lib¥onsen¥css¥onsen-css-components-blue-theme.css (updated file) 1> copy www¥lib¥onsen¥css¥onsen-css-components-dark-theme.css platforms¥windows¥www¥lib¥onsen¥css¥onsen-css-components-dark-theme.css (updated file) 1> copy www¥lib¥onsen¥css¥onsen-css-components-default.css platforms¥windows¥www¥lib¥onsen¥css¥onsen-css-components-default.css (updated file) 1> copy www¥lib¥onsen¥css¥onsen-css-components-purple-theme.css platforms¥windows¥www¥lib¥onsen¥css¥onsen-css-components-purple-theme.css (updated file) 1> copy www¥lib¥onsen¥css¥onsen-css-components-sunshine-theme.css platforms¥windows¥www¥lib¥onsen¥css¥onsen-css-components-sunshine-theme.css (updated file) 1> copy www¥lib¥onsen¥css¥onsen-css-components.css platforms¥windows¥www¥lib¥onsen¥css¥onsen-css-components.css (updated file) 1> copy www¥lib¥onsen¥css¥onsenui.css platforms¥windows¥www¥lib¥onsen¥css¥onsenui.css (updated file) 1> copy www¥lib¥onsen¥js¥onsenui.js platforms¥windows¥www¥lib¥onsen¥js¥onsenui.js (updated file) 1> copy www¥lib¥onsen¥js¥onsenui.min.js platforms¥windows¥www¥lib¥onsen¥js¥onsenui.min.js (updated file) 1> copy www¥scripts¥FileSaver.min.js platforms¥windows¥www¥scripts¥FileSaver.min.js (updated file) 1> copy www¥scripts¥_wabi_calendar.js platforms¥windows¥www¥scripts¥_wabi_calendar.js (updated file) 1> copy www¥scripts¥canvas-toBlob.js platforms¥windows¥www¥scripts¥canvas-toBlob.js (updated file) 1> copy www¥scripts¥index.js platforms¥windows¥www¥scripts¥index.js (updated file) 1> copy www¥scripts¥main.js platforms¥windows¥www¥scripts¥main.js (updated file) 1> copy merges¥windows¥scripts¥platformOverrides.js platforms¥windows¥www¥scripts¥platformOverrides.js (updated file) 1> copy www¥scripts¥wabi_calendar.js platforms¥windows¥www¥scripts¥wabi_calendar.js (updated file) 1> copy www¥scripts¥wabi_image_controler.js platforms¥windows¥www¥scripts¥wabi_image_controler.js (updated file) 1> copy www¥scripts¥wabi_popup.js platforms¥windows¥www¥scripts¥wabi_popup.js (updated file) 1> copy merges¥windows¥scripts¥winstore-jscompat.js platforms¥windows¥www¥scripts¥winstore-jscompat.js (updated file) 1> Updating icons and splash screens at platforms¥windows¥images 1> Prepared windows project successfully 1> No scripts found for hook "pre_package". 1> No scripts found for hook "after_prepare". 1> Checking config.xml for saved plugins that haven't been added to the project 1> ------ -:¥---¥-------¥-------------¥CalendarMaker3¥CalendarMaker¥bin¥Windows-x86¥Release¥Microsoft.AppxPackage.Metadata.Overrides.props を platforms¥windows¥Microsoft.AppxPackage.Metadata.Overrides.props にコピーしました 1> ------ ビルド中のプラットフォーム: windows 1> Release 1> ------ ビルドの構成オプション: --release 1> No scripts found for hook "before_compile". 1> Reading build config file: -:¥---¥-------¥-------------¥CalendarMaker3¥CalendarMaker¥build.json 1> Searching for available MSBuild versions... 1> Running command: C:¥WINDOWS¥system32¥reg.exe query HKLM¥SOFTWARE¥Microsoft¥MSBuild¥ToolsVersions¥15.0 /v MSBuildToolsPath 1> Running command: C:¥WINDOWS¥system32¥reg.exe query HKLM¥SOFTWARE¥Microsoft¥MSBuild¥ToolsVersions¥14.0 /v MSBuildToolsPath 1> Running command: C:¥WINDOWS¥system32¥reg.exe query HKLM¥SOFTWARE¥Microsoft¥MSBuild¥ToolsVersions¥12.0 /v MSBuildToolsPath 1> Running command: C:¥WINDOWS¥system32¥reg.exe query HKLM¥SOFTWARE¥Microsoft¥MSBuild¥ToolsVersions¥4.0 /v MSBuildToolsPath 1> Command finished with error code 0: C:¥WINDOWS¥system32¥reg.exe query,HKLM¥SOFTWARE¥Microsoft¥MSBuild¥ToolsVersions¥12.0,/v,MSBuildToolsPath 1> Found MSBuild v12.0 at C:¥Program Files (x86)¥MSBuild¥12.0¥bin¥ 1> Command finished with error code 0: C:¥WINDOWS¥system32¥reg.exe query,HKLM¥SOFTWARE¥Microsoft¥MSBuild¥ToolsVersions¥14.0,/v,MSBuildToolsPath 1> Found MSBuild v14.0 at C:¥Program Files (x86)¥MSBuild¥14.0¥bin¥ 1> Command finished with error code 1: C:¥WINDOWS¥system32¥reg.exe query,HKLM¥SOFTWARE¥Microsoft¥MSBuild¥ToolsVersions¥15.0,/v,MSBuildToolsPath 1> Command finished with error code 0: C:¥WINDOWS¥system32¥reg.exe query,HKLM¥SOFTWARE¥Microsoft¥MSBuild¥ToolsVersions¥4.0,/v,MSBuildToolsPath 1> Found MSBuild v4.0 at C:¥Windows¥Microsoft.NET¥Framework¥v4.0.30319¥ 1> Building project: -:¥---¥-------¥-------------¥CalendarMaker3¥CalendarMaker¥platforms¥windows¥CordovaApp.Windows10.jsproj 1> Configuration : release 1> Platform : arm 1> Running command: C:¥WINDOWS¥system32¥reg.exe query "HKLM¥SOFTWARE¥Microsoft¥Microsoft SDKs¥Windows" /s /v InstallationFolder /reg:32 1> Command finished with error code 0: C:¥WINDOWS¥system32¥reg.exe query,HKLM¥SOFTWARE¥Microsoft¥Microsoft SDKs¥Windows,/s,/v,InstallationFolder,/reg:32 1> Running command: "C:¥Program Files (x86)¥MSBuild¥14.0¥bin¥msbuild.exe" -:¥---¥-------¥-------------¥CalendarMaker3¥CalendarMaker¥platforms¥windows¥CordovaApp.Windows10.jsproj /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo /p:Configuration=release /p:Platform=arm /p:CordovaBundlePlatforms=arm 1> Patching 10 in prebuild event... 1> Injected base.js reference to the /www/index.html 1> Removing /( *)(<script¥s+(?:type="text¥/javascript"¥s+)?src="//Microsoft.WinJS.2.0/js/base.js">¥s*<¥/script>)(¥s*)/ from /www/index.html 1> Removing /( *)(<script¥s+(?:type="text¥/javascript"¥s+)?src="//Microsoft.Phone.WinJS.2.1/js/base.js">¥s*<¥/script>)(¥s*)/ from /www/index.html 1>C:¥Program Files (x86)¥MSBuild¥Microsoft¥VisualStudio¥v14.0¥AppxPackage¥Microsoft.AppXPackage.Targets(1930,5): warning APPX0108: �w�肳�ꂽ�ؖ����͗L����������Ă��܂��B�ؖ����̍X�V�̏ڍׂɂ��ẮAhttp://go.microsoft.com/fwlink/?LinkID=241478 ��Q�Ƃ��Ă��������B [-:¥---¥-------¥-------------¥CalendarMaker3¥CalendarMaker¥platforms¥windows¥CordovaApp.Windows10.jsproj] 1>C:¥Program Files (x86)¥MSBuild¥Microsoft¥VisualStudio¥v14.0¥AppxPackage¥Microsoft.AppXPackage.Targets(3522,5): error APPX0108: �w�肳�ꂽ�ؖ����͗L����������Ă��܂��B�ؖ����̍X�V�̏ڍׂɂ��ẮAhttp://go.microsoft.com/fwlink/?LinkID=241478 ��Q�Ƃ��Ă��������B [-:¥---¥-------¥-------------¥CalendarMaker3¥CalendarMaker¥platforms¥windows¥CordovaApp.Windows10.jsproj] 1> Command finished with error code 1: C:¥Program Files (x86)¥MSBuild¥14.0¥bin¥msbuild.exe -:¥---¥-------¥-------------¥CalendarMaker3¥CalendarMaker¥platforms¥windows¥CordovaApp.Windows10.jsproj,/clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal,/nologo,/p:Configuration=release,/p:Platform=arm,/p:CordovaBundlePlatforms=arm 1>MSBUILD : cordova-build error : Error: C:¥Program Files (x86)¥MSBuild¥14.0¥bin¥msbuild.exe: Command failed with exit code 1 1>MDAVSCLI : error C: ¥Program Files (x86)¥MSBuild¥14.0¥bin¥msbuild.exe: Command failed with exit code 1 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
APPX0108を回避するには、以下の3つの証明書を更新する必要があります。
証明書を更新する為には、「アプリ マニフェスト デザイナー」で更新するのが一般的のようですが、Cordova環境は 普通のmanifestファイルとは内容が異なるようで、「アプリ マニフェスト デザイナー」は起動してくれません。 「アプリ マニフェスト デザイナー」が使えないので、別の方法で証明書を更新してやる必要があります。
新規でCordovaを利用するプロジェクトを作成して、そのプロジェクトから新規で作成された証明書を 有効期限の切れたプロジェクトにコピーしてもってきます。そうする事で、そのプロジェクトの証明書は1年間有効なので、APPX0108を 回避してビルドを正常に通す事ができます。
プロジェクトの名前、作成先、ソリューション名を適当に決めて、「インストール済み」→「テンプレート」→「JavaScript」→「Apache Cordova Apps」→「空のアプリ(Apache Cordova)」を選択します。 「OK」を押下すると新規プロジェクトが作成されます。
ビルドの構成は、「Release」「Windows-AnyCP」「ローカルコンピュータ」を選択しておきます。 そして、「プロジェクト名」上で右クリック→「ストア」→「アプリパッケージの作成」を選択します
Windowsストアにアップロードするパッケージを作成するかを聞かれますので「いいえ」を選択してください。 「いいえ」を選択したら「次へ」を選択します。
そのままで良いので、「作成」を選択します。 ビルドが開始され、パッケージが作成されます。この過程で新しい証明書が作成されます。
パッケージの作成が完了します。「Windows アプリ認証キット」での検証 は必要ありませんので、「閉じる」を選択します。
この時点で証明書は新規作成されていますので、証明書の作成作業は完了です。
APPX0108が発生しているプロジェクトの以下の証明書を先ほど新しく作成したプロジェクトからコピーしてきます。(フォルダ構成は同じです)
コピーが完了したら、証明書の更新作業が完了です。
APPX0108は発生しなくなり、問題無くビルドが正常終了するようになりました。
お疲れさまでした。