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.
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
.plist
fichier.
3. Remplacez toutes les occurrences de XCiPhoneOSCodeSignContext
par XCCodeSignContext
. Il y en a trois (XCode version 3.2.4+).
- J'ai fait trois modifications comme l'indiquent les captures d'écran.
4. Enregistrez le fichier et redémarrez Xcode.
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.py
et l' ai stocké dans le /usr/local/bin
ré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/tdmtanf
sur 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'
tdmtanf
ai 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.
Je m'assure que la signature de code est définie pour utiliser le certificat configuré à l'étape 1.
Je crée l'application (Projet> Build). Un message de réussite suit.
Je prends mon dossier de l' application TicTacToe.app
de /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.app
sur 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.
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!)
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?