[Guida] Installare le applicazioni su iOS 5.0 senza certificato direttamente da Xcode

Come molti di voi sapranno, per installare le proprie applicazioni sul device è necessario un certificato, che si può creare solo acquistando la licenza da sviluppatori iOS. Molti utenti alle prime armi non dispongono di tale licenza, ma vogliono ugualmente aver la possibilità di testare le applicazioni sul proprio dispositivo.

Nella guida che trovate di seguito trovate una procedura che vi spiega come installare le applicazioni direttamente da Xcode, senza la necessità di avere un certificato “ufficiale” per lo sviluppo.

La guida è stata testata su iOS 5 e con Xcode 4.2, e risulta funzionante. Potrebbe essere, comunque, che qualcuno non riesca ad utilizzare la guida. Purtroppo non conosco nessun metodo alternativo, quindi se questa procedura non vi funziona dovete per forza acquistare la licenza annuale da sviluppatori.

Ecco la guida!

Premesse

A. Prima di iniziare, aprite Xcode e andate in “Window -> Organizer” e assicuratevi che il vostro dispositivo sia configurato per poter essere utilizzato per il test delle applicazioni.

Se non vedete la schermata così, vi basterà premere il bottone che appare, con una scritta del tipo “Use this device for development”.

B. Il dispositivo dove volete installare l’applicazione deve essere jailbreak (per le guide su come sbloccare il vostro dispositivo vi rimando a siti specializzati nell’argomento, come iSpazio).

C. Da Cydia dovete installare l’utility AppSync, che permette di far funzionare anche applicazioni non certificate. Potete trovare questa utility aggiungendo la seguente repository: http://cydia.hackulo.us

Procedura

1. Assicuriamoci di avere Xcode completamente chiuso, quindi navighiamo fino alla seguente directory:

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

Entrate, poi, nella cartella che riporta la versione dell’SDK che vi serve. Se volete compilare e installare con l’ultima versione disponibile dovrete scegliere la cartella “iPhoneOS5.0.sdk”:

Il file che ci interessa è “SDKSettings.plist“:

2. Dobbiamo modificare questo file, che però è protetto, quindi dobbiamo effettuare dei passaggi supplementari. Trasciniamo il file “SDKSettings.plist” in un altra cartella, ad esempio sulla Scrivania.

3. Ora dobbiamo modificare i valori che ci interessano. Fate clic con il tasto destro sul file appena copiato, aprendolo poi con Xcode

4. Ora modificate i valori in modo da avere un file che rispecchi questo:

Fate attenzione alle stringhe CODE_SIGNING_REQURIED, CODE_SIGN_ENTITLEMENTS e AD_HOC_CODE_SIGNING_ALLOWED.

Chiudete il file avendo cura di salvarlo.

5. Ora dovete solamente rimettere il file nella sua cartella originale. Trascinando il file modificato nella cartella che abbiamo aperto in precedenza, otterrete il seguente messaggio:

Cliccate su “Autentica” e su “Sostituisci” nella schermata successiva:

Vi verrà infine chiesta la vostra password da amministratore:

Abbiamo concluso questa parte.

Utilizzo

L’operazione appena descritta deve essere effettuata una sola volta (o comunque ad ogni aggiornamento dell’SDK).

Ogni volta che create un nuovo progetto in XCode, invece, dovrete fare una piccola modifica alle sue proprietà. Selezionate il vostro progetto e spostatevi nella sezione “Build”.

In essa cerchiamo la vo cerchiamo la voce “Code Signing Identity”. Dal menù a tendina scegliamo “Don’t Code Sign”, in modo che XCode non cerchi nessun certificato. Effettuate l’operazione sia sulla voce “Debug” che su “Release”:

Ora possiamo tranquillamente installare le nostre applicazioni da Xcode, selezionando “iOS Device” dalla barra dei menu superiore:

Se avete eseguito tutto correttamente l’applicazione verrà installata ed eseguita sul vostro dispositivo!

La guida è stata scritta da Andrea Busi per “BubiDevs“.
I ringraziamenti vanno a BigBoss e alla sua guida originale.

Ingegnere informatico e sviluppatore freelance, mi occupo da anni di sviluppo per iOS (ma non solo). Dal 2008 scrivo su questo piccolo blog (con qualche lunga pausa), in cui parlo di programmazione e di qualsiasi altra cosa che mi diverta.

161 comments On [Guida] Installare le applicazioni su iOS 5.0 senza certificato direttamente da Xcode

  • Scusate raga mi da questo errore quando faccio build & run

    No provisioned iOS device is connected.

  • Credo possa dipendere dal fatto che ho una versione 4.0 mentre l’sdk è per 4.2 dove trovo la 4.0? sul sito della apple non la vedo

  • @Francesco: ciao, quell’errore è perchè compili in modalità “Device” e non hai nessun dispositivo collegato..

  • SI ma io l’ho collegato! ho seguito la guida e ho collegato l’iphone dopo aver fatto hello world ma non lo carica su device proprio perchè non lo trova e non capisco come mai

    Please help me!

  • @Francesco: in Organizer controlla che il tuo dispositivo sia abilitato per lo sviluppo 😉

  • Ciao, io ho seguito tutte le istruzioni ma mi da errore e mi dice che è necessario il signing code
    io ho sdk 4.3 … l’ultimo … è incompatibile con questa guida o sbaglio io qualche cosa ?

  • @conca: probabilmente la guida non è compatibile, funzionava con il firmware 3.0, con iOS 4 penso che non sia più possibile utilizzare questo metodo..

  • Ho testato la guida con un iPod Touh 4G e iOS5 con jailbreak tethered effettuato con Redsnow 0.9.9b7 e funziona perfettamente con XCode 4.2 e Lion 10.7.2. Bisogna ricordarsi però di impostare “Dont code sign” nell’opzione “Code signig identity” come mostrato in questa immagine http://imageshack.us/photo/my-images/337/dontcodesign.png

  • @Federico: Ottimo, grazie della conferma ;).. Comunque esatto, è anche scritto nella guida 😉

  • Azz non avevo visto 🙂

  • Ho fatto la procedura, quando premo su RUN, mi installa l’applicazione nel telefono e tenta di aprirla, ma si chiude e sul PC spunta il messaggio d’errore: error launching remote program failed to get the task for process 997
    dove sbaglio?

  • @BySpy: Purtroppo questo è uno dei problemi più comuni. Assicurati di aver seguito tutti i passaggi e soprattutto di aver installato AppSync. Se non funziona ancora non saprei proprio cosa dirti..

  • Ciao Andrea, grazie per la risposta, penso di aver seguito con attenzione la guida ma le app sull’iphone vanno in crash, ho provato ad usare il “vecchio” OS 4.3 con Xcode 3.2.6 e riesco ad installare correttamente le applicazioni sul mio Iphone 4 con IOS 5.
    Boh!
    pazienza

  • Ciao, grazie mille della guida, io ho un problema, non so se va o non va ho un iphone 3gs jb con software 4.3, faccio tutti i passaggi poi quando su xcode do buil mi da errore
    ld: symbol(s) not found for architecture armv7
    collect2: ld returned 1 exit status
    e anche mettendo armv6 non cambia.
    Perchè?
    Grazie mille

  • @Stefano: Ciao, il tuo problema è un po’ strano. Il problema è sull’architettura su cui compila, ma se hai provato già entrambe la cosa è un po’ più intricata. Ho provato a cercare un po’ su Internet e la cosa potrebbe essere dovuta a qualche libreria esterna che hai utilizzato. Prova a controllare e a cercare su internet magari con l’intero messaggio di errore, forse una soluzione la trovi 😉

  • Ciao a tutti! Premetto che ancora non ho sbloccato l’iphone con iOs 5.0 ma a breve lo farò proprio per questo motivo, la mia domanda è questa: quando acquisterò la licenza da sviluppatore (appena prenderò un po’ più di pratica con il linguaggio) e vorrò inviare le apps ad Apple, basterà fare i passaggi inversi per risistemare tutto?

  • @Enzo: Ciao! Certamente, le modifiche da fare sono “superficiali”, basta appunto fare i passaggi inversi e riportare tutto come era prima, non avrai nessun problema 😉

  • ma se ho ios 5.0.1 funziona lo stesso questa guida? perchè ho provato ma mi dice build failed..

  • @simone: Non ho avuto modo di testarlo su iOS 5.0.1, ma penso che non ci sia nessun problema di funzionamento. Sei sicuro di aver eseguito tutti i passaggi correttamente?

  • stesso cosa che è accaduta a simone controllato e ri controllato ( ios 5.0.1)

  • salve, io ho provato ma non va! ho xcode 4 con iPhone 3g jb e appsync. ho fatto tuta la procedura e non mi da nessun errore, anzi quando lancio l’app con run sul device iphone mi dice: finished running ….. ma nell’iphone nessuna traccia dell’app da me creata!!!! come mai?? cosa sbaglio??? grazie

  • dimenticavo il mio iphone supporta solo il 4.2.1 😉

  • Purtroppo ragazzi non riesco ad esservi di aiuto. Io la guida l’ho scritta e testata personalmente, seguendo alla lettera tutti i passaggi a me funziona correttamente.
    Purtroppo è una procedura un po’ “artigianale”, quindi non sempre funziona. Comunque proverò a cercare se esiste una soluzione più affidabile, speriamo! 😉

  • ciao io ho provato questa guida per un iphone jb 5.0.1, però mi esce questo errore “Error launching remote program: failed to get the task for process 895.” sta per aprirmi l’app ma poi si blocca e va nella home.
    cosa potrei fare?

  • Ho fatto tutto il procedimento correttamente, però non riesco ad impostare il mio iPhone come test device, non c’è alcun pulsante per renderlo tale, a te vicino a ‘Provisioning’ c’è scritto ‘Device Test, iOS Team Provisioning Profile: *’, a me c’è scritto ‘No Provisioning Profiles’ ! Come posso risolvere? Grazie 😉

  • @gmonna: No quelli sono due certificati miei, che si ottengono nel portale sviluppatori (con la licenza). Se Xcode riconosce il tuo iPhone deve esserci il bottone “Use for deployment”, basta impostarlo, non servono certificati..

  • Io non riesco a trovare la cartella Developer, il problema è che xcode è stato installato correttamente tramite App Store…non capisco perché 🙁

  • Sono riuscito a trovarla, non so come ma era nel cestino, comunque mi dice CodeSign error: code singing is required 🙁

  • iOS 5.0.1 con xcode 4.4

  • @Luca: A partire da Xcode 4.3 (e quindi anche la 4.4 dedicata a Mountain Lion) Xcode non viene più installato nel percorso “/Developer”, ma è un’unica app contenuta in Applicazioni. Per modificare i file necessari, quindi, vai in “Applicazioni -> Xcode -> Mostra contenuto pacchetto” da li poi prosegui nel percorso indicato nella guida.
    Lascia perdere la copia presente nel cestino, quella puoi pure cancellarla 😉

  • ho seguito le istruzioni alla lettera… con xcode 4.2 funzionava alla perfezione, ma adesso mi dà l’errore e non capisco perchè… magari apple ha cambiato qualcosa riguardo il controllo della validità della licenza…

  • io ho risolto il problema “CodeSign error: code singing is required” semplicemente chiudendo e riaprendo xcode dopo aver settato nella build settings i campi “code signing” tutti su “don’t code sign”

  • ho un iphone 4, ho sviluppato un anno fa un’app in xcode 3.2.4 che girava perfettamente con jb di firmware 4.x
    ieri mi è andato in crash l’iphone e cosi ho dovuto ripristinarlo e adesso ho il fw 5.1, jb con ultrasnow Ho qualche possibilità di installa re tramite xcode 3.2.4 l’app su 5.1?
    grazie 1000

  • @tiziano: Io ho testato la guida su iOS 5.0 e funzionava correttamente. Non so dirti se funziona anche su iOS 5.1, io penso non ci siano problemi, bisogna seguire passo passo la guida e fare, ovviamente, le opportune modifiche per adattarla all’ultimo Xcode 😉

  • “In essa cerchiamo la vo cerchiamo la voce “Code Signing Identity”. Dal menù a tendina scegliamo “Don’t Code Sign”, in modo che XCode non cerchi nessun certificato. Effettuate l’operazione sia sulla voce “Debug” che su “Release”:” lo ho fatto, bene non mi porta l’applicazione sull’iPhone mi dice errore ”
    [BEROR]CodeSign error: code signing is required for product type ‘Application’ in SDK ‘iOS 5.0′” say spiegarmi il perchè?? sono alle primissime army con xCode…

  • risolto Grazie 😀

  • A me nella prima schermata che viene mostrata nella guida (Window –> Organizer) alla voce Provisioning mi indica “No provisioning profile”.
    Se provo a fare “Add Device to provisioning portal” non melo permette, dicendomi “The indicated user is not on any iPhone Development Teams”.
    Come devo fare per procedere?
    Eppure mi sono registrato come developer Apple!

  • Risolto, scusate mi ero perso i passaggi in cui spiegavi la stessa cosa;)

  • Ho un problema, ho aggiornato ad iOS 5.1.1 il mio iPhone 4s, ho fatto il jailbreak untethered e rieseguito tutta la procedura. Riesco ad installare le mie app sull’iPhone, solo che quando tento di aprirle, crashano immediatamente, non si aprono nemmeno. Come risolvo? Grazie 🙂

  • Anche qui stesso problema di gmonna, su iPhone 4!
    fino a ieri le mie 3 o 4 apps fatte con Xcode giravano alla grande (su 5.0.1,) ora crashano tutte quando le lancio su (5.1.1)!
    invece sull’iPhone simulator tutto ok…
    preciso che anche un’app vuota crasha all’avvio! ho installato ovviamente AppSync e tutto il resto funziona benissimo!

    peccato perchè volevo farne vedere una ad un cliente proprio questa settimana! avete consigli? ho già anche ripristinato e rifatto il jb, reinstallato appsync ecc ma senza successo! Xcode è sempre configurato giusto e le app hanno il “don’t code sign” nelle build settings… che sia un bug di absinthe?

  • @gmonna: Ciao, sei sicuro di aver installato AppSync? È il tweak che permette di eseguire app non certificate, probabilmente ti manca quello 😉

    @Fede: Ciao, purtroppo se hai seguito tutta la procedura e non ti funziona non saprei come aiutarti. Se si tratta di lavori per clienti penso che valga la pena acquistare la licenza, la spesa è davvero bassa (80 €), così eviti problemi e vai tranquillo 😉

  • @Andrea Busi: Si certo farò così… Solo mi chiedo cosa ci sia che non va!! Stesso procedimento del 5.0.1 ma qui nulla… Magari ha davvero qualcosa a che vedere con absinthe! Grazie Andrea per il consiglio, complimenti anche per il tuo libro, l’ho acquistato ormai da un’annetto ed è grazie a te che ho iniziato!!

  • @Fede: Potrebbe essere, oppure con iOS 5.1 hanno introdotto ulteriori protezioni, non saprei! Comunque grazie, per qualsiasi cosa sai sempre dove trovarmi 😉

  • Ciao Andrea, sto cercando di scaricare il classico HelloWorld compilato su Xcode sul mio iPad.

    L’ambiente è il seguente:
    iPad2,1
    iOS 5.1.1 con jailbreak
    Mac OS X 10.7.4
    Xcode 4.3.1
    AppSync for iOS 5.0+

    Ho seguito la tua procedura (almeno credo e spero) per fare il deploy di una semplice app sull’iPad e quello che ottengo è … niente … nel senso che apparentemente va tutto bene ma non mi ritrovo alcunché sull’iPad.

    L’unica cosa che credo sia da segnalare è che quando, in Organizer, ho abilitato il dispositivo per lo sviluppo mi ha chiesto un identificativo (purtroppo non ricordo bene il termine che è comparso nella richiesta).
    Qui ho annullato e poi non ho avuto più alcuna segnalazione.

    Quello che succede quando faccio Product->Build for->Running è che non ricevo alcuna segnalazione di errore ma sul dispositivo non trovo traccia dell’app.

    Puoi darmi qualche dritta per capire dove ho o sto sbagliando.

    1000 grazie.
    Antonio

  • Dimenticavo:
    CODE_SIGNING_REQUIRED = NO
    “Code Signing Identity” tutti impostati a “Don’t Code Sign”

    Ciao.

  • @Antonio: Ciao, purtroppo se hai seguito la procedura e non funziona non posso esserti molto d’aiuto. Mi sembra strano che Xcode non ti dia nessun errore, solitamente o da errore oppure l’app compare sul dispositivo ma poi non funziona. Sicuro di aver selezionato “iOS Device” nel menù a tendina di Xcode?

  • Ciao ragazzi, mi sto avvicinando da poco ad xcode e la progettazione di app. Volevo chiedere se questo tutorial funziona con Xcode 3.1.4 e SDK Iphone 3.1.3. Grazie

  • @Alessandro: Ciao, la procedura è del tutto simile anche per Xcode 3.x. Troverai, ovviamente, un po’ di differenze nel tool, però i passi da seguire sono sostanzialmente gli stessi 😉

  • Metodo funzionante su XCode 4.3.3 e iOS 5.1.1

    Aprire “Accesso Portachiavi”
    Menù Accesso Portachiavi -> Assistente Certificato -> Crea un certificato
    Inserire un nome
    Cambiare Tipo certificato in Firma codice
    Spuntare lascia che sia io a sovrascrivere i default
    Andare avanti
    Mettere un seriale a caso
    Mettere la scadenza a 999 giorni
    Andare avanti fino alla fine
    Chiudere “Accesso Portachiavi”
    Aprire “Finder”
    Andare su Applicazioni
    Click destro su XCode -> Mostra contenuto pacchetto
    Aprire Contents -> Developer -> Platforms -> iPhoneOS.platform
    Copiare il file Info.plist sul desktop
    Aprire la copia sul desktop e modificare il valore XCiPhoneOSCodeSignContext in XCCodeSignContext nelle seguenti chiavi:
    DefaultProperties -> CODE_SIGN_CONTEXT_CLASS
    OverrideProperties -> CODE_SIGN_CONTEXT_CLASS
    RuntimeRequirements -> Classes -> Item 0
    Salvare
    Chiudere XCode
    Sostituire il file Info.plist vecchio con quello modificato
    Aprire XCode e creare una applicazione
    Cliccare a sinistra sul nome dell’applicazione e a destra Cliccare su Build Settings
    Cambiare tutte le voci dentro Code Signing col nome del certificato creato in precedenza

    • @asda: Ciao, grazie di aver condiviso questo metodo! Non ho avuto modo di testarlo, vediamo se qualche altro lettore lo testa e ci da conferma del suo funzionamento 😉

  • @asda:
    Grazie!!! funziona a meraviglia!!!

Leave a Reply to Andrea Busi Cancel Reply

Your email address will not be published.

Site Footer