Est-il possible de compiler et d'exécuter un projet Xcode sur un appareil jailbreaké sans certificat de développeur payant?

9

À la fois pour des coups de pied et pour des raisons budgétaires, j'aimerais prendre un package qui nécessiterait normalement un compte de développeur et créer une application à exécuter sur un appareil iOS jailbreaké.

J'ai un iPod Touch de 5e génération, jailbreaké avec evasi0n, exécutant iOS 6.1.

J'utilise Xcode 4.6 avec OS X (10.8.2) Lion.

Joncom
la source

Réponses:

6

Les étapes pédagogiques suivantes pour atteindre cet objectif sont tirées de: http://iphonedevwiki.net/index.php/Xcode

Mes constatations et mes actions sont présentées à chaque étape.

1. Créez un certificat de signature de code auto-signé avec le nom «iPhone Developer» sur le trousseau «login» (par défaut) à l'aide de Keychain Access.

  • J'ai pris des captures d'écran en suivant les instructions ci-dessus.
  • J'ai laissé la plupart des champs vides ou à leur valeur par défaut.

entrez la description de l'image ici

2. Ouvrez /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist(4.2 ou inférieur:) /Developer/Platforms/iPhoneOS.platform/Info.plist. Vous devrez peut-être l'autorisation root.

  • J'utilise Xcode 4.6, j'ai donc ouvert l'ancien .plistfichier.

3. Remplacez toutes les occurrences de XCiPhoneOSCodeSignContextpar XCCodeSignContext. Il y en a trois (XCode version 3.2.4+).

  • J'ai fait trois modifications comme l'indiquent les captures d'écran.

entrez la description de l'image ici entrez la description de l'image ici entrez la description de l'image ici

4. Enregistrez le fichier et redémarrez Xcode.

  • Enregistré le fichier.

5. Assurez-vous d'avoir ldid sur votre Mac. Placez une copie quelque part par exemple dans /usr/local/bin.

6. Créez le script Python ldid3.py juste à côté du programme ldid. Rendez-le exécutable. Remplissez-le avec:

#!/usr/bin/env python

from sys import argv
from subprocess import check_call
from os.path import basename, dirname, splitext, join
from tempfile import NamedTemporaryFile

app = argv[-1]
ldid_path = join(dirname(__file__), 'ldid')
obj_path = join(app, splitext(basename(app))[0])

if '-gta' not in argv:
    check_call([ldid_path, '-S', obj_path])
else:
    with NamedTemporaryFile('w+b', 0) as f:
        f.write("""
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>get-task-allow</key>
    <true/>
  </dict>
</plist>
        """)
        check_call([ldid_path, '-S' + f.name, obj_path])
  • J'ai créé un nouveau fichier texte brut et copié-collé le code ci-dessus.
  • J'ai enregistré ce fichier sous ldid3.pyet l' ai stocké dans le /usr/local/binrépertoire.
  • Dans le terminal, a couru chmod 777 /usr/local/bin/ldid3.py.

7. Ouvrez iPhoneCodeSign.xcspec. Ce fichier se trouve dans [Pour Xcode 4.6: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec]:

8. Modifiez l'entrée dans le fichier d'appeler codesignà ldid3.py.

  • Conformément aux instructions officielles, convertissez le fichier de spécifications en texte brut en tapant dans la console: sudo plutil -convert xml1 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
  • J'ai ouvert le fichier avec TextEdit.
  • Remplacé <key>CommandLine</key><string>/usr/bin/codesign</string>par <key>CommandLine</key><string>/usr/local/bin/ldid3.py</string>.

9. Enregistrez le fichier et redémarrez Xcode.

  • J'ai enregistré le fichier et quitté TextEdit.

10. Créez un fichier /var/mobile/tdmtanfsur l'appareil pour activer le «contournement TDMTANF» d'Apple dans installd (avertissement: cela vous mettra également dans un GameCenter en bac à sable).

  • Je crée un fichier texte vide dans Windows, je l' tdmtanfai nommé , SSH dans mon iPod, l'ai téléchargé /var/mobile/et redémarré mon iPod.

Maintenant que tout est fini avec ...

J'ouvre mon projet Xcode existant et clique sur Exécuter. Cela fonctionne dans le simulateur iOS sans aucun problème.

entrez la description de l'image ici

Je m'assure que la signature de code est définie pour utiliser le certificat configuré à l'étape 1.

entrez la description de l'image ici

Je crée l'application (Projet> Build). Un message de réussite suit.

Je prends mon dossier de l' application TicTacToe.appde /Libary/Developer/Xcode/DerivedData/TicTacToe-cjgzmoxtflyegtfypsbxbuiuwxns/Build/Products/Debug-iphoneos/et transférer à ma machine Windows pour installer sur mon iPod.

Pour essayer d'installer l'application sur mon iPod, je glisse TicTacToe.appsur la section des applications de l'utilitaire de configuration iPhone, mais j'ai reçu ce message d'erreur disant que mon application "n'est pas une application mobile valide".

J'ai aussi essayé d' installer manuellement l'application à l' aide iFunbox et l' AppCake application trouvée dans Cydia. Les deux échouent.

entrez la description de l'image ici entrez la description de l'image ici

Comme point d'intérêt, car comme j'ai fait des recherches sur Google, j'ai remarqué que beaucoup de gens mentionnent l'importance de ceci: j'ai installé AppSync. (Désolé pour l'énorme capture d'écran. Si je dois la retirer, faites-le moi savoir!)

entrez la description de l'image ici

Conclusion

Ainsi, même si j'ai suivi les instructions de près, plusieurs fois, mon application n'est pas reconnue par l'iPhone Configuration Utility comme une application valide. Je ne peux pas installer l'application manuellement à l'aide de programmes comme iFunbox ou d'applications Cydia comme AppCake.

Je soupçonne que l'application est en effet invalide, mais après avoir suivi attentivement les instructions, je ne sais pas pourquoi.

Quelqu'un peut-il me dire pourquoi mon application n'est pas valide et ce que je peux faire pour résoudre ce problème, en plus de cracher de l'argent?

Joncom
la source
C'était une lecture intéressante, cependant.
Thecafremo
Non - heureux de l'avoir lu et j'y reviendrai probablement à l'avenir. Merci de le partager.
Robert
Cela m'a été très utile lorsque j'ai travaillé sur Xcode 4.2 et iOS 4, j'espère que quelqu'un pourra mettre à jour la procédure vers Xcode 4.6
rraallvv
Après avoir téléchargé ldid, vous devez changer ses autorisations en 755 avec chmod 755 ldid. Cela me causait une erreur de sortie 1.
0

Vous pouvez connecter votre appareil et sélectionner votre appareil iOS comme cible d'exécution. lors de son exécution, l'application s'installe automatiquement sur votre appareil. Ou vous pouvez sélectionner votre appareil iOS, alors pas besoin de simplement l'exécuter et de l'archiver. Après cela, distribuez ... choisissez Enregistrer pour l'entreprise ou Déploiement ad hoc. Vous obtiendrez votre fichier .ipa. J'espère que ça peut t'aider..

sl33py
la source
0

en poursuivant la réponse de @joncom .. vous pouvez ajouter les fichiers .app directement sur votre iPhone, en quelques étapes supplémentaires.

  • copiez le .appfichier sur votre bureau, puis zippez-le
  • renommer le [yourappname].zipto[yourappname].ipa
  • alors allez-y et téléchargez AppSync de cydia
  • téléchargez et installez le fichier .ipa sur votre appareil

REMARQUE:

vous pouvez également le faire directement sans passer par toutes les modifications de code python mentionnées par @joncom .. lire la suite ici

Leo
la source