Programmer sans faire partie du iPhone Developer Program

erohares

Membre confirmé
9 Août 2008
10
0
Bonjour.

J'ai un iPhone et je voudrais essayer de me coder des applis (si je peux). J'ai réussi à pouvoir squatter un mac sur Mac OS X 10.6 de temps en temps mais voila je viens de m'apercevoir qu'il fallait payer 79€ pour pouvoir se faire ses propres applis (ou en tout cas pouvoir les transférer sur son iPhone légalement).
J'ai appris qu'on pouvait transférer des données (donc des applis) sur son iPhone par ssh (en le jailbreakant c'est plus simple d'ailleurs...).

Je voudrais savoir quel(s) serai(en)t le(s) fichier(s) à transférer sur mon iPhone pour que le programme fait sur XCode tourne sur mon iPhone ?
D'ailleurs je voudrais surtout savoir si je peux créer les fichiers application pour iPhone à partir de Xcode sans faire partie du iPhone Developer Program. C'est un .ipa ? .app ? (Il est où dans le projet normalement ?) car je ne peux pas compiler vu que je n'ai pas de "clé privée valide" dans mon keychain (trousseau d'accès). Quand je compile pour mon iPhone, j'ai le message suivant :
Code Sign error: The identity 'iPhone Developer' doesn't match any valid certificate/private key pair in the default keychain

Et dans quel répertoire de l'iPhone le déposer SVP ?

J'ai entendu parler d'un SDK non-officiel. Il existe toujours ?

J'ai cherché pendant des semaines sur Google, j'ai trouvé quelques pistes sur certains sites mais rien de concret, c'est pour ça que je me tourne vers vous.

Si quelqu'un a un lien vers un bon tuto pour faire tourner son appli perso sur son iPhone, merci.

Merci d'avoir lu ce petit pavé.
 
Oui c'est possible d'envoyer des applications sur l'iphone sans payer.
Premièrement, tu dois disposer d'un mac, étrange non ? :) et bien sûr tu dois avoir Xcode si possible à jour; j'utilise la version 3.2.1 sur Snow Leopard et d'un iPhone jailbreaké en 3.1.2 mais si tu as un iphone jailbreaké <3.1.2 normalement c'est pareil.

1-Préparation du Mac.

Ouvrir le trousseau d'accés: Utilitaires > trousseau d'accés
A partir du menu Trousseau d'accès, choisir Assistant de certification > créer un certificat.
Dans Nom entrer le nom du certificat et bien le mémoriser dans sa tête. exemple "iphoneCert"
Dans Type d'identité sélectionner "Racine auto-signé"
Dans Type de certificat sélectionner "Signature de code
Cocher Me laisser ignorer les réglages.
>Continuer >Continuer
Dans numéro de série entrer n'importe quel nombre ou chiffre et dans période de la validité laisser 365.
>Continuer
Pour le reste, faites Continuer et enfin Terminer.

Bon on avance quand même ^^ rassure-toi ce qu'on vient de faire n'est pas à refaire en tout cas pas avant un an.

Ouvrer maintenant le projet dans Xcode et ne brancher pas l'Iphone au mac.
A partir du menu Project, choisir Edit Project Settings.
Dans l'onglet Build puis Configuration sélectionner All Configurations.
Toujours dans l'onglet Build, se rendre dans la partie Code Signing et dans Code Signing Identity sélectionner Don't Code Sign.
Faire de même pour la ligne juste en dessous Any iPhone OS Device.
Fermer la fenêtre
Dans Overview, sélectionner Release et iPhone Simulator 3.1.2 (dans mon cas) et exécuter le programme en faisant Build and Run, le simulateur se lance.
Quitter le simulateur et retourner dans Overview et vérifier que Release est toujours sélectionné et sélectionner iPhone Device 3.1.2 (dans mon cas) et exécuter le programme.
Normalement il devrait y avoir build succeeded et un message "Error Starting Executable No provisionned iPhone OS device connected" c'est normal vu que l'iPhone n'est pas branché. :p
Quitter Xcode.

2-Préparation de l'iphone

Sur l'iPhone il devrait y avoir Openssh, pour cela lancer Cydia et dans l'onglet recherche entrer openssh.
Connecter l'iphone au même réseau wifi que le mac puis aller dans Réglages > Wifi et sélectionner le réseau et mémoriser l'adresse IP.

3-De retour sur Mac

Ouvrir le Terminal (ne pas se connecter en root)
Entrer cette commande: platform=/Developer/Platforms/iPhoneOS.platform
Puis celle-ci: allocate=${platform}/Developer/usr/bin/codesign_allocate
et celle-ci: export CODESIGN_ALLOCATE=${allocate}
Maintenant on va pouvoir signer le code en entrant cette commande:
codesign -fs "nom du certificat" monProjet/build/Release-iphoneos/monProjet.app/monProjet
Dans mon cas ça donne:
codesign -fs "iphoneCert" /Users/BreakingTheRabbit/Desktop/mario/build/Release-iphoneos/mario.app/mario

Voila le code est signé.

Pour envoyer le programme sur l'iphone grâce au ssh il faut entrer cette commande:
scp -r programme.app root@IP_DE_IPHONE:/Applications
Il est demandé d'entrer un mot de passe, le mot de passe par défaut est : "alpine".
Dans mon cas ça donne:
scp -r /Users/BreakingTheRabbit/Desktop/mario/build/Release-iphoneos/mario.app root@192.168.1.5:/Applications

4-De retour sur l'Iphone

Redémarrer l'iphone et voila!!.
Un jeu d'enfant non?
 
Ouvrer maintenant le projet dans Xcode et ne brancher pas l'Iphone au mac.
A partir du menu Project, choisir Edit Project Settings.
Dans l'onglet Build puis Configuration sélectionner All Configurations.
Toujours dans l'onglet Build, se rendre dans la partie Code Signing et dans Code Signing Identity sélectionner Don't Code Sign.
Faire de même pour la ligne juste en dessous Any iPhone OS Device.
Fermer la fenêtre
Dans Overview, sélectionner Release et iPhone Simulator 3.1.2 (dans mon cas) et exécuter le programme en faisant Build and Run, le simulateur se lance.
Quitter le simulateur et retourner dans Overview et vérifier que Release est toujours sélectionné et sélectionner iPhone Device 3.1.2 (dans mon cas) et exécuter le programme.
Normalement il devrait y avoir build succeeded et un message "Error Starting Executable No provisionned iPhone OS device connected" c'est normal vu que l'iPhone n'est pas branché. :p

Bonjour,

tes explications ont l'air claires mais là j'ai du rater quelque chose ...
j'ai l'erreur suivante :
CodeSign error: code signing is required for product type 'Application' in SDK 'Device - iPhone OS 3.1.2'

merci de ton aide
 
Je suis vraiment désolé, je viens de m'apercevoir que j'ai oublié une étape.
Dans le dossier /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.2.sdk se trouve un fichier SDKSettings.plist.
Il faut ouvrir ce fichier et dérouler DefaultProperties et mettre CODE_SIGNING_REQUIRED à NO et AD_HOC_CODE_SIGNING_ALLOWED à NO et verifier que CODE_SIGNING_ENTITLEMENTS est bien vide.

Voilà, j'espère que maintenant, ça fonctionne pour toi.
Tiens-moi au courant.
 
Merci de ta réponse !
mais j'ai encore un ptit soucis :rateau:
lorsque je veux modifier ce document (voir pièce jointe)
J'ai un problème d'autorisation, pourtant, j'ai tout mis en "lecture/écriture" et je suis sur le compte admin .

PS : je vais essayer de modifier les autorisations de ce fichier avec BatChmod.

[edit] : même avec batchmod, rien y fait, j'ai toujours le message.

[edit2] : j'ai reussi à modifier le fichier :D : j'ai enregistré le nouveau sur le bureau, j'ai jeté l'ancien, j'ai déplacé le nouveau du bureau dans le dossier. Il m'a demandé un code d'admin et hop, ca a marché !

ensuite la compilation dans xcode fonctionne !!!
merci à toi
:zen:

Pour les testes du transfert vers l'iphone, ca attendra un peu, vu que j'en ai pas à ma disposition pour l'instant.
 
Bonjour,

Mon app à moi c'est juste un petit HelloWorld .. faut bien commencer par quelques chose ^^

Ca fonctionne bien avec le simu. Je me lance donc dans la manip pour l'essayer sur mon iPhone, et la, c'est le drame.

la fenêtre commence à vouloir apparaitre à partir du centre de l'écran, et POF !
l'App s'éteint en moins d'1s .. une idée ?? :mouais:

Sinon, on peut pas avoir un genre de rapport sur l'erreur ? une stackTrace .. un log .. n'importe quoi qui puisse aider au debug ...
 
Hello,

J'ai aussi suivi le tuto pour signer et uploader ma petite appli, et j'ai le meme probleme que toi. L'application est bien présente, et quand je click dessus ca fait rien (ou alors ca se ferme instantanément peut etre).

Des idées ? Je suis toujours en firmware 3.0.3, et j'ai signé l'appli avec le SDK 3.1.3, ca peut etre pour ca ?

Merci
 
bonjour, je relance ce sujet après un long moment d'inactivité car après essai de cette méthode je me retrouve avec un xcode complètement planté... Comment dois-je faire pour revenir sur mes pas et retrouver la configuration initiale ? Il me semble que c'est toute la partie faite dans le terminal que la dernière version de xcode ne digère pas.
Merci d'avance pour ceux qui prendront le temps de regarder et de me sauver la vie...
cordialement Flo21470

PS : la réinstallation d'xcode n'a rien donné