Come promesso nel nostro forum eccovi la guida che vi spiegherà come testare applicazioni su device con SnowLeopard e XCode 4.2, ma prima di addentrarci, facciamo una piccola premessa.
Aggiornare costantemente i dispositivi con l’ultimo OS (o se volete iOS) stabile rilasciato da Apple, ci consente di ottenere, sotto tutti i punti di vista, le migliori performances, non a caso è vivamente consigliato dalla casa madre, inoltre ci fornisce tutte le nuove funzionalità introdotte e le migliorie apportate a quelle vecchie.. insomma… perchè non farlo? Perchè non tenere aggiornati i nostri iPhone e iPad?
Bè, se vediamo il discorso dal punto di vista dell’utente non fa una piega, ma dagli occhi di uno sviluppatore, potrebbero esserci alcune obiezioni. Vediamo quali.
Perchè potremmo non voler subito aggiornare i nostri device?
Il primo motivo riguarda i test delle nostre app, ovvero il fatto di poter provare la nostra applicazione in via di sviluppo su di un dispositivo reale che abbia installata una determinata versione di OS.
Alias: “se ho sviluppato un’app che ha una precisa base SDK, vorrei essere sicuro che i miei utenti che utilizzano proprio quella versione di iOS non facciano critiche di sorta sul funzionamento”. Questo potrebbe portare dei rallentamenti ai nostri aggiornamenti.
Al tempo stesso “non” vorrei avere tanti devices quanti sono gli OS in circolazione.. ognuno di noi ha (o dovrebbe avere) un betatester per ogni versione di OS che si vuole supportare.
La seconda è di ordine economico: Apple vorrebbe che acquistassimo sempre l’ultimo prodotto proposto (iPhone, iPad, ma anche Mac e via dicendo) e, disponibilità economiche permettendo, lo vorremmo anche noi. Ma anche questo non sempre è possibile e di conseguenza siamo soliti scadenziare gli acquisti.
Potrebbe quindi accadere di avere una configurazione simile a questa: abbiamo l’ultimo iPad con iOS 5.1 installato, più un “vecchio” Mac con installato Snow Leopard e Xcode 4.2 (ultima versione disponibile per OS X 10.6). E allora? Bè, con questo setup è impossibile testare sul device: una schermata di warning del nostro IDE ci raggelerà. Vediamo come risolvere.
La soluzione al problema
Vediamo prima di tutto alcune possibili soluzioni:
- Acquistare un nuovo Mac con Lion e installare Xcode 4.3 (ma non sareste qui a leggere questa guida)
- Effettuare il downgrade dell’iDevice (procedura “criptica” ancorchè ostacolata)
- Cercare su devapp.it un tutorial o una guida che spiega come risolvere (eccoci qui :P)
La premessa a questa guida è certamente più prolissa della soluzione, ma attenzione, la meticolosità non deve essere da meno. In maniera non ufficiale, stiamo infatti andando ad alterare le caratteristiche del nostro IDE, con tutte le conseguenze che ne possono derivare, quindi facciamo attenzione.
Cosa dobbiamo fare? In pratica dobbiamo sostituire alcuni files di Xcode, con quelli aggiornati disponibili per Lion.
Il fatto che basti la semplice sostituzione per rendere disponibile il nuovo SDK, ha tutta l’aria di essere una porta lasciata aperta da Apple agli sviluppatori con risorse non necessariamente aggiornatissime. Ma bando alle ciance, cominciamo!
Procuriamoci l’ultima versione dell’SDK (per gli sviluppatori registrati al programma developer di Apple non è un problema, potete loggarvi ed accedere alla pagina dei download). Per comodità vi posto il link diretto: http://developer.apple.com/downloads
Montiamo l’immagine disco ed esploriamone il contenuto.
Posizioniamoci nella cartella che contiene l’SDK:
Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
e copiamo la cartella: iPhoneOS5.1.sdk.
Dobbiamo ora individuare la cartella corrispondente di Xcode sul nostro Mac, vale a dire:
~/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
incolliamo qui il contenuto. Ora la cartella SDKs avrà due sottocartelle /iPhoneOS5.0.sdk
e /iPhoneOS5.1.sdk.
Facciamo la stessa cosa per il contenuto dell’immagine disco alla path:
Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/5.1 (9B176)
che andrà ad affiancarsi al contenuto della cartella Xcode su Mac:
~/Developer/Platforms/iPhoneOS.platform/DeviceSupport/
Qui troviamo i baseSDK del nostro Xcode, quindi incollando il contenuto potremo sviluppare per iOS 5.1.
Ora non resta che aggiornare il simulatore. Questa operazione viene fatta in due passi.
Portiamoci sulla cartella dell’immagine disco:
Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk
copiamo la cartella ed incolliamolo al contenuto della cartella sul nostro Mac:
~/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
Portiamoci quindi su:
Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/
e copiamo il file iPhone Simulator.app.
Nella relativa cartella del Mac:
~/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/
troviamo già un file chiamato iPhone simulatore.app. Provvediamo a rinominarlo (ad esempio _iPhone simulatore.app) e solo successivamente incolliamo il file copiato dall’immagine disco.
Sic et sempliciter!
Avviamo XCode e magicamente fra i simulatori troveremo il 5.1.

Il baseSDK si è aggiornato e potremo usarlo sotto SnowLeopard con Xcode 4.2

Ora possiamo finalmente testare sul nostro iPad 3 la nostra app.
Nota: potremmo ritrovarci con 2 dispositivi disponibili, la scelta è indifferente.

Non lamentiamoci per questa svista di Apple, riteniamoci dei graziati 🙂
Conclusione
Sto testando questo PseudoUpgrade da qualche tempo e sembra funzionare tutto alla perfezione.
Il solo momento di smarrimento l’ho avuto a causa di una mia ingenuità: ho voluto subito testare la mia ultima lavorazione, che avevo fatto girare solo sul simulatore e c’erano un paio di cosette legate alla gestione delle risorse sul device, notoriamente limitate, che mi mandavano in blocco il device. Il problema non era quindi in questa procedura.
NO Panic… È bastato resettare il device!
Riassumo qui brevemente la sequenza ‘antipanico’.
- Premete contemporaneamente il tasto Home + tasto Off per 10 secondi. Per sicurezza guardate Xcode in alto a sinistra dove appaiono i devices, a reset ultimato dovrebbe ricompare un anonimo: “iPad device”.
- Rilasciate i tasti e dopo 3-4 secondi il device si riavvia (classica mela per 10sec… sequenza di boot 30 secondi… finalmente schermata di Home con il rassicurante ‘Sblocca’).
Spero la guida vi sia di aiuto, alla prossima.











3 Responses to “Come testare app su iPad 3 con SnowLeopard e Xcode 4.2”
1 Settembre 2012
DanimartialiceGrande Freellino!
Come sempre
27 Settembre 2012
radioangeloGrande Francesco,
Appena possibile ci provo.
5 Dicembre 2012
GiuseppeScusa ma non è la 3.2 l’ultima versione per snow leoprad ?? Se non è così mi dici come installare la 4.2 ?? Grazie Tante !! :DDD