ENGLISH NOTICE: It looks like a lot of english speaking people came here to read this but as this is only in French, they couldn’t. Well, I’m sorry, I do not plan to translate it myself, but an online translator will do a fine job for you… Enjoy!
Cette année, pour un de mes cours, j’ai du développer une application iPad dans Unity. au début du projet, j’étais alors sous iOS 5.0.1 et Xcode 4.2, et j’avais trouvé des tutos très simples pour éviter d’avoir à investir dans un « iOS Developer program » ( car sortir 99€/an pour simplement tester mes propres applications sur mon iDevice sans les distribuer, ça m’énerverait un peu, et que j’en ai pas les moyens). Bref, tout marchait à merveille, et j’ai rendu mon examen il y a quelques jours, en restant sur les versions de l’époque pour éviter tout problème. Hors, voila, une fois le projet remis, j’ai eu envie de mettre à jour mon iPad et mon Xcode… et surprise, plus moyen de builder mon application et de la pusher sur la tablette… Oh joie !
A la base, je trouve déja ça dégueulasse de devoir payer pour développer sur un device qu’on a déja payé suffisement cher, mais bon, passons, ça on doit l’assumer quand on travaille avec des produits Apple.
Je me suis donc mis en quête d’un tuto, mais je n’en ai pas trouvé pour Xcode 4.4.1 et iOS 5… en bricolant et en fouillant pas mal, j’ai fini par trouver comment faire par moi-même, et je me suis alors dit que je devais partager ça avec vous, parce que ça m’aura quand même pris plus de 2h…
Il vous FAUDRA jailbreaker votre iDevice pour cela, par contre (une recherche google vous dira comment faire). Pour ma part, le jailbreak ne me sert qu’au développement, les apps que j’aime, je les paie.
Le principe est le suivant: on va dire à Xcode qu’il n’est pas obligé de code-signer une application pour pouvoir la builder, la pusher sur un iDevice, et la lancer. Pour cela, on va mettre en place un « code sign Ad-Hoc ».
voici la marche à suivre:
1 ) Allez dans le dossier « Applications », et faites un clic droit sur Xcode.app, puis affichez le contenu du paquet.
2 ) Naviguez jusque Contents/Developer/Platforms/iPhoneOS.platform/ et repérez le fichier « info.plist ». Copiez-le sur le bureau.
3 ) Double-cliquez sur le « info.plist » qui se trouve sur votre bureau, Xcode va se lancer et afficher le contenu du fichier.
4 ) Dans ce fichier, il y a plusieurs valeurs à modifier:
- Ouvrez l’onglet « RuntimeRequirements », et ensuite l’onglet « Classes » qui se trouve dedans. Là, remplacer « XCiPhoneOSCodeSignContext » par « XCCodeSignContext » en double cliquant sur le mot.
- Ouvrez l’onglet « OverrideProperties » et remplacez le contenu de la ligne « CODE_SIGN_CONTEXT_CLASS » (à savoir « XCiPhoneOSCodeSignContext« ) par « XCCodeSignContext ».
- Ouvrez l’onglet « DefaultProperties » et remplacez le contenu de la ligne « CODE_SIGN_CONTEXT_CLASS« (à savoir « XCiPhoneOSCodeSignContext« ) par « XCCodeSignContext« .
5 ) Sauvegardez le fichier, puis drag-n-droppez le dans le répertoire d’Xcode où sa version originale se trouve encore. Vous devrez alors vous identifier et puis remplacez le fichier original par le nouveau.
6 ) Toujours dans le dossier Contents/Developer/Platforms/iPhoneOS.platform/, allez dans le sous-dossier « Developer/SDKs/iPhoneOS5.1.sdk/ » et repérez le fichier « SDKSettings.plist ». Copiez-le sur le bureau.
7 ) Ouvrez ce fichier en double-cliquant dessus, puis dans l’onglet « DefaultProperties » modifiez les valeurs des lignes suivantes:
- AD_HOC_CODE_SIGN_ALLOWED, changez le « NO » par « YES »
- CODE_SIGNING_REQUIRED, changez le « YES » par « NO »
- ENTITLEMENTS_REQUIRED, changez le « YES » par « NO ».
8 ) Sauvez le fichier, puis drag-n-droppez le pour remplacer le fichier original. Vous devrez encore vous identifier et lui dire de remplacer le fichier.
9 ) Fermer Xcode, et voila ! c’est tout pour les modifications de fichiers .plist .
Ensuite, dans Xcode, lorsque vous souhaitez builder votre app, dans la partie « Code Signing » des « Build Settings » de votre projet, indiquez sur chaque ligne « Ad-hoc Code Sign », puis vous pourrez builder votre app et la pusher sur votre iDevice sans qu’Xcode vous gueule dessus en vous disant qu’il ne trouve pas de CodeSign valide.
Note: si vous laissez « Don’t code sign » dans les « build settings », vous pourrez sans doute pusher votre application sur l’iDevice, mais pas la lancer une fois dessus (ça a été mon cas).
Je ne sais pas si ça tiendra longtemps comme astuce, ni ce que c’est exactement que le code-signing « ad-hoc », mais je sais que ça marche pour moi et me permet de tester mes apps créées dans Unity ![]()
J’espère que cet article vous sera utile…
Bien évidemment, si j’en avais les moyens, je prendrais un abonnement au « iOS Developer Program » d’Apple, car c’est bien plus simple que tout ça, car cette astuce ne marchera sans doute plus à la prochaine version d’Xcode…
Si vous avez des questions, n’hésitez pas, posez-les dans les commentaires, mais je ne peux pas vous assurer de pouvoir y répondre, c’est surtout par chance que j’ai réussi à faire ça…





