Mavericks sta uscendo e per gli sviluppatori è sempre un periodo impegnativo con tutte queste nuove funzionalità e API da conoscere e utilizzare. Per me, penso che sia il momento perfetto per fare una domanda che mi ha infastidito per molto tempo.Sviluppo dell'app per 10.8+ ma utilizzando 10.9 SDK
Ecco la cosa, nel contesto: sto sviluppando un'applicazione che voglio essere in grado di eseguire su 10.8 (quindi il sistema di destinazione è 10.8+). In questo momento sto usando l'SDK 10.8. Tuttavia, con il rilascio di 10.9 arrivano alcune API piuttosto dolci che vorrei usare nella mia app. Li uso nel mio codice, ma poi, ovviamente, devo compilare la mia app contro l'SDK 10.9. Se lo faccio, posso ancora eseguire l'app su 10.8?
Oppure, in un modo più generale, se compilo la mia app contro un SDK, posso ancora eseguirlo su un Mac OS 'inferiore'? Se sì, puoi spiegare come funziona sotto il cofano (cosa sta facendo il compilatore)? Questo è un mistero per me.
Ma penso che ci siano metodi introdotti, per esempio, in 10.8 che sono disponibili anche su 10.7. Come posso sapere prima di compilare se i metodi sono disponibili su ciascuna versione del sistema operativo? – Alex
Rimane un esercizio per lo sviluppatore. Ci sono alcuni strumenti su cui le persone sono state costrette a controllare le versioni di SDK, anche se ho difficoltà a trovare un esempio in questo momento. Puoi sempre provare a ricompilare il codice con gli altri SDK e non fare degli errori che genera, quindi ripristinare l'SDK e aggirarli. – gaige
Se la destinazione di distribuzione è impostata su una versione precedente, i quadri che non erano disponibili saranno automaticamente collegati in modo debole. Ciò significa che se l'app viene eseguita su una versione precedente, allora le funzioni deboli non collegate avranno i puntatori alle funzioni NULL, i nomi delle classi deboli non disponibili saranno sostituiti da NSClassFromString e i metodi deboli non disponibili restituiranno NO dagli oggetti contenenti 'respondsToSelector: metodo . – geowar