rajouter les possibilités "Build & Install" (et "Clean & Rebuild") à  X

AliGatorAliGator Membre, Modérateur
avril 2009 modifié dans Xcode et Developer Tools #1
Bonjour à  tous,

Voilà  depuis que je développe sur l'iPhone en testant mes soft aussi sur le device et pas que dans le simulateur, y'a un truc qui m'énerve un peu.
Quand j'ai mon appli de prête (genre je viens de faire 2-3 modifs dans le code vite fait et que je recompile), j'aimerais installer mon appli recompilée sur l'iPhone... mais sans pour autant lancer le debugger...
Parce bon que parfois le remote-debugger met genre 2-3 secondes à  se lancer et se connecter à  l'iPhone et tout... alors que moi je veux juste tester un comportement (genre si l'affichage est ok, si les gestures que j'ai implémentées sont faciles à  utiliser, si les animations sont fluides...) mais je me fous des NSLogs et autres traces à  ce moment !
(à  la limite si ça bug il sera toujours temps de rajouter des NSLog et relancer en mode debug pour creuser plus loin)


Donc aujourd'hui mes solutions :
  • c'est de faire "Build & Run" et une fois la phase d'installation passée, quand il commence à  lancer le débugger, je clique sur "Stop" (au lieu de poireauter qu'il se lance) et je lance mon appli ensuite directement depuis l'iPhone pour faire mumuse avec.
  • Ou alors de passer par l'organizeur, de choisir l'iPhone en question dans la liste à  gauche, sélectionner l'appli déjà  installée sur l'iPhone, faire "-" pour la désinstaller, puis faire "+" et aller fouiller sur le disque du mac où se trouve la version compilée de l'appli que je viens de builder (en évitant de prendre la Debug si c'est la Release que je viens de compiler et vice-versa...) et valider pour qu'il me l'installe dessus... ouch, fastidieux tout ça !



--> Bref si vous avez une méthode plus rapide pour que, quand j'ai un projet Xcode pour iPhone d'ouvert, ça puisse Builder et installer l'appli sur l'iPhone branché, sans lancer l'appli en debug... Pouvoir faire une sorte de "Build & Install" en somme, sans la phase "Run" donc, ça serait top...
Que la fonction existe et soit cachée dans Xcode, ou qu'il y ait des astuces pour révéler ces possibilités (ou faire autrement pour installer l'appli sur l'iPhone depuis Xcode facilement)... ou de créer des AppleScript pour rajouter ça, je sais pas...


---

PS : Au passage dans le même ordre d'idée, une option "Clean & Rebuild" serait aussi super bienvenue, plutôt que d'attendre que le "Clean" soit fini pour lancer manuellement le "Build" ensuite (je suis scié qu'il n'y ait pas cette possibilité dans les menus alors que rares sont les fois où l'on fait un Clean sans avoir le but de faire un "Build" juste derrière...)

Réponses

  • schlumschlum Membre
    22:05 modifié #2
    Avec Xcode, on peut lancer des scripts shells à  n'importe quelle phase de compilation... Par contre, je ne sais pas si ça peut faire ce que tu veux.
  • AliGatorAliGator Membre, Modérateur
    avril 2009 modifié #3
    Oui en effet c'est pas bête... C'est un peu à  ça que je pensais en demandant s'il n'y avait pas une possibilité avec AppleScript... mais j'avais oublié cette possibilité de faire aussi des scripts shell (bash, perl python & co), ça ouvre des possibilités... Que ce soit pour ajouter le script en "Build Phase", ou pour l'ajouter au menu "User Scripts", l'idée est intéressante.

    Reste plus qu'à ... trouver les commandes shell pour faire ça, en particulier pour demander à  Xcode d'installer l'application sur le device courant.
    Je regarderai ça demain au boulot quand j'aurais un iPhone sous la main, voir quelle commande Xcode utilise pour installer l'application sur iPhone... enfin si cette commande est listée avec les autres dans le "Build Log" ;) Faut espérer sinon je vois pas...
    J'ai bien pensé à  la commande "xcodebuild install" mais je suis pas sûr qu'elle fasse vraiment ce que j'attend...

    ---

    Sinon pour le "clean & rebuild", il semble que l'ajout d'un simple "User Script" à  Xcode qui exécute la commande "xcodebuild clean build" suffise  :o
Connectez-vous ou Inscrivez-vous pour répondre.