[GUIDA] Come firmare le applicazione create con SDK per il firmware 2.x e come trasferirle nell’iPhone / iPod Touch

Se avete creato un’applicazione utilizzando l’iPhone SDK avrete sicuramente notato che quest’ultima funziona perfettamente nell’iPhone Simulator, ma che è impossibile trasferirla nel vostro iPhone o iPod Touch. Il motivo è molto semplice. Apple, dal nuovo Firmware 2.0.x, permette soltanto l’esecuzione di applicazioni certificate (o firmate). Ottenere un certificato, significa diventare developers a tutti gli effetti, pagando una quota annuale. Ecco quindi una piccola guida che vi aiuterà a firmare le vostre applicazioni (create attraverso i nostri tutorial), e che vi permetterà quindi di installarle sul vostro iPhone e anche su quello degli altri.

Sul blog di Saurik (l’autore di Cydia) troviamo tre differenti metodi per bypassare la signatura del codice. In questo tutoril vi illustrerò il più semplice, ovvero quello che prevede l’utilizzo di LDID, un tool creato dallo stesso Saurik.

Ecco i passi da seguire:

Passo 1) In Xcode, cliccate sul menù a tendina in alto a sinistra, e scegliete l’opzione “Device – iPhone OS 2.X″ (in base alla vostra versione di SDK), ovvero usiamo il nostro iPhone/iPod come dispositivo per la compilazione dell’applicazione. Poco più sotto sceglete “Release”, in modo da avere un’applicazione compilata in maniera ottimale per essere utilizzata.

immagine-11

Passo 2) Cliccate su “Build and Go!” (senza aver connesso il vostro iPhone!) ed otterrete un messaggio di errore. Ecco un paio di errori che potreste avere:

immagine-2immagine-1

Passo 3) L’applicazione è stata compilata e creata da XCode, che però non è riuscito ad installarla sull’iPhone. Niente di problematico, ci pensiamo noi! Andiamo nella cartella del progetto, in cui vedrete molti diversi file, simili a questo screenshot:

Entrate quindi nella cartella “build”. Noterte anche qui diverse cartelle, simili a queste:

immagine-5

La cartelle di nostro interesse è quella con il nome “Release-iphoneos“. Apriamo tale cartella, noteremo due file al suo interno:

Prendete il primo file (che è in realtà l’applicazione vera e propria) che porta lo stesso nome del vostro progetto (nel nostro caso “my RSS reader”) e copiatela tramite SSH nel nostro iPhone, nella cartella /Applications.
Nota: il simbolo di divieto che vedete sull’icona dell’applicazione è normale, in quanto Mac OS non la riconosce come un’applicazione valida. In effetti è un’applicazione, ma per l’OS dell’iPhone!

Passo 4) Avete così messo la vostra applicazione sull’iPhone. Respringate o riavviate l’iPhone, e vedrete l’icona dell’applicazione sulla SpringBoard. Provate ad avviarla.. crasherà subito! Questo perchè l’applicazione non è stata certificata. Ecco che ora ci serve il tool LDID. Aprite Cydia e installate i seguenti package:

  • MobileTerminal
  • LDID “Link Identity Editor”

img_0009

Passo 5) Ora non ci resta che certificare la nostra applicazione. Uscite da Cydia e aprite MobileTerminal. Per prima cosa autentichiamoci come utenti root. Per fare ciò digitiamo:

su root

Vi verrà poi chiesta la password, che è, come sempre, “alpine”.

Nota: mentre digitate la password non vedrete nessun carattere comparire nel terminale, è tutto normale, questo è tipico dei sistemi Unix.

Passo 6) Ora non ci resta che signare la nostra applicazione ed avremo finito! Sempre da terminale digitate:

ldid -S “percorso_programma”

dove percorso_programma è la directory del file che esegue l’applicazione, quindi nel nostro esempio sarebbe ‘/Applications/my RSS reader.app/my RSS reader’. Il nostro comando è quindi:

ldid -S ‘/Applications/my RSS reader.app/my RSS reader’

Nota: racchiudete il percorso tra virgolette per non aver problema con gli spazi presenti nel path dell’applicazione.

Passo 7) Avete fatto!! Eseguite un Respring tramite un programma come “Respring” (che trovate sempre in Cydia) e sarete pronti ad utilizzare la vostra applicazione!!

Andrea Busi | @bubidevs

Laureato in Ingegneria Informatica, ho fondato nel 2008 questo piccolo blog, in cui racconto le mie esperienze e i miei pensieri sul mondo dell'informatica. Nella vita mi occupo di sviluppo software, e nel tempo libero continuo a coltivare la mia passione per il mondo iOS.

ommenti a “[GUIDA] Come firmare le applicazione create con SDK per il firmware 2.x e come trasferirle nell’iPhone / iPod Touch

  1. Alex ha detto:

    Salve, ho seguito la procedura.. ma quando copio la mia applicazione in /Applications e nonostante riavvii la SpringBoard, non mi viene visualizzata la mia applicazione insieme alle altre.. ho un iPod Touch 2.1

  2. Andrea Busi ha detto:

    Con cosa hai riavviato la Springboard? Hai usato l’utility Respring?

  3. tomtom ha detto:

    salve, ho installato l’sdk per il 2.1 e volevo avere qualche informazione maggiore sulle differenze per firmare le applicazioni, si è arrivati a usa soluzione?
    tutte le volte che ho provato a compilare selezionando device mi da errore
    grazie

  4. tomtom ha detto:

    ok ora compila e crea la release ho seguito tutti i passi ma quando cerco di aprire la mia applicazione esce dalla schermata di home, fa l’animazione dove appare la status bar solida ma poi ritorna alla home

  5. Andrea Busi ha detto:

    ma aprire da dove? dal simulatore o direttamente da iPhone/iPod?

  6. tomtom ha detto:

    dal simulatore viene aperto correttamente mentre dall’iphone crasha subito

  7. tomtom ha detto:

    nn c’è un modo x verificare se la signature è stata fatta correttamente sulla determinata applicazione?

  8. Andrea Busi ha detto:

    certo, è anche specificato nella guida..
    quando esegui il comando ldid non devi ottenere nessun messaggio d’errore, questo significa che l’app è stata signata correttamente..
    se ottieni qualche messaggio d’errore hai sbagliato qualcosa..

  9. tomtom ha detto:

    nessun messaggio di errore… se nn è la signature e nel simulatore funziona… che altri errori potrebbero esserci?

  10. tomtom ha detto:

    eheh risolto… avevo i diritti sbagliato sulla app… scusa il disturbo

  11. Andrea Busi ha detto:

    ma strano..
    hai fatto un respring dopo aver fatto la signatura?
    se proprio non riesci prova a mandarmi la tua app via mail, che vedo se a me la signa correttamente..

  12. tomtom ha detto:

    si il respring l’ho fatto solo che la cartella .app aveva diritto 755 ma i file all’interno 644 quindi iniziava a caricare il programma ma poi crashava subito

  13. Andrea Busi ha detto:

    ah ok!!
    quindi hai risolto mi sembra di capire.. ottimo!

  14. andrea ha detto:

    ciao, questa guida è valida anke x il 3.0?? io ho provato ma mi da qst errore:
    Code Sign error: The identity ‘iPhone Developer’ doesn’t match any valid certificate/private key pair in the default keychain

    come faccio ad ottenere i certificati??

  15. Andrea Busi ha detto:

    @andrea: no, questa guida purtoppo è valida solo per i firmware 2.x..
    spero di trovare un metodo uguale e di poter aggiornare la guida al più presto!

  16. dyd_dog ha detto:

    hai trovato qualcosa a riguardo? anche io ho lo stesso problema

  17. Andrea Busi ha detto:

    @dyd_dog: makkè, sembra non esserci ancora niente in rete.. ci tocca aspettare ancora..

  18. dyd_dog ha detto:

    🙁 che peccato. Quindi nessuno dei metodi attuali funziona. E’ un problema dell’ SDK 3.0 o del firmware 3.0?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*