Le seguenti istruzioni per realizzare questo scopo sono tratte da:
link
Le mie scoperte e le mie azioni sono fornite in ogni fase.
1. Crea un certificato di firma del codice autofirmato con il nome "Sviluppatore iPhone" sul portachiavi "login" (predefinito) utilizzando Accesso Portachiavi.
- Ho preso degli screenshot mentre seguivo le istruzioni precedenti.
- Ho lasciato la maggior parte dei campi vuoti o al loro valore predefinito.
2.Apri/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist
(4.2oinferiore:/Developer/Platforms/iPhoneOS.platform/Info.plist
).Potrestiaverbisognodelpermessodiroot.
- StoutilizzandoXcode4.6,quindihoapertoilprecedentefile
.plist
.
3.SostituiscitutteleoccorrenzediXCiPhoneOSCodeSignContext
diXCCodeSignContext
.Cenesonotre(XCodeversione3.2.4+).
- Hoapportatotremodifichecomeindicatodagliscreenshot.
4. Salva il file e riavvia Xcode.
5. Assicurati di avere ldid sul tuo Mac. Posiziona una copia da qualche parte, ad es. in /usr/local/bin
.
- Ho scaricato ldid dal link
- L'ho messo in
/usr/local/bin
.
6. Crea lo script Python ldid3.py accanto al programma ldid. Rendilo eseguibile. Completalo con:
#!/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])
- Ho creato un nuovo file di testo semplice e ho incollato il codice sopra in esso.
- Ho salvato questo file come
ldid3.py
e l'ho salvato nella directory /usr/local/bin
.
- Nel terminale, eseguito
chmod 777 /usr/local/bin/ldid3.py
.
7. Apri iPhoneCodeSign.xcspec
. Questo file può essere trovato in [Per Xcode 4.6: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
]:
8. Cambia la voce nel file dalla chiamata di codesign
a ldid3.py
.
- Come da istruzioni ufficiali, convertito il file spec in testo semplice digitando nella console:
sudo plutil -convert xml1 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
- Ho aperto il file con TextEdit.
- Sostituito
<key>CommandLine</key><string>/usr/bin/codesign</string>
con <key>CommandLine</key><string>/usr/local/bin/ldid3.py</string>
.
9. Salva il file e riavvia Xcode.
- Ho salvato il file e chiuso TextEdit.
10. Crea un file /var/mobile/tdmtanf
sul dispositivo, per abilitare il "TDMTANF bypass" di Apple in installd (attenzione: così facendo ti metterà anche in un GameCenter in modalità sandbox).
- Creo un file di testo vuoto in Windows, lo chiamo
tdmtanf
, SSH nel mio iPod, lo ho caricato in /var/mobile/
e riavvia il mio iPod.
Ora tutto è finito con ...
Apro il mio progetto Xcode esistente e premo Esegui. Funziona su iOS Simulator senza problemi.
Miassicurochelafirmadelcodicesiaimpostataperutilizzareilcertificatoimpostatonelpassaggio1.
Costruisco l'app (Project > Build). Segue un messaggio di successo.
Raccolgo la mia cartella app TicTacToe.app
da /Libary/Developer/Xcode/DerivedData/TicTacToe-cjgzmoxtflyegtfypsbxbuiuwxns/Build/Products/Debug-iphoneos/
e la trasferisco sul mio computer Windows per installarla sul mio iPod.
Nel tentativo di installare l'app sul mio iPod, trascino TicTacToe.app
nella sezione delle applicazioni dell'iPhone Configuration Utility, ma ho ricevuto questo messaggio di errore dicendo che la mia app "non è un'applicazione mobile valida."
Ho anche provato a installare manualmente l'app utilizzando iFunbox e AppCake app trovata in Cydia. Entrambi falliscono.
Come punto di interesse, perché come ho fatto su Google, ho notato che molte persone menzionano l'importanza di questo: ho installato AppSync. (Ci scusiamo per l'enorme screenshot. Se dovessi eliminarlo, faccelo sapere!)
Conclusione
Quindi, nonostante le istruzioni seguite da vicino, diverse volte, la mia app non è riconosciuta da iPhone Configuration Utility come app valida. Non riesco a installare l'app manualmente utilizzando programmi come iFunbox o app Cydia come AppCake.
Sospetto che l'app sia effettivamente invalida, ma avendo seguito attentamente le istruzioni, non sono sicuro del perché.
Qualcuno può dirmi perché la mia app non è valida e cosa posso fare per risolvere il problema, oltre a sputare soldi che è?