Mettre à  jour et à  disposition une application

Bonjour image/smile.png' class='bbc_emoticon' alt=':)' />



Disons que ce sujet ce résume à  plusieurs questions concernant la mise à  jour d'un application ainsi que sa mise à  disposition.

Etant utilisateur confirmé Windows et nouveau dans le monde MAC, j'ai quelques soucis image/crazy.gif' class='bbc_emoticon' alt=' B) ' />



Voici le contexte sous Windows: l'application est disponible sur le net, lorsque l'utilisateur la télécharge et la lance celle-ci se place directement sur le bureau. A chaque ouverture de l'application, celle-ci communique avec un serveur permettant de vérifier la version de l'application, si la version est différente de celle du serveur un bouton apparaà®t permettant de télécharger et installer la mise à  jour.



Conscient que sous Mac ceci est différent je suis un peu perdu:

- Ou se trouve l'application une fois compilée? (Elle ne se trouve pas dans le dossier comprenant tout les fichiers nécessaire à  l'application).

- Faut il passé obligatoirement par AppStore?

- Une application Mac doit être installée? Ou elle peut être utilisé directement après téléchargement?

- Si non comment créer une installation?

- Comment mettre à  jour une application? Existe t'il une façon de mettre à  jour une application comme sur les Iphones sans passé par AppStore?



Enfin voilà  comme vous pouvez le voir, je ne pensai pas que cette étape serait si complexe pour moi image/crybaby.gif' class='bbc_emoticon' alt=' :'( ' />



Merci de votre aide.

Bonne journée.

Réponses

  • MalaMala Membre, Modérateur
    'cocoacola71' a écrit:


    - Ou se trouve l'application une fois compilée? (Elle ne se trouve pas dans le dossier comprenant tout les fichiers nécessaire à  l'application).


    Compilé avec quoi? Xcode?


    'cocoacola71' a écrit:


    - Faut il passé obligatoirement par AppStore?


    Non.


    'cocoacola71' a écrit:


    - Une application Mac doit être installée? Ou elle peut être utilisé directement après téléchargement?


    Non, directement sauf si elle a des besoins bien particuliers (genre installer des librairies au niveau du système).


    'cocoacola71' a écrit:


    - Si non comment créer une installation?


    Heu, je dois pas avoir compris la première question là ...


    'cocoacola71' a écrit:


    - Comment mettre à  jour une application? Existe t'il une façon de mettre à  jour une application comme sur les Iphones sans passé par AppStore?


    En règle général, les applications ne passant pas par le Mac App Store utilisent le framework Sparkle qui a fait ses preuves...

    http://sparkle.andymatuschak.org/
  • Hello et merci de ta réponse rapide, cela m'a bien éclairci image/smile.png' class='bbc_emoticon' alt=':)' />

    C'est vrai qu'à  certain moment j'ai oublié quelques précisions :


    'Mala' a écrit:


    Compilé avec quoi? Xcode?
    Oui avec Xcode 4.2 en Objective-C.




    'Mala' a écrit:


    Heu, je dois pas avoir compris la première question là ...
    Lol la question était comment créer une installation? Mais je ne pense que cela me sera utile image/smile.png' class='bbc_emoticon' alt=':)' />


    'Mala' a écrit:


    En règle général, les applications ne passant pas par le Mac App Store utilisent le framework Sparkle qui a fait ses preuves...

    http://sparkle.andymatuschak.org/
    D'accord et quel est le plus conseillé entre les 2? Sparkle est-il simple à  prendre en main?



    En tout cas merci Mala image/thumbsup.gif' class='bbc_emoticon' alt='' />
  • MalaMala Membre, Modérateur
    'cocoacola71' a écrit:


    Oui avec Xcode 4.2 en Objective-C.


    Tu lances un build dans Xcode et, quand ton application se lance, tu fais un clique droit sur son icônes dans le dock puis Options->Afficher dans le finder. image/wink.png' class='bbc_emoticon' alt=';)' />


    'cocoacola71' a écrit:


    D'accord et quel est le plus conseillé entre les 2? Sparkle est-il simple à  prendre en main?


    Tout dépend de ce qu'on veut faire. On a pas le droit d'utiliser Sparkle pour des applications sur le Mac App Store (c'est lui qui se charge des mises à  jour). Sparkle est très bien documenté (voir le lien) et complet: affichage des évolutions à  l'utilisateur, téléchargement et désarchivage de l'application, installation et redémarrage.
  • AliGatorAliGator Membre, Modérateur
    Sous Mac, une application est un "bundle", c'est à  dire que sur le Finder (équivalent de l'Explorateur Windows) ça s'affiche comme une icône unique, comme si c'était un seul fichier, mais sous le capot en vrai c'est un dossier contenant tout ce qu'il faut pour l'application :

    - binaire exécutable

    - ressources (images, sons, données constantes...)

    - fichier Info.plist de description de l'appli (version, copyright, ...)

    ...



    L'utilisateur final voit ça comme un fichier ".app" unique, mais donc en fait tout est encapsulé. C'est pour ça que les applications Mac sont "standalone" (elles se suffisent en général à  elles-même) et n'ont pas besoin d'avoir plein de fichiers à  traà®ner à  côté, et qu'on peut déplacer une application Mac où on veut sur son disque dur (ou sur une clé USB) sans que ça soit gênant (il suffit de déplacer le ".app", qu'on voit comme un fichier unique, comme tout est embarqué dedans on risque pas d'oublier un fichier ou quoi) et sans que ça empêche l'application de fonctionner. Et de même que pour désinstaller une application sous Mac il suffit de faire glisser l'application dans la corbeille, ça suffit.



    Après, en général, les gens mettent leurs applications dans le dossier "Applications" qui se trouve à  la racine du disque dur. Mais ceci n'est en rien une obligation sur Mac, tu peux lancer une application d'où tu veux, contrairement à  Windows où une fois que certaines applications sont installées dans Program Files, si tu les déplaces elles peuvent ne plus fonctionner.



    Bien sûr il y a des exceptions, comme disait Mala : certaines applications nécessitent d'installer des librairies système, d'installer des drivers (par exemple imagine une application qui permet de communiquer avec un lecteur de carte à  puces ou un truc comme ça faut bien installer le driver) ou quoi, dans ce cas il faut bien un installeur. Mais dans 90% des cas ce n'est pas nécessaire.
  • MalaMala Membre, Modérateur
    Et sinon, pour juste créer un assistant d'installation, tu as PackageMaker livré avec Xcode. Il est très simple à  utiliser.
  • Merci pour vos explications!

    Cela me semble plus clair et plus simple à  mettre en oeuvre.

    Il me reste maintenant à  exploiter Sparkle image/wink.png' class='bbc_emoticon' alt=';)' />
  • CéroceCéroce Membre, Modérateur
    Sparkle est simple à  utiliser parce que sa documentation est complète.

    Je l'utilise depuis trois ans sans soucis.
  • Oui il est vrai que Sparkle est plutôt bien documenté.

    Même si la création du fichier xml est plutôt complexe avec la dsasignature...

    Mais lorsque le mise à  jour ce fait, est que la version précédente de l'application est écrasée??
  • MalaMala Membre, Modérateur
    Le fichier appcast.xml permet d'avoir un item par mise à  jour. Ainsi on a pas besoin d'écraser la version courante. Et cela peut s'avérer bien pratique si une régression inopinée rend l'application instable lors d'une mise à  jour.



    Voir cet exemple:

    https://github.com/andymatuschak/Sparkle/blob/master/Sample Appcast.xml
  • MalaMala Membre, Modérateur
    http://www.macupdate.com/app/mac/39021/sparkle-appcast-pixie



    Pourquoi se faire du mal? image/wink.png' class='bbc_emoticon' alt=';)' />
  • Super image/thumbsup.gif' class='bbc_emoticon' alt='' />, cela simplifie la tache!!

    Par contre la dsasignature semble problématique, comment puis-je en avoir une??
  • cocoacola71cocoacola71 Membre
    mars 2012 modifié #13
    <br />
    sh-keygen -t dsa<br />
    
    m'a suffit
    image/smile.png' class='bbc_emoticon' alt=':)' />
  • cocoacola71cocoacola71 Membre
    mars 2012 modifié #14
    Bon je pensais que l'erreur suivante serait résolut, mais je n'arrive pas à  m'en débarrasser:
    -[SUHost sharedFrameworksPath]:unrecognized selector sent to instance 0x2f7230


    Je pense que l'erreur vient de info.plist:
    <br />
    &lt;key&gt;SUFeedURL&lt;/key&gt;<br />
    &lt;string&gt;http://monsite.fr/upload/AppliAJour.xml&lt;string/&gt;<br />
    


    et voici mon xml :
    <br />
    &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;rss version=&quot;2.0&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:sparkle=&quot;http://www.andymatuschak.org/xml-namespaces/sparkle&quot;&gt;&lt;channel&gt;<br />
    &lt;title&gt;AppliAJour&lt;/title&gt;<br />
    &lt;link&gt;AppliAJour.html&lt;/link&gt;<br />
    &lt;description&gt;Ceci est la mise à  jour&lt;/description&gt;<br />
    &lt;language&gt;fr&lt;/language&gt;<br />
    &lt;item&gt;&lt;title&gt;AppliAJour&lt;/title&gt;<br />
    &lt;description&gt;&lt;/description&gt;<br />
    &lt;pubDate&gt;Tue, 06 Mar 2012 15:47:36 +0000&lt;/pubDate&gt;<br />
    &lt;enclosure url=&quot;http://www.monsite.fr/upload/testOuverture.zip&quot; sparkle:version=&quot;V1.2&quot; length=&quot;28318&quot; type=&quot;application/octet-stream&quot; sparkle:dsaSignature=&quot;bla bla bla&quot; /&gt;&lt;/item&gt;<br />
    &lt;/channel&gt;&lt;/rss&gt;<br />
    


    Par contre je n'est pas de fichier html, et je ne sais pas quoi mettre dedans image/crazy.gif' class='bbc_emoticon' alt=' B) ' />

    Mais je ne pense pas que l'erreur vienne de là , enfin je n'en suis pas sur..



    Excusez moi pour mes erreurs de débutant...

    Merci d'avance pour votre aide.
  • CéroceCéroce Membre, Modérateur
    On dirait plutôt qu'il manque la framework dans le projet.

    Lis la doc, elle donne toutes les étapes.
  • Il semblerait qu'il soit bien présent puisque j'accède à  l'objet SUUpdater.

    Et c'est ici que je ne comprend pas...

    J'ai laisser l'application continuer et il semblerai qu'il est réussit à  se connecter à  mon xml! image/crazy.gif' class='bbc_emoticon' alt=' B) ' />

    Pourquoi j'en ai aucune idée lol! Mais par contre il m'a rien redescendu, donc mon xml a un petit soucis.
  • Ce qui est sur c'est que l'erreur ne vient de mon xml puisque lorsque je me met mon lien il me propose de télécharger le .zip image/ohmy.png' class='bbc_emoticon' alt=':o' />
  • cocoacola71cocoacola71 Membre
    mars 2012 modifié #18
    J'abandonne Sparkle image/evil.gif' class='bbc_emoticon' alt='>:D' />

    Je vais essayé de m'y prendre autrement:

    - télécharger le fichier zip

    - dezipper

    - ouvrir l'application (New Version)

    - supprimer l'application old



    Cela semblerai possible, hors j'ai eu quelques soucis avec -dataWithContentsOfUrl

    Mon fichier zip ne peut être télécharger.

    J'ai donc créer un fichier php permettant de récupérer le .zip.

    Hors lorsque -dataWithContentsOfUrl télécharge le fichier .php..... IMPOSSIBLE de le trouver!



    A croire que les mise à  jour ne sont pas possible!!! lol



    Si quelqu'un a une idée de son emplacement...
  • Rectification Sparkle fonctionne image/clap.gif' class='bbc_emoticon' alt=' :D ' />

    Il semblerait qu'il ne s'ajoutait pas correctement dans la buildphase dans mon projet.

    Contrairement à  un nouveau projet ou aucune erreur ne parvient

    Je vous remercie de l'aide que vous m'avez apporté image/implore.gif' class='bbc_emoticon' alt=' o:) ' />
Connectez-vous ou Inscrivez-vous pour répondre.