iOS – Error launching remote program
L'iOS SDK, c'est trop cool : à chaque fois qu'on lance XCode et qu'on compile, c'est comme jouer à la roulette russe, on peut avoir une erreur ou une merde qui va nous faire perdre la soirée alors que la veille tout marchait super et qu'on n'y a pas touché...
Ce soir, c'était la compilation en mode AdHoc / AppStore qui s'est mise à merder :
Error launching remote program - The program being debugged is not being run.
Sur le net, on trouve une variété de solutions à ce problème, dont en voici une petite sélection... A noter que les solutions ne sont pas mutuellement exclusives, on peut en tester plusieurs pour espérer obtenir un résultat :
- Redémarrer XCode, le device, et/ou le Mac. Assez efficace en général.
- Faire un "Clean All" sur le projet.
- Effacer tous les provisionning profiles du device, tous les certificats du mac, les retirer du site d'Apple, et tous les réinstaller.
- Dans Entitlements.plist, cocher get-task-allow. A noter que chez moi ça donne juste un message d'erreur différent, et qu'en théorie il faut que ce soit décoché ^^
Aucune de ces solutions n'a marché dans mon cas, et en fait c'est mon collègue Jesus (oui, c'est vraiment son prénom !) qui a trouvé la solution : en vrai, quand on lance après avoir compilé, ça ne marche pas... Par contre, si on clique sur l'icone sur l'iPad, l'application se lance et marche normalement. Donc en gros, c'est juste le lancement depuis XCode qui chie. Bon, je n'ai perdu qu'une ou deux heures sur ce problème...
Ca peut paraitre bizarre, mais en fait en cherchant encore un peu sur un site j'ai fini par trouver une explication : en pratique, en mode AdHoc, ce n'est juste pas possible de debugger (ça, on est d'accord), et donc en fait le lancement depuis XCode, qui cherche à se connecter au device pour le debug (même basique, à savoir l'affichage de la console), échoue. Donc on pourrait dire qu'il y a une vraie raison derrière ce problème, et en regardant bien le message d'erreur, c'est effectivement ce qu'il nous indique...
Ce qui n'empêche pas que chez certaines personnes ça marche, et surtout que parfois (pour ne pas dire souvent) quand on a cette erreur les corrections évoquées ci-dessous sont "valables"... Parfois je crois qu'il ne vaut mieux pas essayer de comprendre...
iOS SDK : security policy error
Ce matin en voulant recompiler un jeu pour tester je tombe sur l'erreur suivante :
Error launching remote program: security policy error.
Bon, on reste calme, tout développeur iPhone/iOS sait qu'on a souvent des erreurs à la con de partout, même quand on n'a rien changé au projet. En l'occurence, là, la seule chose que j'avais faite était de mettre à jour le provisioning profile car le mien avait expiré...
Et bien c'est là qu'était le souci : en fait pour une raison obscure, quand on a plusieurs fois le "même" provisioning profile (comprendre par là des versions téléchargées à différents moment d'un même profile) et que l'un d'entre eux a expiré, parfois le système va quand même chercher à utiliser celui qui a expiré, et donc ça ne marche pas !
Le solution est du coup assez simple : on va dans l'organizer, on efface le provisioning qui a expiré, et on relance. Et là, magie, ça marche (en fait chez moi, non, car j'ai de nouvelles erreurs maintenant ^^)