Domanda

So che parti di questa domanda è stato chiesto in diverse variazioni, ma voglio fare in modo ho capito bene.

Ecco le mie ipotesi e comprensioni che voglio sapere se sono corrette prima della presentazione.

La mia applicazione assume caratteristiche supportate da tutti i sistemi operativi, e quindi dovrei:

  1. Imposta l'SDK attivo essere l'ultima (attualmente SDK 3.0).
  2. Imposta la destinazione di distribuzione per essere la più bassa voglio essere sostenuto -? IPhone 2.0 e superiori
  3. Che cosa è esattamente l'SDK Base per? dovrei ignorarlo se ho scelto SDK attivo di essere diversi e dove vedo l'SDK attiva nelle impostazioni di progetti?

Una domanda finale - è Apple che permette di scegliere iPhone OS 2.0 come destinazione di distribuzione

Grazie in anticipo,

A proposito - uno dei miei ragione principale per questa domanda è perché quando si compila con gli SDK precedenti Apple sembra avere un problema rilasciando la memoria per UIImageView serie di animazione in cui questa animazione è stato salvato per l'utilizzo di tempo multiplo. Questo è un problema noto che è stato fissato con SDK 3.0 (semplicemente impostando l'animazione matrice UIImageView a zero)

È stato utile?

Soluzione

La differenza tra la base e SDK attivo è che il primo è il set SDK di default per il progetto e la seconda è l'SDK che si sta costruendo contro. Così è possibile per il vostro SDK attivo da SDK Base, a quel punto XCode utilizzerà lo SDK specificato per il progetto.

Al fine di costruire la vostra applicazione per la più ampia serie di dispositivi possibili, lei ha ragione:

  • Imposta l'SDK Base per la lastest SDK possibile (3.0, 3.0.1)
  • Imposta la destinazione di distribuzione al più presto possibile SDK (2.0)

Apple fa consentono di specificare iPhone 2.0 come destinazione di distribuzione, ma tenete a mente qualsiasi API o di un quadro rilasciato dopo iPhone 2.0 non avrete a vostra disposizione per l'uso di default. Ci sono tecniche per utilizzare le funzioni di seguito SDK , tuttavia essi non sono banali.

Altri suggerimenti

È necessario impostare la build SDK Base impostazione per l'ultimo SDK che contiene tutte le caratteristiche che si intende utilizzare (di solito, l'ultimo disponibile SDK), e impostare il "iPhone distribuzione di destinazione" costruire l'impostazione alla prima versione di il sistema operativo su cui si desidera eseguire.

È quindi necessario fare in modo di controllare, in fase di esecuzione, per tutte le funzioni che non possono esistere sui sistemi operativi precedenti.

"Base SDK" è l'SDK massima voi l'applicazione in grado di supportare. C'è un limite rigido qui -. Non è possibile selezionare un futuro, SDK inedito

"Deployment Target" è l'SDK minima si è disposti a sostenere. E 'quanto indietro nel tempo si sono disposti ad andare.

Xcode sembrano creare una dipendenza spurio sulla "distribuzione di destinazione." Ad esempio, non posso sviluppare le mie iOS 5.1.1 per iPod con Xcode 4.5.2 (Xcode 4.5.2 è accoppiato con iOS 6.0), anche se i 4.3, 5.0, e 5.1 API e simulatori sono installati su questa installazione. Ho bisogno di utilizzare il simulatore o presa nel mio iOS 6.0 iPhone.

I giochi di Apple sta giocando sembra causare i problemi con le applicazioni, anche. La mia copia acquistata di elementi non sincronizzazione tramite iTunes per l'iPod in quanto elementi ha bisogno di una nuova versione di iOS per eseguire (si sincronizza e funziona bene sul mio iOS 6.0 iPhone).

Ho due iPads e uno è 4.3. Mi vengono i brividi a pensare che casino causerà.

In generale;

Imposta l'SDK di base al più recente SDK si è disposti a sostenere e test.

Imposta la destinazione di distribuzione per la versione più basso di iOS si è disposti a sostenere e test.

Se vi capita di usare Base SDK funzioni non disponibili sul SDK destinazione di distribuzione, l'applicazione sarà in crash in fase di esecuzione sui vecchi dispositivi, quindi il test è di vitale importanza.

Un processo alternativo / complementare sarebbe usare Deploymate http://www.deploymateapp.com/ che fa analisi statica del codice per identificare i problemi.

Se si da mondo di Android le analogie sono tali;

TargetSDK -> Base SDK

MinSDK -> distribuzione di destinazione

Lint -> Deploymate

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