ATTENTION: Si vous publiez votre application sur Apple App Store ou via un système Mobile Device Management (MDM), veuillez noter que pour re-signer et publier votre application, vous devez télécharger et exécuter la nouvelle version du script resign.sh. Ce file est également joint au chapitre Re-signer le .ipa plus loin dans cet articleNote Importante : vous ne pourrez pas publier votre application branded si vous ne la re-signez pas en utilisant la nouvelle version du fichier resign.sh
Introduction
Votre plateforme vous permet de créer une application mobile branded pour l’apprentissage en temps réel de vos utilisateurs. Ainsi, vos apprenants peuvent faire leurs formations sur une application mobile personnalisée pour votre entreprise.
Référez-vous à cet article pour en savoir plus sur la manière de créer et de configurer votre application branded, de générer un build et de télécharger un paquet afin de publier la version personnalisée de votre application Go.Learn sur les app stores. Pour connaître les critères techniques et les informations demandées pour créer votre propre application branded, référez-vous à cet article.
Si vous publiez votre application dans l’iOS App Store, les éléments suivants seront demandés Export Compliance et Self-Classification Report for Encryption afin d’être en conformité avec les règles suivantes U.S. Encryption and Export Administration Regulations (EAR). Pour savoir comment produire et présenter ce rapport, référez-vous à cet article.
Cet article explique comment re-signer et publier votre application mobile branded. Une fois que vous avez créé votre application branded, afin de la publier sur le store de l’application (Google Play pour Android ou App Store pour iOS), vous devez remplacer la signature digitale temporairement appliquée par Docebo avec votre propre signature générée en interne (pour Android) ou avec le certificat de signature attribué par l’App Store (pour iOS).
Si vous n’appliquez pas la nouvelle signature, le paquet ne peut pas être téléchargé sur l’app store. Veuillez vous référer aux paragraphes suivants pour plus d’informations sur le processus de re-signature pour Android et iOS.
Veuillez noter que le Publisher Application Mobile Branded est une fonctionnalité très technique. Nous vous suggérons de contacter un membre de l’équipe IT de votre entreprise pour effectuer la configuration correctement.
Veuillez noter également que Docebo n’est pas responsable du contenu des documents externes rédigés par d’autres entreprises (ie. Apple etc.). Il est de votre responsabilité de vérifier si ces documents sont à jour ou s’ils ont été modifiés de quelque manière.
Play Store Android Google
Le processus de re-signature pour le Play Store Android Google est composé de deux étapes. Vous devez d’abord créer un keystore si vous n’en n’avez pas encore. Si vous avez déjà publié une application Android, vous pouvez utiliser le même keystore. Vous devez ensuite re-signer le Android Package (APK) ou le Android App Bundle (AAB) en fonction du format du paquet que vous avez choisi lors de la configuration des détails techniques dans la section Paramètres de l’onglet application Android.
Créer un Keystore
Commencez par créer un keystore à l’aide de l’utilitaire fourni avec toute distribution JDK standard et situé à l’adresse %JAVA_HOME%\bin. Sur Windows, cela est généralement C:\Program Files\Java\jre8\bin Vous n’avez pas besoin de vous soucier du chemin d’accès sur Mac OS.
Sur Windows, ouvrez une invite de commande et passez dans ce répertoire. Sur un Mac, ouvrez simplement un terminal. Puis entrez une commande comme ceci :
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Le Keytool vous invite à fournir des mots de passe pour le keystore, il vous sera ensuite demandé de fournir les champs Distinguished Name :
Enfin, entrez le mot de passe pour votre clé (si nécessaire). Le keystore est alors généré sous la forme d’un fichier nommé my-release-key.keystore enregistré dans le répertoire dans lequel vous vous situez actuellement. Le keystore et la clé sont protégés par les mots de passe que vous avez entrés. Le keystore contient une seule clé qui est valide pour une période de 10 000 jours (tel qu’indiqué dans le paramètre -validity). L’alias est le nom que vous utiliserez plus tard pour vous référer à ce keystore lorsque vous signez votre application.
A noter : Enregistrez le keystore et le mot de passe pour un usage ultérieur, vous en aurez besoin à chaque fois que vous publiez une mise à jour.
Pour en savoir plus sur Keytool, veuillez vous référer à ce document Oracle. Vous pouvez également retrouver un document détaillé sur ce sujet sur Stack Overflow.
Re-signer le .aab ou le .apk
Afin d’attribuer une nouvelle signature à un AAB ou un APK, vous devez supprimer le META-INF de votre AAB ou votre APK puis le signer à nouveau. Veuillez noter que vous ne devez pas extraire les fichiers, vous devez juste supprimer l’entrée de l’archive.
Vous pouvez le faire de plusieurs façons, mais la manière la plus rapide est d’utiliser le shell du système. Supposons que vous ayez un fichier MyApp.aab (ou un fichier MyApp.apk) et un keystore nommé ‘my-release-key.keystore’, l’alias est ‘alias_name‘, le mot de passe du keystore est secret’ et le mot de passe de la clé est ‘password123‘. Si vous n’avez pas de keystore, veuillez vous référer au paragraphe ci-dessus Créer un Keystore pour plus d’information sur la manière d’en créer. Suivez ces étapes pour re-signer le fichier .aab ou .apk :
1. Supprimez le répertoire META-INF de l’archive (pour Windows et Mac) :
zip -d MyApp.aab META-INF/\* ou zip -d MyApp.apk META-INF/\*
2. Réajustez l’application afin qu’elle soit conforme aux exigences techniques du Play Store. L’objectif est de s’assurer que toutes les données non compressées commencent avec un alignement particulier par rapport au début du fichier. (à noter : suivez cette étape pour les fichiers .apk uniquement).
Pour WIndows :
zipalign -f -v 4 MyApp.apk MyAppAligned.apk
Pour Mac:
/Users/{YOUR_USER_NAME}/Library/Android/sdk/build-tools/{SDK_VER}/zipalign -f -v 4 ./MyApp.apk MyAppAligned.apk
3. Signez à nouveau :
Pour Windows:
- AAB
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore ./my-release-key.keystore ./MyAppSigned.aab alias_name
- APK
apksigner sign -v --out ./MyAppSigned.apk --ks ./my-release-key.keystore --ks-key-alias alias_name ./MyAppAligned.apk
Pour Mac:
- AAB
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore ./my-release-key.keystore ./MyAppSigned.aab alias_name
- APK
/Users/{YOUR_USER_NAME}/Library/Android/sdk/build-tools/{SDK_VER}/apksigner sign -v --out ./MyAppSigned.apk --ks ./my-release-key.keystore --ks-key-alias alias_name ./MyAppAligned.apk
L'historique du shell ne présente aucun risque pour la sécurité car les mots de passe de votre keystore et de votre clé sont demandés sur la console. Vous pouvez maintenant télécharger le .aab sur le Play Store Android Google ou distribuer le .apk.
Publier
- Plus d'informations sur la manière de télécharger une application (de Google Play Console Help)
- Lorsque vous mettez à jour votre application, créant ainsi une nouvelle version de l'application pour le Android Google Play Store (mais également lorsque vous créez votre application pour la première fois), vous pouvez suivre ce guide pour compléter le formulaire dans Google Play Console sur les types de données collectées dans votre application. Veuillez noter que ce guide se réfère à la configuration de l'application Go.Learn, veuillez vérifier chaque section car votre application peut être différente de Go.Learn (par ex. si vous n'avez pas connecté votre application à Firebase, ne renseignez pas d'informations sur les analytics; si vous n'avez pas le module Discover, Coach & Share, renseignez cette partie en conséquent). Si vous n'envoyez pas ce formulaire, vous verrez un message d'alerte dans la Messages Area de votre Google Play Developer Console.
Apple App Store
Prérequis
Afin d’effectuer le processus de re-signature pour l’Apple App Store, vous avez besoin des éléments suivants :
Re-signer le .ipa
Afin de re-signer le paquet iOS .ipa, une série d’outils qui ne sont disponibles que sur Mac OS X sont nécessaires, par conséquent vous ne pouvez pas re-signer une application iOS en utilisant un PC Windows. Un .ipa est un fichier zip. Afin de le modifier, vous devez l’extraire, le signer de nouveau et le recompresser.
Suivez ces étapes pour re-signer votre fichier .ipa :
- Déplacez MyApp.ipa dans un dossier de votre choix
- Créez et téléchargez le nouveau profil Provisioning embedded.mobileprovision depuis la Apple Developer Console et enregistrez-le dans le dossier .ipa (voir le point ci-dessus). Suivez les étapes indiquées dans cet article Apple.
- L'exécution de security find-identity vous donnera une liste d’identités à partir desquelles vous pouvez choisir celle que vous souhaitez (vous devez cherchez celle qui commence par "iPhone Distribution") :
security find-identity -v -p codesigning
Le résultat sera comme suit :
-
7D2A35B002F0577B66689713044BF66B4EEAC70F "iPhone Developer: Donald Duck (4J2CJZQ799)
-
C45CFD22CCC7BD2E84ED43D07719D709BC901322 "iPhone Distribution: A.C.M.E. (8YX56B3FLL)
- Déplacez le script resign.sh vers le même dossier et exécutez-le (exécutez le script sans arguments pour avoir plus d’informations) :
$./resign.sh ./MyApp.ipa ./embedded.mobileprovision “iPhone Distribution: A.C.M.E. (8YX56B3FLL)"
A noter : Si vous recevez le message d’erreur permission denied comme illustré dans l’image ci-dessous, exécutez la commande chmod 777 ./resign.sh
Vous pouvez ensuite exécuter le script resign.sh sans recevoir de message d’erreur. Ce .ipa est maintenant signé avec votre nouveau profil et vous êtes prêt à le télécharger sur l’Apple Store en utilisant l’application Transporter (vous pouvez la trouver dans votre dossier Application). Si vous n’avez pas encore Transporter, vous pouvez l’installer depuis votre Mac App Store. Veuillez vous référer à ces articles (How to re-sign iOS builds, Inside Code Signing et Application Code Signing) pour en savoir plus sur la manière d’attribuer une nouvelle signature à un fichier .ipa Apple.
Publier
Vous avez également besoin des metadata suivantes pour finir l’installation de l’application dans iTunesConnect :
Informations Spécifiques de l’Application 
Informations Spécifiques de la Version
Référez-vous aux articles suivants pour plus de détails sur les exigences en matière de capture d’écran, les exigences en matière d’aperçu facultatif et lisez cet article pour plus d’informations.
Notes Importantes sur le Processus de Publication
- Lorsque vous mettez à jour votre application, créant ainsi une nouvelle version pour Apple App Store (mais également lors de la création de l’application), vous devez suivre les exigences listées dans ce document qui servent de guide pour les types de données collectées dans votre application. Veuillez noter que ce guide se réfère à la configuration de l'application Go.Learn, veuillez vérifier chaque section car votre application peut être différente de Go.Learn (par ex. si vous n'avez pas connecté votre application à Firebase, ne renseignez pas d'informations sur les analytics)
- Lorsque vous téléchargez votre application branded sur Apple App Store, si vous utilisez un SSO (Single Sign On) personnalisé, Apple peut demander une explication pour savoir pourquoi vous utilisez un processus de connexion non-standard.
- Lorsque vous publiez votre application branded sur Apple App Store, vous pouvez recevoir des questions sur le contenu et les services payants. Dans ce document, vous retrouverez les réponses qui s’appliquent à l’application branded que vous avez créé avec l’application de Docebo Branded Mobile App Publisher (veuillez vous référer à la première section du document si vous utilisez l’application E-Commerce de Docebo pour vendre des cours en ligne sur votre plateforme, référez-vous à la deuxième section si vous ne l’utilisez pas). Une fois que vous avez répondu à ces questions, vous pouvez continuer le processus de publication.