XCode, Mountain Lion e il supporto per iOS 3.x

Piccola premessa: so già che, quando si parla di Apple, OS X, iOS eccetera non bisogna lamentarsi. Quindi, sia chiaro, NON mi sto lamentando. Anche se ho, diciamo, investito quasi una decina di ore per arrivare ad un punto per me accettabile, partendo da una situazione funzionante. Ma, come dicevo, non bisogna lamentarsi perché suppongo che il mio problema (quello di potere aggiornare il sistema operativo e continuare a sviluppare applicazioni per iPhone in grado di girare anche sul mio iPhone 2G – firmware 3.x) sia una cosa che Apple non solo non considera interessante, ma che, probabilmente, tollera senza gradire davvero.

La mia situazione iniziale era questa: OS X 10.6.8 (Snow Leopard) – XCode 4.2 (ovvero l’ultimo XCode in grado di girare su quel OS). Nota: ho un Mac Mini – quindi non mi sono mosso subito con l’aggiornamento del sistema operativo perché avevo paura che le prestazioni ne risentissero, e avevo alcuni progetti aperti che mi suggerivano di non incasinare una situazione cha andava.

Ultimamente avevo fatto un aggiornamento di RAM sul MacMini, e avendo chiuso un po’ delle cose che avevo aperte e sapendo di avere davanti un weekend “tranquillo” ho deciso di aggiornare Snow Leopard a Mountain Lion – complice anche l’ottima politica di prezzi di Apple con i sistemi operativi. L’aggiornamento è andato bene (ha impiegato solo più di quello che mi sarei aspettato) e devo ammettere che il nuovo sistema operativo è agile e gradevole (salvo solo il discorso della rotella del mouse invertita che sto un po’ faticando ad accettare – anche se ne capisco il senso e so che è solo questione di prenderci la mano – o di cercare il settaggio corrispondente per cambiarlo). I problemi però sono nati quando ho lanciato di nuovo XCode – che mi ha fatto presente (con un messaggio e un crash) che non era contento di lavorare su Mountain Lion. Nessun problema – ho pensato – basterà aggiornare anche quello (e tanto è gratuito).

Installare XCode 4.5 ha richiesto un po’ di tempo (qui magari Apple non c’entra – ma ho dovuto provare tre volte prima di avere la versione funzionante, provando prima da AppStore, poi da developers download e poi ancora da AppStore). Lanciato e tutto funziona senza problemi con i progetti che avevo fatto con XCode 4.2, se non fosse che mi accorgo che il supporto per il firmware 3.0 è stato rimosso (il setting di cui parlo è iOS Deployment Target). Anzi, peggio di così: il setting è ancora lì nel mio progetto (mi accorgo del mancato supporto SOLO perché ho controllato le scelte disponibili) ma NON va. Quindi, giusto per chiarire, se io compilo il progetto XYZ e lo spedisco sull’AppStore chi ha un firmware 3.x vedrà l’aggiornamento e quando avrà aggiornato si troverà con l’app XYZ che NON FUNZIONA. Se pensate che non sia vero (o che io sia un pirla) provate ad aggiornare Frotz (o a leggere la loro notarella nelle descrizioni – che però non è detto che vediate prima dell’update se, come mi capita di base, di aggiornamenti ne fate 5-6 alla volta.

Non sto a tediarvi ulteriormente, ma vi dico subito che ho provato a fare una sequenza di cose piuttosto variegate (dopo che non ho trovato una indicazione diretta sul web su come gestire questa cosa) e la soluzione migliore che ho trovato è quella di installare XCode 4.4.1 (trovare il link per il download sul sito per sviluppatori ma, nota di colore, sono riuscito a scaricarlo senza problemi solo da Windows – scaricandolo da Mac mi è arrivato giù due volte in fila corrotto – questo però potrebbe essere solo un problema mio).

Tenendo conto di come è fatto bene XCode post 4.2 (che non si porta più dietro un set di cartelle sparse ma è tutto dentro quella che per l’utente è una unica applicazione) vi anticipo che NON è un problema (o almeno non sembra) avere XCode 4.5 e 4.4.1 installati sulla stessa macchina. Quindi questo non è necessariamente un rollback – e vi lascia la possibilità di usare XCode 4.5 se avete necessità di fare qualcosa che richieda feature del solo iOS 6.x.

Ultima cosa: il progetto che ho aperto con XCode 4.5 si apre ancora con il 4.4.1 MA va l’app compilata comunque in crash sul mio iPhone 2G. Qualunque altro progetto che però NON ho “toccato” con XCode 4.5 si compila e produce una app funzionante anche sul mio vecchio iPhone – quindi suppongo che sia solo questione di scoprire cosa ha aggiornato il 4.5.

Spero di avere risparmiato qualche ora di terrore a qualcuno (o di aiutarlo se ha fatto il passaggio dal 4.4 al 4.5 e non si è accorto di avere magicamente perso il supporto per il firmware 3.0)

Update: il problema con il progetto “toccato” da XCode 4.5 era legato al compilatore selezionato. Rimettendo LLVM GCC 4.2 anche il progetto che non andava più si è rimesso a funzionare. Ammetto di essere contento :-)

2 Responses to “XCode, Mountain Lion e il supporto per iOS 3.x”

  1. Sirio ha detto:

    Da 4.4.1 a 4.5 il piu’ grande cambiamento è stato la rimozione del supporto ad armv6 (mentre è stato aggiunto un altro supporto,comodissimo, ai literals di objective-c). Il compilatore non ha problemi ma hanno aggiornato l’SDK che non contiene piu’ le librerie con codice armv6. Alla fine è “tutto” qua. Esistono modi un po’ artigianali per portare il vecchio SDK armv6 anche su XC 4.5 ma forse la via più comoda è proprio quella di tenersi installati entrambi gli ambienti.

  2. James A. Smith ha detto:

    Where can i download the Xcode 3.2.5 with IOS SDK 4.2 in apple developer portal.Xcode 4 and xcode 3.2.6 only available there.

Leave a Reply

Webmaster: Marco Giorgini - mail: info @ marcogiorgini.com - this site is hosted on ONE.COM

Marco Giorgini [Blog] is powered by WordPress - site based on LouiseBrooks theme by Themocracy