|
| Mise à jours d'une application Android |
| Started by Stéphane D., Oct., 31 2025 5:07 PM - 7 replies |
| |
| | | |
|
| |
Registered member 206 messages |
|
| Posted on October, 31 2025 - 5:07 PM |
Bonjour à tous, J'ai trouvé un bout de code sur ce forum que j'ai adapté dans mon appli. J'ai fait une procédure que le lance à l'init de ma première fenêtre. Il fait bien son job jusqu'à l'installation. Voici le code :
SI EnModeAndroid() ALORS
Res = HTTPRequête("https://www.xxx.fr/GLOBALPLANNING/VERSION.txt") SI Res = Vrai ALORS VersionAjour = AnsiVersUnicode(HTTPDonneRésultat()) FIN
SI Val(VersionAjour) > Val(maVersion) ALORS
<Compile SI TypeConfiguration=Android> TitreSuivant("Merci de ne pas quitter l'application, Téléchargement de la mise à jour...") Sablier() HTTPDestination(fRepEnCours()+"/GPLANNING.apk") HTTPRequête("https://www.xxx.fr/GLOBALPLANNING/GPLANNING.apk") Multitâche(-100) Sablier(Faux) SI fFichierExiste(fRepEnCours()+"/GPLANNING.apk") ALORS TitreSuivant("Lancement de l'installation") SINON Erreur("le fichier n'existe pas ...") FIN Sablier() Res = LanceAppliAssociée(fRepEnCours()+"/GPLANNING.apk") SI Res = Faux ALORS Erreur(ErreurInfo(errComplet)) FIN
SI ErreurDétectée ALORS Erreur(ErreurInfo(errComplet)) FIN TitreSuivant("") Multitâche(-100) Sablier(Faux) <FIN> SINON ToastAffiche("Application GPLANNING à jour.",toastCourt,cvBas,chCentre) FIN
FIN Il trouve bien la mise à jour, il ne tombe dans aucun erreur... Avez vous une idée ? Merci d'avance de vos réponse.
-- Stéphane. |
| |
| |
| | | |
|
| | |
| |
Registered member 3,747 messages |
|
| Posted on November, 01 2025 - 3:00 AM |
Salut D'après moi, le souci vient du fait que la destination du fichier ne peut être utilisée que par ton application Or tu lance une application externe pour installer l'APK Il faut trouver un emplacement accessible par l'autre programme De plus, il faudrait que ton application soit fermée pour que la mise à jour fonctionne |
| |
| |
| | | |
|
| | |
| |
Registered member 206 messages |
|
| Posted on November, 01 2025 - 12:10 PM |
Salut Popoy, Effectivement je comprend ton explication. Le fRepEnCours() n'est pas très judicieux si je ferme l'application... Je regarde cela lundi, et je viendrais mettre le bon de code qui va bien... Un bon week-end. 
-- Stéphane. |
| |
| |
| | | |
|
| | |
| |
Registered member 206 messages |
|
| Posted on November, 03 2025 - 4:16 PM |
Bonjour à tous, Et bien je viens de faire les modification mais cela ne fonctionne toujours pas... Voici les modification :
SI EnModeAndroid() ALORS
Res = HTTPRequête("https://www.xxx/GLOBALPLANNING/VERSION.txt") SI Res = Vrai ALORS VersionAjour = AnsiVersUnicode(HTTPDonneRésultat()) FIN
SI Val(VersionAjour) > Val(maVersion) ALORS
<Compile SI TypeConfiguration=Android> TitreSuivant("Merci de ne pas quitter l'application, Téléchargement de la mise à jour...") Sablier() HTTPDestination(SysRepStockageExterne(1,ssePublicTéléchargement)+[fSep]+"GPLANNING.apk") HTTPRequête("https://www.xxx.fr/GLOBALPLANNING/GPLANNING.apk") Multitâche(-100) Sablier(Faux) SI fFichierExiste(SysRepStockageExterne(1,ssePublicTéléchargement)+[fSep]+"GPLANNING.apk") ALORS TitreSuivant("Lancement de l'installation") SINON Erreur("le fichier n'existe pas ...") FIN Sablier() Res = LanceAppliAssociée(SysRepStockageExterne(1,ssePublicTéléchargement)+[fSep]+"GPLANNING.apk") SI Res = Faux ALORS Erreur(ErreurInfo(errComplet)) FIN
SI ErreurDétectée ALORS Erreur(ErreurInfo(errComplet)) FIN Multitâche(-100) Sablier(Faux) FinProgramme() <FIN> SINON lib_version += maVersion FIN
FIN Il fait bine le telechargement, je le vois bien dans le répertoire téléchargement du téléphone, il me met bien le message :
TitreSuivant("Lancement de l'installation") Ce message s'affiche que 3 seconde et plus rien. Merci d'avance pour votre aide.
-- Stéphane. |
| |
| |
| | | |
|
| | |
| |
Registered member 7 messages |
|
| Posted on November, 04 2025 - 2:02 PM |
Bonjour, As-tu les autorisations nécessaires INSTALL_PACKAGES et REQUEST_INSTALL_PACKAGES de mémoire. J'avais développé un système similaire pour palier la complexité du Play Store (et notamment l'obligation des API 35, je suis en WM27) et j'avais rencontré un problème d'interruption de procédure sans aucun message d'erreur (pas de problème en mode GO pendant les tests). Finalement, je suis revenu en arrière car je ne trouve pas ça terrible de forcer les clients à autoriser les applications de source inconnue (malgré la lourdeur de la mise en ligne du Play Store). |
| |
| |
| | | |
|
| | |
| |
Registered member 206 messages |
|
| Posted on November, 05 2025 - 11:40 AM |
Salut Christophe, Merci de ta réponse. Oui effectivement, moi avec ma version WM25 et non pas WM2025, je risque de rencontrer de gros problème, car je penses que la WD25 sur le playStore n'en voudra pas... Donc si je suis sous la version 2026, normalement je n'aurais pas ces contraints, c'est bien cela ? Et la version 2025/2026, est ce que le déploiement pour android et ios sont simplifié ? Merci d'avance pour vos réponse.
-- Stéphane. |
| |
| |
| | | |
|
| | |
| |
Registered member 7 messages |
|
| Posted on November, 05 2025 - 8:13 PM |
Salut Stéphane,
Je ne sais pas si tu peux compiler une appli compatible avec les restrictions du Play Store (API 35) avec WM25, perso en WM27, j'ai utilisé les conseils trouvé sur ce forum et notamment ce lien vers le blog du support :
https://blogs.pcsoft.fr/fr/generation-application-android-fournir-parametres-specifiques-proposes-edition-manifeste-assistant-generation-apk-aab/281474976711034/read.awp
En parallèle, j'ai télécharger Android Studio pour récupérer le SDK pour l'API 35 (sur les conseils de Popoy qui cite Boller) mais sans rien changer dans la configuration de l'assistant de WM (hormis ce qui est dans l'article du blog). Je veux dire par là que je n'ai pas indiqué à WM le chemin du SDK fraichement téléchargé. Donc soit WM va chercher le SDK pile-poil dans le répertoire par défaut d'Android Studio, soit la manip indiquée dans le blog est suffisante pour passer la restriction (où alors j'avais déjà le SDK API 35 dans le répertoire que WM utiliser pour la compilation).
Toujours est-il que même avec WM2026, l'utilisation du Play Store est, à mon sens, très lourd. Même si tu compiles avec l'API35, la procédure de mise en ligne est ... particulière : logo de ton appli à la bonne dimension, captures d'écran à la bonne résolution, pleins de questions, tests avec plusieurs testeurs (12 dans mon cas), délais avant la mise à disposition du public (14 jours pour moi), 20 dollars à régler (plus si certification entreprise). Bref, il faut bien peser le pour et le contre avant de ce lancer dans cette aventure. Une fois que tout est bon, c'est plus simple avec le Play Store ... jusqu'à la prochaine modification de leurs conditions... mais vis-à-vis des clients, ça fait plus sérieux que de leurs demander d'autoriser les sources inconnues, d'analyser l'appli à chaque mise à jour ...
Pour en revenir à ton problème, les autorisations PACKAGE sont obligatoires pour gérer les APK (mise à jours) et pour ma part SysRepStockageExterne(1,ssePublicTéléchargement) ne fonctionne pas en dehors du mode GO. Il lui faut une autre autorisation, à ajouter dans le manifeste mais aussi à demander explicitement à l'utilisateur. Dans ton cas, ça ne pose pas vraiment de problème car SysRepStockageExterne(1,ssePublicTéléchargement) va te retourner une chaine vide, donc ton fichier sera dans le répertoire courant de ton appli et ça fonctionnera quand même (par contre, tu ne pourras pas "voir" le fichier avec l'explorateur Windows ou le "Mes fichiers" d'Android.
Bon dév' à toi |
| |
| |
| | | |
|
| | |
| |
Registered member 206 messages |
|
| Posted on November, 06 2025 - 3:33 PM |
Salut Christophe, Encore merci pour cette réponse. Oui c'est vrai c'est la galère avec le playstore, je viens de déposer ma première version et hop 1 erreur.... API 35... Enfin c'est pas grave je vais tester dans la semaine prochaine tes liens et conseils pour avancer sur Android Studio pour l'API 35 ainsi que le grald.
Par contre pour le premier point SUPER MERCI cela fonctionne en ajoutant dans le manifest les deux éléments : INSTALL_PACKAGES et REQUEST_INSTALL_PACKAGES. Et comme tu dis, pour moi c'est pas trop grave, pour le début de l'application elle sera comme cela. Mais bien-sur, pour la suite je vais bien évidement faire comme toi, la mettre sur le playstore.
Encore un très grand merci pour ton aide.
-- Stéphane. |
| |
| |
| | | |
|
| | | | |
| | |
|