• DevTutorial
  • Libro
  • Guide Mac
  • Giovedi Contest

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

The AuthorAndrea Busi The Time7 ottobre 2008 Comments23
separator

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!!

separator
Condividi su FriendFeed
separator
Comments
23 Comments
separator
  1. Alex

    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

    ReplicaReplica
  2. Andrea Busi

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

    ReplicaReplica
  3. tomtom

    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

    ReplicaReplica
  4. tomtom

    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

    ReplicaReplica
  5. Andrea Busi

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

    ReplicaReplica
  6. tomtom

    dal simulatore viene aperto correttamente mentre dall’iphone crasha subito

    ReplicaReplica
  7. tomtom

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

    ReplicaReplica
  8. Andrea Busi

    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..

    ReplicaReplica
  9. tomtom

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

    ReplicaReplica
  10. tomtom

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

    ReplicaReplica
  11. Andrea Busi

    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..

    ReplicaReplica
  12. tomtom

    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

    ReplicaReplica
  13. Andrea Busi

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

    ReplicaReplica
  14. andrea

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

    ReplicaReplica
  15. Andrea Busi

    @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!

    ReplicaReplica
  16. dyd_dog

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

    ReplicaReplica
  17. Andrea Busi

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

    ReplicaReplica
  18. dyd_dog

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

    ReplicaReplica
separator
A chi è piaciuto questo articolo?
  1. The Bubi Devs » DevTutorial #6 - SearchIP
  2. Firma applicazioni - ModMyApple.it Forum
  3. The Bubi Devs » [GUIDA] Compilare ed installare applicazioni da XCode direttamente su iPhone 2.2 senza certificato ufficiale!
  4. Bubi Devs » Blog Archive » [Guida] Installare le applicazioni su iPhone OS 3.0 senza certificato direttamente da XCode
  5. [Guida] Installare le applicazioni su iPhone OS 3.0 senza certificato direttamente da XCode | BNotizie Magazine
separator

Scrivi la tua!

© 2010 Bubi Devs. Powered by WordPress Designed by miniMAC
w3c Made in Mac