2013-10-03 14 views
5

Ho cambiato il sdk di base per iOS 6.1 in xcode 5.sebbene ios 6.1 come base sdk xcode 5 build ipa per ios 7

Quando simulo il mio progetto su un simulatore iOS 6.1 o su un dispositivo iOS 6.1 , tutto funziona correttamente. Ma quando costruisco un ipa e lo installo su un dispositivo iOS 7 , il dispositivo utilizza l'sdk iOS 7 e l'app buca sembra strana. Ho cambiato la mia base sdk per iOS 6.1, quindi perché utilizzare il mio dispositivo iOS 7 sdk?

Ho letto che iOS 7 utilizza il sdk iOS 6.1 per le vecchie app pubblicate. Cosa devo fare che iOS 7 lo faccia anche per la mia app? La mia unica idea è di installare nuovamente xcode 4 ...

risposta

6

Ho riscontrato lo stesso problema, sfortunatamente ho scoperto solo dopo essere stato inviato all'app store e l'app è stata approvata e rilasciata, causando ogni sorta di caos a causa di problemi di interfaccia.

Il problema si verifica a causa di un bug in XCode 5 (incluso in XCode 5.0.2 sembra) che viene attivato quando si installano SDK precedenti.

Quando si installano più SDK, si vedrà che quando si connette il dispositivo a XCode, ci sono più voci per il dispositivo, senza modo di distinguerle. Ma sembra che la voce TOP sia per l'SDK OLDEST che hai installato, quello BOTTOM per il NUOVO SDK.

Ho scoperto che se prima utilizzo l'opzione di progetto "Test" per eseguire l'app sul dispositivo con l'SDK che voglio usare (nel mio caso la voce in alto, che è per iOS6.1 SDK), allora quello è l'SDK che verrà successivamente utilizzato quando archivi l'app.

+0

Wow, come mai l'hai capito? Grazie! L'apparente casualità della mia app che appariva tra l'aspetto di iOS6/7 mi faceva impazzire! – elsurudo

+0

Apple richiederà la compilazione con iOS7 SDK a partire da febbraio 2014, quindi se intendi pubblicare la tua app, l'installazione di SDK precedenti è diventata inutile. Credo che questo sia il motivo per cui Apple non ha affrontato questo "bug" - la loro intenzione era che gli sviluppatori si limitassero a usare solo l'ultimo SDK. –