[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.
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:
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:
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”
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!!
























10 ottobre 2008 alle 12:05
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
10 ottobre 2008 alle 14:59
Con cosa hai riavviato la Springboard? Hai usato l’utility Respring?
14 ottobre 2008 alle 21:47
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
14 ottobre 2008 alle 22:27
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
14 ottobre 2008 alle 23:23
ma aprire da dove? dal simulatore o direttamente da iPhone/iPod?
14 ottobre 2008 alle 23:25
dal simulatore viene aperto correttamente mentre dall’iphone crasha subito
14 ottobre 2008 alle 23:36
nn c’è un modo x verificare se la signature è stata fatta correttamente sulla determinata applicazione?
14 ottobre 2008 alle 23:38
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..
14 ottobre 2008 alle 23:41
nessun messaggio di errore… se nn è la signature e nel simulatore funziona… che altri errori potrebbero esserci?
14 ottobre 2008 alle 23:45
eheh risolto… avevo i diritti sbagliato sulla app… scusa il disturbo
14 ottobre 2008 alle 23:46
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..
15 ottobre 2008 alle 10:36
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
15 ottobre 2008 alle 10:39
ah ok!!
quindi hai risolto mi sembra di capire.. ottimo!
14 luglio 2009 alle 18:42
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??
14 luglio 2009 alle 20:42
@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!
27 agosto 2009 alle 17:13
hai trovato qualcosa a riguardo? anche io ho lo stesso problema
27 agosto 2009 alle 23:26
@dyd_dog: makkè, sembra non esserci ancora niente in rete.. ci tocca aspettare ancora..
28 agosto 2009 alle 13:10