Windows 8 – Corriger l’erreur « Bytecode generation » du Windows App Certification Kit

Lorsque vous installez le SDK Windows 8, vous installez pas mal d’outils dont Visual Studio Express 2012 ou Blend. Vous avez aussi un autre outil, le « Windows App Certification Kit ». Celui permet de tester votre application avant soumission pour le store. C’est une étape qui est faite automatiquement lorsque votre application est vérifiée avant la mise sur le store, donc autant vous assurer que cela fonctionne en local avant.

Le « Windows App Certification Kit » (alias WACK) va vérifier pas mal de choses, notamment si votre application s’ouvre bien dans le temps imparti (5 secondes) et se ferme bien en moins de 2 secondes par exemple.

Utiliser le Windows App Certification Kit (WACK)

Pour le lancer, rendez-vous sur le menu démarrer et lancez la tuile WACK:

Choisissez ensuite « Windows Store App » si vous développez en HTML / JS / CSS.

Puis choisissez votre l’application dans la liste des applications installées:

Laissez ensuite le WACK faire, votre application va s’ouvrir et se fermer plusieurs fois. Surtout ne pas interagir avec l’application pendant les tests. Une fois les tests effectués, le WACK va générer un rapport au format XML que vous allez pouvoir ouvrir par la suite. Ce XML est en fait une page HTML quand vous l’ouvrez dans IE (merci XSL-T).

Le résultat est soit « PASSED » soit « FAILED ». Si c’est FAILED, ouvrez donc le rapport dans IE pour aller voir le détail.

Performance test : FAILED Bytecode generation

La première fois, vous allez sûrement avoir un FAILED (et oui). L’erreur n’est pas évidente, voici le détail:

Bytecode generation
•  Error Found: The bytecode generation test detected the following errors:◦This package was deployed for development or authoring mode. Uninstall the package and re-install it normally.

• Impact if not fixed: As a performance optimization to accelerate JavaScript execution time, JavaScript files ending in the « .js » extension generate bytecode when the app is deployed. This optimization significantly improves start-up and ongoing execution times for JavaScript.

• How to fix: You may need consider one or more of these steps to fix the issue:
– Ensure that event logging is enabled
– All JavaScript files are syntactically valid; otherwise exclude the respective files from the package
– Please note that you should uninstall all previous versions of the app before deploying
Otherwise exclude the respective files from the package.

WACK vous indique « This package was deployed for development or authoring mode. Uninstall the package and re-install it normally » mais pas vraiment comment procéder. Il faut en fait faire un package « release » à partir de VS 2012 et tester ce package et pas l’application en mode debug lancée depuis VS 2012.

Réaliser un package « release » pour Windows 8 avec Visual Studio 2012

Retournez donc dans Visual Studio Express 2012. Puis Store > Create App Packages…

A la question « Do you want to build packages to upload to the Windows Store », choisissez « No »:

Puis next et VS 2012 va vous créer un AppPackage :

Cliquez sur le lien pour ouvrir l’explorateur dans ce dossier. Vous y trouverez un dossier et un fichier .appxupload. Entrez dans le dossier « NAME_APP_1.0.0.0_AnyCPU_Debug_Test » et vous y trouverez un fichier « Add-AppDevPackage » qui est en fait un script Windows PowerShell.

Click droit sur ce fichier > Run With PowerShell:

La première fois, on va vous demander d’installer vos certificats de signature. Acceptez en appuyant sur Entrée:

Puis « y » et Entrée à la pop-up de confirmation. Votre application est ensuite installée.

Relancez le Windows App Certification Kit, qui passera cette fois sur l’application installée en mode deploy et passera le test de Bytecode.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *