Forums iOS

[TUTO] Dévelloper des apps pour Cydia avec XCode

[TUTO] Dévelloper des apps pour Cydia avec XCode

Message non lupar DarkCenobyte » 06 Avr 2011, 13:14

sans compte dévellopeur (Provisioning Profile) !

Voilà, ayant décidé d'essayer de débuter dans la programmation d'apps sur iPhone, et sans passer par l'AppStore d'Apple, je me suis intéressé aux moyens de faire une apps pour Cydia, et j'y suis finalement parvenu, étant donné que je n'ai pas vue de tuto français sur ce sujet et que les tutos anglais n'utilise pas forcément tous la même méthode (enfaite, selon des informations disponible sur Cydia il y a plusieurs méthodes possible), j'ai décidé de rédiger moi même un tuto en français en me basant sur les deux tuto anglais que j'ai utilisé (et comme j'ai finalement réussit à faire lancer une apps comme ça sur mon iPhone hier, j'ai préféré rédiger le tuto rapidement tant que je me souviens bien de ce que j'ai fait... :) )


Infos: Selon ma seconde source, les étapes C et D que j'ai rédigé ne sont pas (plus ?) nécessaires, néanmoins comme je les ai faites et que sa marche chez moi, j'ai préféré les rajouter quand même, vous pouvez si vous le désirer essayer de les passer...


Pré-requis:
- MAC OS X.
- Xcode 3.2.x (ma version dans ce tuto est 3.2.6 , la dernière version de XCode 3 disponible à ce jour, soit la dernière version "gratuite", je ne sais pas si mon tutoriel fonctionne pour Xcode 4).
- Un iPhone ou iPod Touch (ou iPad, …) jailbreaké.
- Le paquet OpenSSH installé sur votre iDevice (vous le trouverez sur Cydia).

I- Se procurer/installer Xcode:
Normalement vous pouvez trouver une version de Xcode dans un disque fournis avec votre Mac OS X, si vous ne l'avez pas/plus, ou que vous voulez une version plus récente, suivez ce lien: https://connect.apple.com/cgi-bin/WebOb ... leID=20792

(il faudra peut-être passer par une inscription gratuite).

Xcode s'installe ensuite comme n'importe quel programme (monté le DMG, lancé l'installation, …), néanmoins pour le lancer, il faudra allez dans: /Developer/Applications/
(le dossier Developer se trouve à la racine du disque dur).


II- Maintenant qu'il est installé il va falloir faire quelques modifications pour pouvoir compiler votre application sans "Provisioning Profile":
(et donc sans payer la taxe imposé par Apple pour pouvoir soumettre des apps à l'AppStore, de toute manière avec ce tutoriel nous visons Cydia et non l'AppStore).


A- Se créer un certificat de signature de programme:

1) Allez dans Applications/Utilitaires et lancez "Trousseau d'accès".
2) Dans le menu de l'application Trousseau d'accès, faite:
Trousseau d'accès > Assistant de certification > Créer un certificat…
3) Donnez lui un nom (par exemple: Xcode Code Sign).
4) Type didentité: Racine auto-signée
5) Type de certificat: Signature de code.
6) Cocher la case "Me laisser ignorer les réglages par défaut".
7) Cliquez sur continuer jusqu'à ce que la clé soit crée (inutile de toucher au reste ou d'y mettre plus d'infos…) .


B- Modification de XCode pour nous permettre de compiler:

1) Fermer Xcode si il est lancé.
2) Ouvrir le fichier
/Developer/Platforms/iPhoneOS.platform/Info.plist

3) Remplacer à l'intérieur tout les
Code: Select All Code
XCiPhoneOSCodeSignContext

par:
Code: Select All Code
XCCodeSignContext

(il devrait y en avoir 3).
4) Enregistrer les modifications.

PS: Si jamais vous mettez à jour le "iPhone SDK" vous devrez refaire l'étape "B".


C- Remplacer un faux système de signature de l'application:

1) Télecharger ldid et ldid2 via ce lien: http://www.megaupload.com/?d=2YTMZ0Z2
2) Placez ces deux fichiers dans /usr/local/bin (pour accéder au dossier /usr/ , utiliser Aller > Aller au dossier… du menu de Finder, si le dossier "bin" n'est pas présent dans "local", alors crée-le).
3) Ouvrir avec un éditeur texte le fichier:
/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS Build System Support.xcplugin/Contents/Resources/iPhoneCodeSign.xcspec

4) Remplacer dans ce fichier:
Code: Select All Code
CommandLine = "/usr/bin/codesign"

par:
Code: Select All Code
CommandLine = "/usr/local/bin/ldid2"

(ça devrait être vers la ligne 12).
5) Enregistrer les modifications.

PS: Si jamais vous mettez à jour le "iPhone SDK" il faudra aussi refaire l'étape "C".


D- Autoriser l'installation d'apps avec une signature invalide sur votre iDevice.

Avant de continuer: Si vous ne connaissez pas le fonctionnement du SSH, je vous conseille de consulter un tutoriel sur l'utilisation du SSH avant. (vous pouvez utiliser pour le SSH n'importe quel logiciel ayant la possibilité de modifier les autorisation (ce sera utile plus tard), personellement je vous conseil FileZilla).

1) à l'aide d'un logiciel SSH, copier le fichier
/usr/libexec/installd
présent sur votre iDevice, vers votre Mac (mettez le dans votre dossier personnel de préférence pour la suite).

2) Ouvrez un Terminal (Applications > Utilitaires > Terminal), puis lancez le code suivant:
Code: Select All Code
install_name_tool -change /usr/lib/libmis.dylib /usr/lib/libmiss.dylib installd


puis:
Code: Select All Code
ldid -S installd


3) Créez un fichier libmiss.c (avec un éditeur texte ou Xcode, de toute façon on compilera avec un terminal…) et mettez le aussi dans votre dossier perso.

4) Dans ce fichier mettez juste le code suivant:
Code: Select All Code
extern int MISValidateSignature() { return 0; }


5) Ouvrez un Terminal (ou reprenez le Terminal ouvert si vous l'aviez laissé), puis coller dedans tous ce code:

Code: Select All Code
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2                  \
-arch armv6                                                                     \
-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk \
-dynamiclib                                                                     \
-install_name /usr/lib/libmiss.dylib                                            \
-current_version 1                                                              \
-compatibility_version 1                                                        \
-Wl,-reexport-lmis                                                              \
-flat_namespace                                                                 \
-o libmiss.dylib                                                                \
libmiss.c
ldid -S libmiss.dylib


(vérifier que le chemin après isysroot est correct, (surtout au niveau du nom du SDK du iPhoneOS selon sa version)
(vous devrez peut-être (re)appuyer sur Enter pour lancer le ldid -S libmiss.dylib à la fin).

6) Copier le fichier installd (qui a été modifié) de votre Mac vers votre iDevice dans /usr/libexec (et écraser le précédent) à l'aide de FileZilla, puis de la même façon, le fichier libmiss.dylib de votre Mac vers votre iDevice dans /usr/lib .

PS: Vous devrez ré-envoyer ces deux fichiers vers votre iDevice si vous mettez son firmware à jour.


E- Compiler une apps pour Cydia:

1) Lancez XCode.
2) Créer un nouveau projet, comme template choisissez iOS > Application > View-based Application.
3) Donnez un nom au projet (par exemple "HelloWorld").
4) Ouvrez HelloWorldViewController.m du dossier "Classes".
5) Décommentez en retirant le /* et */ présent au dessus et en dessous de:
Code: Select All Code
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];
}


6) Et ajouter (entre "[super viewDidLoad];" et "}" ):

Code: Select All Code
   UILabel *helloLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 30, 100, 30)];
   [self.view addSubview:helloLabel];
   helloLabel.text = @"Hello World";



Ce qui doit donner en screenshot:
http://img852.imageshack.us/i/capturedc ... 06113.png/

7) Maintenant à partir du menu de XCode, allez dans: Project > Edit Project Settings.
8) Dans l'onglet "Build", mettez "Configuration:" sur "All Configurations" (pour faire le changement
dans tous les cas).

9) Descendez jusqu'à la partie "Code Signing", nous allons modifier 3 choses par là.
10) Pour "Any iOS" (developer "Code Signing Identity" si nécessaire), mettez comme valeur le nom de votre certificat, que nous avions crée au début du tutoriel (en prenants mon exemple donc "Xcode Code Sign").
11) Faite de même pour "Code Signing Identity" (mettez la aussi comme valeur le nom de votre certificat).
12) Enfin, dans "Other Code Signing Flags", ajouter: gta
(ignorer l'étape 12 et donc n'ajouter pas gta si vous n'avez pas suivis les étapes C et D de ce tuto)

http://img857.imageshack.us/i/capturedc ... 06114.png/

13) Maintenant dans la fenêtre principal de Xcode, régler la configuration Active sur "Device" et sur "Release", comme sur ce screenshot:

http://img138.imageshack.us/i/capturedc ... 06114.png/

14) Si ce n'est pas déjà fait, brancher votre iDevice à votre appareil, une fenêtre de Xcode devrait apparaitre et afficher un bouton vous proposant d'utiliser votre appareil pour le développement, appuyer sur ce bouton, et patientez.

(Si cette fenêtre n'apparait pas quand vous brancher votre iDevice, allez dans le menu de Xcode puis Window > Organizer)

15) Enfin, nous pouvons compiler, cliquez sur "Build and Run".

16) Patientez pendant la compilation, ne faite pas attention à la fin si Xcode vous affiche deux fois l'erreur "No code signature found", c'est normal.

17) Vous trouverez votre .app dans le dossier /build/Release-iphoneos/ (présent dans le dossier de votre projet).

F- Tester son apps sur son iPhone:

Finalement, il ne reste plus qu'à tester l'apps sur votre iDevice:

1) Accéder à votre iDevice via SSH (avec FileZilla par exemple), et rendez-vous dans:
/private/var/stash/Applications

2) Et copiez-y le .app de votre application, (le .app étant dans le fond une sorte de dossier, ne vous étonnez pas si votre logiciel indique envoyer plusieurs fichiers, patientez juste le temps qu'il est finis).
3) Modifier ensuite les permissions de votre .app en 775 (il faut que cela concerne aussi tout les fichiers et dossiers à l'intérieur de votre .app, sous FileZilla, cocher donc aussi la case "Récursion dans les sous-dossiers").
4) Redémarrer votre iDevice.
5) Votre application devrait être sur le SpringBoard de votre iDevice (sans icônes si vous n'en avez pas mis une), lancez-là et vous aurez:

http://img861.imageshack.us/i/screensho ... 12353.png/


Source original:

http://iphonedevwiki.net/index.php/Xcode
http://ihackmyi.com/forum/index.php?topic=24020.0

http://adeem.me/blog/2009/03/29/bypass- ... -on-cydia/
(une autre technique que j'ai aussi effectué, mais dont je n'ai pas parlé dans mon tuto, je pense qu'elle n'est pas utile finalement et que le principal viens de ma seconde source ;) )

http://www.aaronspjut.com/mind/index.ph ... n-3-lines/ (pour le hello world rapide)
Dernière édition par ptipilote17 le 08 Avr 2011, 00:15, édité 4 fois.
DarkCenobyte Gamer Maitre
Gamer Maitre
Messages: 253
Inscription: 18 Aoû 2009, 08:20

Re: [TUTO] Dévelloper des apps pour Cydia avec XCode

Message non lupar Quentin » 06 Avr 2011, 13:23

J'aurais été intéressé, dommage qu'il faille avoir un Mac ! Heureusement, c'est pour bientôt. Je n'ai tout lu en entier que je ne peux pas le réaliser, mais c'est très bien expliquer, Bravo :)
 iPhone 5S - 32Go - Or - Desimlocké - Orange - iOS 7
 MacBook Pro - Intel Core i7 - 2.7 GHz - 8Go RAM - 10.9.3

Mon coup de coeur : AppVip, être rémunéré en testant des applications !
Quentin Gamer Or
Gamer Or
Messages: 7236
Inscription: 01 Jan 2011, 16:03
Localisation: 42000
Prénom: Quentin
Pays: France
Sexe: Homme

Re: [TUTO] Dévelloper des apps pour Cydia avec XCode

Message non lupar DarkCenobyte » 06 Avr 2011, 13:31

Merci ^^, à la limite il existe aussi une technique avec Linux (il me semble que Saurik l'auteur de Cydia n'a pas de Mac ou en tout cas ne code pas avec...), mais elle est plus complexe, et puis tous les tutos sur la création d'apps pour iPhone que j'ai vue sur le web passe par XCode (qui facilite quand même pas mal le travail dans certains cas je pense).
DarkCenobyte Gamer Maitre
Gamer Maitre
Messages: 253
Inscription: 18 Aoû 2009, 08:20

Re: [TUTO] Dévelloper des apps pour Cydia avec XCode

Message non lupar Quentin » 06 Avr 2011, 13:33

Ah ok :), & tu as créer quoi sur cydia ?
 iPhone 5S - 32Go - Or - Desimlocké - Orange - iOS 7
 MacBook Pro - Intel Core i7 - 2.7 GHz - 8Go RAM - 10.9.3

Mon coup de coeur : AppVip, être rémunéré en testant des applications !
Quentin Gamer Or
Gamer Or
Messages: 7236
Inscription: 01 Jan 2011, 16:03
Localisation: 42000
Prénom: Quentin
Pays: France
Sexe: Homme

Re: [TUTO] Dévelloper des apps pour Cydia avec XCode

Message non lupar DarkCenobyte » 06 Avr 2011, 13:39

Pour l'instant je n'ai rien crée, j'ai juste réussit à faire tourner ce "hello world" (le dernier screenshot que j'ai mis, c'est un simple code pour vérifié que ça marche correctement).

Maintenant que je sais que ça marche, je vais essayé de suivre des tuto sur la programmation d'apps iPhone (ce que l'on trouve par exemple dans ce topic: ressources-pour-apprendre-a-coder-t5236.html )

Enfin, comme je l'ai dit au départ, j'ai rédigé ce tuto rapidement tant que je me souviens de ce que j'ai fais :wink
DarkCenobyte Gamer Maitre
Gamer Maitre
Messages: 253
Inscription: 18 Aoû 2009, 08:20

Re: [TUTO] Dévelloper des apps pour Cydia avec XCode

Message non lupar Quentin » 06 Avr 2011, 14:06

Ah d'accord, tient nous au courant si tu fais quelquechose, je serai le premier à le teste :)
 iPhone 5S - 32Go - Or - Desimlocké - Orange - iOS 7
 MacBook Pro - Intel Core i7 - 2.7 GHz - 8Go RAM - 10.9.3

Mon coup de coeur : AppVip, être rémunéré en testant des applications !
Quentin Gamer Or
Gamer Or
Messages: 7236
Inscription: 01 Jan 2011, 16:03
Localisation: 42000
Prénom: Quentin
Pays: France
Sexe: Homme

Re: [TUTO] Dévelloper des apps pour Cydia avec XCode

Message non lupar MICROMIKE » 13 Mai 2011, 09:17

Bonjour,

Tout d'abord merci pour ce tuto très bien expliqué.
J'ai juste un petit problème lorsque je passe a la partie D dans le 2)
Code:
ldid -S installd
sa m'affiche qu'il ne connait pas la commande ldid
peut-être que c'est parce que j'utilise xcode 4 ? je ne sais pas ...
MICROMIKE Gamer Débutant
Messages: 1
Inscription: 13 Mai 2011, 09:10
Prénom: Micro
Pays: France
Sexe: Homme

Re: [TUTO] Dévelloper des apps pour Cydia avec XCode

Message non lupar ptidd » 13 Mai 2011, 14:37

Wahoo là je dit chapeau, ça c'est du tuto. Je compte me mettre a la prog. sur iPhone alors je pense que ça va bien me servir. Merci encore
iPhone 6 64GB - iOS 8.0.2
ptidd Ancien
Ancien
Messages: 10124
Inscription: 02 Nov 2007, 01:00
Localisation: Montpellier
Pays: France

Re: [TUTO] Dévelloper des apps pour Cydia avec XCode

Message non lupar Quentin » 13 Mai 2011, 16:20

Par contre es ce que c'est le même codage de developper pour cydia ou pour l'appstore ?
 iPhone 5S - 32Go - Or - Desimlocké - Orange - iOS 7
 MacBook Pro - Intel Core i7 - 2.7 GHz - 8Go RAM - 10.9.3

Mon coup de coeur : AppVip, être rémunéré en testant des applications !
Quentin Gamer Or
Gamer Or
Messages: 7236
Inscription: 01 Jan 2011, 16:03
Localisation: 42000
Prénom: Quentin
Pays: France
Sexe: Homme

Re: [TUTO] Dévelloper des apps pour Cydia avec XCode

Message non lupar ptidd » 13 Mai 2011, 16:22

Normalement oui Quentin :)
iPhone 6 64GB - iOS 8.0.2
ptidd Ancien
Ancien
Messages: 10124
Inscription: 02 Nov 2007, 01:00
Localisation: Montpellier
Pays: France

Re: [TUTO] Dévelloper des apps pour Cydia avec XCode

Message non lupar Quentin » 13 Mai 2011, 17:20

Ah ouais cool merci :), parce que j'ai tout pour bien faire là, mais le seul truc que je voulais pas c'était payer la license de développeur, alors si ça marche sur Cydia, What else ? 8)
 iPhone 5S - 32Go - Or - Desimlocké - Orange - iOS 7
 MacBook Pro - Intel Core i7 - 2.7 GHz - 8Go RAM - 10.9.3

Mon coup de coeur : AppVip, être rémunéré en testant des applications !
Quentin Gamer Or
Gamer Or
Messages: 7236
Inscription: 01 Jan 2011, 16:03
Localisation: 42000
Prénom: Quentin
Pays: France
Sexe: Homme

Re: [TUTO] Dévelloper des apps pour Cydia avec XCode

Message non lupar Quentin » 06 Juin 2011, 13:27

Salut, je vais m'y mettre la et je voudrais savoir si après Xcode est réutilisable par défaut, sans les modifications qu'on a apporté ?
 iPhone 5S - 32Go - Or - Desimlocké - Orange - iOS 7
 MacBook Pro - Intel Core i7 - 2.7 GHz - 8Go RAM - 10.9.3

Mon coup de coeur : AppVip, être rémunéré en testant des applications !
Quentin Gamer Or
Gamer Or
Messages: 7236
Inscription: 01 Jan 2011, 16:03
Localisation: 42000
Prénom: Quentin
Pays: France
Sexe: Homme

Suivante

 

Retourner vers Développement et customisation