iPhone SDK 3/4 App non verrà eseguito su un dispositivo iPhone 2.x anche con set di destinazione di distribuzione a 2,0

StackOverflow https://stackoverflow.com/questions/3009498

Domanda

So che la differenza tra la base / SDK attivi e la destinazione di distribuzione. Io ho il mio set di base SDK al 4,0 e il set di destinazione di distribuzione a 2,0. Non sto usando qualsiasi API 2.x posta, condizionale o in altro modo. Dal momento che non riesco a eseguire il debug su un dispositivo 2.x, dopo aver costruito, io uso l'iPhone Configuration Utility per installare l'applicazione sul dispositivo, cosa che fa più che bene. Il problema è, non viene eseguito! Ottengo solo uno schermo vuoto. La finestra principale non viene mai in su!

Ora prima di chiedere ...

  1. Ho avuto questo stesso problema con il 3.x. iPhone SDK Ho aggiornato alla 4.x sperando che sarebbe risolto. Non è stato.

  2. Si è installato il profilo di provisioning. (Impossibile installare l'applicazione se non lo fosse.)

  3. Questa stessa applicazione compilato funziona bene su 3.x dispositivi. Stessa cosa con 4.x dispositivi. Basta che non 2.x dispositivi.

  4. Ancora una volta, no non sto usando qualsiasi SDK post-2.x. Per dimostrare questo ho creato un app finestra a base di nuovo di zecca dalla finestra di dialogo 'Nuovo progetto' e le modifiche solo che ho fatto era il colore di sfondo della finestra (per dimostrare l'XIB caricato) e ho impostato la destinazione di distribuzione a 2.0 ( e 'ancora compilato con l'SDK 4.x però.) anche in questo caso, funziona bene su 3.xo 4.x dispositivi, ma solo un nero, schermo in bianco su 2.x. dispositivi.

Ho provato questo su tre dispositivi separati 2.x incluso uno appena restaurato. Ho usato tre macchine dev separati (MacBook Pro con l'SDK 3.x, MacBook Pro con l'SDK 4.xe un Mac Pro con l'SDK 3.x). Stesso risultato ogni volta.

Io sono perplesso.

Il fatto che anche un progetto non modificato non viene eseguito ha davvero mi ha confuso. Potrebbe essere il file XIB? Hanno cambiato il formato da 2.x a qualcosa di più recente nel SDK 3.x? Se sì, come faccio a impostare di nuovo a 2.x. (Ancora una volta, questa è solo una supposizione completo.) Ma sono davvero perplesso!

È stato utile?

Soluzione 3

Si scopre che Apple ha fatto fare un cambiamento di rottura (o, più precisamente, un 'fissare' cambia) che non hanno commentato. In particolare, la nostra applicazione non tramontava esplicitamente la finestra principale visibile sia tramite codice o tramite l'opzione 'Mostra al momento del lancio' in IB. MA ... in una versione del SDK, il runtime, vedere insieme solo bisogno di visualizzazione qualcosa, implicitamente dimostrato la finestra nel file XIB principale. Tuttavia, i più recenti (e più anziani) SDK (tempi di esecuzione in realtà) non hanno avuto questo comportamento implicita in modo che quando il nostro codice non ha mostrato esplicitamente la finestra, abbiamo appena ricevuto una schermata vuota.

Così abbiamo semplicemente controllato l'opzione 'Mostra al momento del lancio' in IB e ha funzionato. Fatto e fatto!

Altri suggerimenti

Avete controllato l'applicationDidFinishLaunching: opzioni:? Chiamata sul app delegato

Le opzioni:. Parametro è stato aggiunto in 3.0 e non è presente in nessuno dei mio codice pre-3.0, anche se la forma precedente funziona ancora

Il dizionario sulle opzioni:. Viene utilizzato per passare informazioni alla vostra applicazione, come ad esempio 'stato Ho iniziato con un URL da Safari' etc

Se si prevede di eseguire su 2.0, probabilmente si dovrebbe cambiare questo nuovo all'originale 'applicationDidFinishLaunching:'.

2.x è completamente deprecato per la pubblicazione ad App Store. Dovreste essere in grado di installarlo su un dispositivo che utilizza una versione precedente di xCode, ma che su di esso. Maggiori informazioni nella mia comunità wiki qui:

Installare xCode 3.2.3 w / iPhone SDK 4, ottenere "Base SDK mancante", non può vedere gli altri SDK

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top