È possibile compilare ed eseguire un progetto Xcode su un dispositivo jailbroken senza un certificato di sviluppatore pagato?

9

Sia per i calci che per motivi di budget, vorrei prendere un pacchetto che normalmente richiede un account sviluppatore e creare un'applicazione per l'esecuzione su un dispositivo iOS jailbroken.

Ho un iPod Touch di quinta generazione, jailbroken usando evasi0n, con iOS 6.1.

Sto usando Xcode 4.6 con OS X (10.8.2) Lion.

    
posta Joncom 21.02.2013 - 08:49
fonte

3 risposte

6

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.SostituiscitutteleoccorrenzediXCiPhoneOSCodeSignContextdiXCCodeSignContext.Cenesonotre(XCodeversione3.2.4+).

  • Hoapportatotremodifichecomeindicatodagliscreenshot.

4. Salva il file e riavvia Xcode.

  • salvato il file.

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 è?

    
risposta data 21.02.2013 - 09:14
fonte
0

È possibile connettere il dispositivo e selezionare il dispositivo iOS come destinazione Run. quando viene eseguito, l'applicazione viene automaticamente installata sul dispositivo. Oppure puoi selezionare il tuo dispositivo iOS, quindi non è necessario eseguire solo costruire e archiviarlo. Successivamente, distribuisci ... scegli Salva per Enterprise o Distribuzione ad hoc. Otterrai il tuo file .ipa. Spero che possa aiutarti ..

    
risposta data 13.03.2013 - 11:50
fonte
0

continua la risposta di @joncom s .. puoi aggiungere direttamente i file .app al tuo iPhone, solo con alcuni passaggi aggiuntivi.

  • copia il file .app sul desktop, quindi esegui il zip su
  • rinomina il [yourappname].zip in [yourappname].ipa
  • quindi vai avanti e scarica AppSync da cydia
  • scarica e installa il file .ipa sul tuo dispositivo

NOTA:

puoi anche farlo direttamente senza passare attraverso tutte le modifiche al codice python di cui parla @joncom .. leggi altro qui

    
risposta data 08.06.2014 - 22:30
fonte

Leggi altre domande sui tag