[iPhone SDK] Compilare un applicazione su XCode per il device senza certificato.
Chi tra di voi si sta cimentando nella programmazione per iPhone, avrà notato sicuramente una cosa.
Quando si prova ad impostare la modalità di compilazione da "Simulator" (compilazione ed esecuzione sul simulatore) a "Device" (compilazione per il dispositivo fisico), l'ambiente restituisce un errore riguardante la cosìddetta "Code Signing Identity", ovvero l'identità con la quale XCode cerca di firmare digitalmente l'applicazione stessa.
Tale identità, consiste in un certificato digitale che la Apple rilascia a coloro che si sono iscritti come Developers, ovvero che pagano (un minimo di) 99$ l'anno per inviare applicazioni su App Store.
Ok, ma se io avessi un iPhone jailbreakato e volessi provare una mia applicazione solo sul mio telefono? Possibile che, senza pagare altri soldi oltre a quelli del costo del dispositivo stesso, non posso nemmeno scrivermi le applicazioni ?!?!
Ovviamente c'è un modo abbastanza semplice per ovviare questo problema.
Bisogna editare il file
Fatto questo, riavviate XCode (nel caso sia in esecuzione), aprite il progetto che volete compilare, doppio click sulla prima icona nel pannello "Groups & Files" (quella con il nome del progetto stesso e l'immagine di xcode), cercate la chiave "Code Signing Identity" ed impostatela su "Don't Code Sign", come mostrato nei due screenshot.

Fatto questo, potrete compilare l'applicazione per il vostro device.
Una volta compilata, prendete il bundle .app (ad esempio Prova.app) dalla cartella del progetto, e trasferitela tramite SSH nella cartella /Applications del vostro iPhone.
Fatto questo, sempre tramite ssh, dovrete firmare l'app con un certificato fasullo, quindi il comando da eseguire sarà :
Ora riavviate la springboard e godetevi la vostra applicazione auto-firmata ^^
Quando si prova ad impostare la modalità di compilazione da "Simulator" (compilazione ed esecuzione sul simulatore) a "Device" (compilazione per il dispositivo fisico), l'ambiente restituisce un errore riguardante la cosìddetta "Code Signing Identity", ovvero l'identità con la quale XCode cerca di firmare digitalmente l'applicazione stessa.
Tale identità, consiste in un certificato digitale che la Apple rilascia a coloro che si sono iscritti come Developers, ovvero che pagano (un minimo di) 99$ l'anno per inviare applicazioni su App Store.
Ok, ma se io avessi un iPhone jailbreakato e volessi provare una mia applicazione solo sul mio telefono? Possibile che, senza pagare altri soldi oltre a quelli del costo del dispositivo stesso, non posso nemmeno scrivermi le applicazioni ?!?!
Ovviamente c'è un modo abbastanza semplice per ovviare questo problema.
Bisogna editare il file
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS[VERSIONE].sdk/SDKSettings.plistnel mio caso
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/SDKSettings.plistEd impostare la chiave CODE_SIGNING_REQUIRED da YES a NO salvando poi il file.
Fatto questo, riavviate XCode (nel caso sia in esecuzione), aprite il progetto che volete compilare, doppio click sulla prima icona nel pannello "Groups & Files" (quella con il nome del progetto stesso e l'immagine di xcode), cercate la chiave "Code Signing Identity" ed impostatela su "Don't Code Sign", come mostrato nei due screenshot.

Fatto questo, potrete compilare l'applicazione per il vostro device.
Una volta compilata, prendete il bundle .app (ad esempio Prova.app) dalla cartella del progetto, e trasferitela tramite SSH nella cartella /Applications del vostro iPhone.
Fatto questo, sempre tramite ssh, dovrete firmare l'app con un certificato fasullo, quindi il comando da eseguire sarà :
chmod 755 /Applications/Prova.app/provaDove 'prova' è il file binario contenuto nel bundle.
ldid -S /Applications/Prova.app/prova
Ora riavviate la springboard e godetevi la vostra applicazione auto-firmata ^^













