Qual è il significato di Base SDK, destinazione di distribuzione iOS, Target e Progetto in xcode

Supponiamo di impostare SDK di base su 7, cosa significa? Potrebbe significare che l’app verrà eseguita su iOS 7. Ma questo è l’objective di distribuzione iOS.

Anche perché devo specificare quei 3 valori in entrambi i progetti e target. Non ha senso. Perché specificare la stessa cosa due volte?

L’SDK di base è ciò contro cui costruisci la tua app (cioè includi e file e framework di libreria). Come dici tu, non influisce sul target di implementazione, tranne che su base sdk> = target di deployment.

Si specificano le impostazioni di compilazione su 2 livelli poiché ogni progetto può avere più destinazioni e non si potrebbero desiderare le stesse impostazioni per tutti i target. Le impostazioni a livello di progetto sovrascrivono le impostazioni predefinite e le impostazioni a livello di priorità sovrascrivono le impostazioni a livello di progetto.

Ad esempio, ho progetti con obiettivi OSX e iOS e alcuni sono ARC e alcuni sono MRR. Avrei dovuto avere progetti diversi per ognuno se non ero in grado di specificare le impostazioni di costruzione con il livello di granularità consentito da Xcode.

In iOS 7 TechTalk , sessione Architecting Modern Apps, parte 2, lo spiegano chiaramente

inserisci la descrizione dell'immagine qui

Buona lettura Ciao! Sono disponibile!

Quindi, un’app moderna potrebbe utilizzare iOS 9 come Target SDK e iOS 7 come target di distribuzione. Ciò significa che puoi eseguire su iOS 7, iOS 8 e iOS 9 e che hai a disposizione tutte le chiamate iOS 9 quando esegui effettivamente su iOS 9.

Ho appena riassunto SDK e objective di distribuzione

Base SDK è l’SDK a cui ti colleghi. Il target di distribuzione è la versione iOS minima richiesta che l’applicazione deve eseguire. Puoi build un’applicazione con SDK 7 che funziona con iOS 6. Ma poi devi fare attenzione a non usare alcuna funzione o metodo che non è disponibile su iOS 6. Se lo fai, la tua applicazione si bloccherà su iOS 6 non appena questa funzione è usata

Vedere la documentazione Apple per maggiori dettagli: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html

L’ SDK di base della tua app specifica la versione più alta di iOS supportata dalla tua app. Quando la tua app viene eseguita su un dispositivo su cui è in esecuzione l’ SDK di base dell’app, viene eseguito il set di funzioni completo disponibile nella tua app.

L’ objective di distribuzione della tua app specifica la versione minima di iOS supportata dalla tua app. Pertanto, la Target di distribuzione della tua app deve sempre essere inferiore o uguale al suo SDK di base.

L’ SDK di base deve essere impostato sulla versione del sistema operativo più alta da cui si desidera utilizzare l’API (in genere la versione più alta per la quale si sviluppa e la versione più alta disponibile al momento). La destinazione della distribuzione deve essere impostata sulla versione più bassa su cui il codice deve essere eseguito.

Se il tuo progetto ha più obiettivi, puoi impostare l’SDK di base a livello di progetto e l’impostazione viene ereditata da tutte le destinazioni. È inoltre ansible modificare l’SDK di base per un particolare objective a livello di destinazione.

Link alla fonte