Pergunta

Sei que partes dessa pergunta foram feitas em várias variações, mas quero ter certeza de que acertou.

Aqui estão minhas suposições e entendimentos que quero saber se eles estão corretos antes de enviar.

Meu aplicativo assume recursos suportados por todos os sistemas operacionais, e então eu deveria:

  1. Defina o SDK ativo como o mais recente (atualmente SDK 3.0).
  2. Defina a meta de implantação como a menor que eu quero ser suportada - iPhone 2.0 e superior?
  3. Para que serve exatamente o SDK base? Devo ignorá -lo se eu escolher o SDK ativo para ser diferente e onde vejo o SDK ativo nas configurações dos projetos?

Uma pergunta final - a Apple está permitindo escolher o iPhone OS 2.0 como destino de implantação?

Desde já, obrigado,

BTW - Um dos meus principais motivos para esta pergunta é porque, quando a compilação com os SDKs anteriores, a Apple parece ter um problema para liberar a memória da UIImageView Animation Array quando essa animação foi salva para uso de vários tempo. Este é um problema conhecido que foi corrigido com o SDK 3.0 (simplesmente definindo a matriz de animação do UIImageView para nulo)

Foi útil?

Solução

A diferença entre a base e o SDK ativo é que o primeiro é o conjunto de SDK padrão para o projeto e o último é o SDK contra o qual você está construindo atualmente. Portanto, é possível que seu SDK ativo seja o SDK base, momento em que o Xcode usará o SDK que você especificou para o projeto.

Para criar seu aplicativo para o maior conjunto de dispositivos possíveis, você está correto:

  • Defina o SDK base para o último SDK possível (3.0, 3.0.1)
  • Defina a meta de implantação para o primeiro SDK possível (2.0)

A Apple permite que você especifique o iPhone 2.0 como o destino de implantação, mas lembre -se de qualquer API ou estrutura lançada após o iPhone 2.0 que você não terá disponível para uso por padrão. Há Técnicas para usar os recursos de SDKs posteriores, no entanto, eles não são triviais.

Outras dicas

Você deve definir a configuração básica de compilação SDK para o mais recente SDK que contém todos os recursos que você pretende usar (geralmente, o mais recente SDK disponível) e definir a configuração de compilação "Iphone Deployment Target" para a versão mais antiga do sistema operacional no sistema operacional que você deseja correr.

Você precisa verificar, em tempo de execução, para qualquer recurso que possa não existir nos sistemas operacionais anteriores.

"Base SDK" é o SDK máximo que você pode suportar. Há um limite rígido aqui - você não pode selecionar um futuro SDK não lançado.

"Target de implantação" é o SDK mínimo que você está disposto a apoiar. É quão longe no tempo você está disposto a ir.

O Xcode parece criar uma dependência espúria de "destino de implantação". Por exemplo, não posso desenvolver no meu ios 5.1.1 iPod com o Xcode 4.5.2 (o Xcode 4.5.2 está emparelhado com o iOS 6.0), mesmo que as APIs e simuladores 4.3, 5.0 e 5.1 estejam instalados nesta instalação. Preciso usar o simulador ou o jack no meu iPhone iOS 6.0.

Os jogos também estão jogando que a Apple parece estar causando problemas com aplicativos. Minha cópia adquirida dos elementos não será sincronizada via iTunes ao iPod, porque os elementos precisam de uma versão mais recente do iOS para executar (ele sincroniza e funciona bem no meu iPhone iOS 6.0).

Eu tenho dois iPads e um é 4,3. Estremeço ao pensar que bagunça isso causará.

No geral;

Defina o SDK base para o mais recente SDK que você está disposto a apoiar e testar.

Defina o destino de implantação para a versão mais baixa do iOS que você está disposto a apoiar e testar.

Se você usar os recursos Base SDK não disponíveis no SDK de destino de implantação, o aplicativo falhará no tempo de execução em dispositivos mais antigos, portanto, o teste será vital.

Um processo alternativo / complementar seria usar o implantação http://www.deploymateapp.com/ que faz análise de código estático para identificar problemas.

Se você é do mundo Android, as analogias são assim;

Targetsdk -> Base SDK

Minsdk -> Target de implantação

Fia

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top