O Xcode 5 possui um painel de preferências que permite fazer o download do simulador do iPhone 6.1, no entanto, não consigo encontrar um local em que ele permita o download do iOS 6 SDK, portanto, não é possível definir o SDK ativo para o iOS 6 ao desenvolver o Xcode 5 Existe uma solução alternativa que permita ao Xcode 5 instalar o iOS 6 SDK?
EDITAR:
As soluções alternativas não serão mais necessárias agora que o Xcode 5 está geralmente disponível e permite que você baixe versões anteriores do SDK.
Respostas:
EDIT: A partir de 1º de fevereiro de 2014, a Apple não aceitará mais aplicativos pré-iOS7 para envio à App Store. Portanto, embora essa técnica ainda funcione, não será útil para a maioria dos leitores.
Sim, está bem. Ainda construo com o iOS 4.3 para um projeto (já faz um tempo desde que atualizamos; mas eles ainda o aceitaram após o lançamento do iOS 6), e atualmente construo 10.5 aplicativos com o Xcode 5.
Consulte Como apontar o Xcode para um SDK antigo para que ele possa ser usado como um "SDK Base"? para detalhes sobre como configurá-lo. Você pode usar meu script fix-xcode para vincular tudo para você sempre que atualizar.
O único truque é obter os SDKs antigos. Se você não os possui, geralmente precisa fazer o download de versões antigas do Xcode (ainda disponíveis no developer.apple.com ), abrir o pacote do instalador e procurar o SDK necessário.
Os SDKs podem ser encontrados no pacote do instalador em:
fonte
Eu também estava executando o mesmo problema quando atualizei para o xcode 5 e removi o sdk mais antigo. Mas tirei a cópia do SDK mais antigo de outro computador e o mesmo pode ser baixado no seguinte link.
http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html
(www.4shared.com conta de teste [email protected]/test)
Existem 2 maneiras de trabalhar.
1) Descompacte e cole esta pasta em /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs e reinicie o xcode.
Mas isso pode ser removido novamente pelo Xcode se você atualizar o xcode.
2) Outra maneira é descompactar e colar onde quiser e vá para /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs e crie um link simbólico aqui, para que o SDK permaneça o mesmo, mesmo que você atualiza o Xcode.
Outra alteração que fiz, Configuração de construção> Arquiteturas> padrão (não 64), para listar todas as versões do Deployment Target
Não é necessário fazer o download do zip se você apenas deseja alterar o destino de implantação.
Aqui estão algumas capturas de tela.
fonte
Sim, acabei de resolver o problema hoje.
Então você pode escolher o SDK como abaixo:
Espero que isso ajude você.
fonte
Encontre e baixe o SDK antigo. Os SDKs mais antigos são encontrados aqui .
Copiei o diretório xcode.app como Xcode_4.6.3.app.
Agora você pode testar e depurar nas duas versões do xcode. Você precisa executá-los nas pastas correspondentes ou criar atalhos na área de trabalho. Ao construir a partir da linha de comando, forneça o parâmetro como em
iPhoneOS6.1
vez deiPhoneOS7.0
Isso funcionou muito bem para mim no Xcode5 e iOS.
Vá para o dir SDK do Xcode5. Geralmente está localizado em:
Adicione um link simbólico ao SDK antigo como este:
Ou, com mais precisão, de qualquer lugar da linha de comando,
fonte
Você pode baixar o SDK mais antigo e instalá-lo no
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
pasta. Sair + Faça login apenas para garantir que as alterações tenham efeito e você deverá ver o SDK mais antigo em seu novo XCode
fonte
Apenas para adicionar, você pode realmente baixar versões antigas do simulador com o próprio Xcode 5 - basta ir às preferências e você as encontrará em Downloads:
fonte
Abra uma janela do terminal
Você será solicitado a digitar uma senha, pois está dentro de uma pasta do sistema
fonte
Apenas para mim a solução mais fácil:
Para testar um aplicativo no iOS 6 no seu simulador: - Basta escolher o iOS 6.0 no seu sheme ativo.
Para criar seu aplicativo no iOS 6, o design do aplicativo também será o mais antigo em um iPhone com iOS 7: - Escolha iOS6.1 em Destinos - SDK base
Observe: quando você altera o SDK base em seus destinos, o iOS 7.0 não estará mais disponível para a criação no simulador!
fonte
Posso fazer isso , mas não é realmente necessário
Como fazer isso
Jason Lee conseguiu a resposta. Ao instalar o xCode, preferi manter as instalações anteriores em vez de substituí-las. Então, eu os tenho na minha pasta de instalação
Portanto,
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
contém sdks diferentes. (Substitua Xcode.app pelo número correto) copie os sdks anteriores para/Applications/Xcode 3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
Aqui está minha pasta depois de copiar uma.
Agora reinicie o xCode e você pode definir as versões anteriores do sdks como sdk base.
Por que não é necessário
Referindo a Documentação da Apple
Para usar um SDK específico para um projeto do Xcode, faça duas seleções nas configurações de compilação do seu projeto.
Escolha um destino de implantação .
Isso identifica a versão mais antiga do sistema operacional na qual seu software pode ser executado.
Escolha um SDK base
Seu software pode usar os recursos disponíveis nas versões do sistema operacional, inclusive o correspondente ao SDK base. Por padrão, o Xcode define isso para o sistema operacional mais recente suportado pelo Xcode.
A regra é Usar o mais recente como SDK base e definir o destino de implantação para a versão mínima que o aplicativo deve executar
Por exemplo, você pode usar o iOS 7 como sdk base e definir o iOS 6 como destino de implantação. Execute no simulador do iOS 6 para testar como ele funciona no iOS 6. Instale o simulador, se não estiver disponível na lista de simuladores.
Além disso, você pode usar incondicionalmente os recursos até o iOS 6. E condicionalmente, você pode oferecer suporte a novos recursos do iOS 7 para novos dispositivos atualizados, além de versões anteriores.
Isso pode ser feito usando Classes fracamente ligados , fracamente ligados Métodos , Funções e símbolos
https://developer.apple.com/library/ios/documentation/developertools/conceptual/cross_development/Using/using.html#//apple_ref/doc/uid/20002000-SW3
Ligação fraca
Suponha que no Xcode você defina o destino de implantação (versão mínima necessária) para iOS6 e o SDK de destino (versão máxima permitida) para iOS7. Durante a compilação, o compilador vincularia fracamente qualquer interface que fosse introduzida no iOS7 e vincularia fortemente interfaces anteriores. Isso permitiria que seu aplicativo continuasse sendo executado no iOS6, mas ainda aproveitaria os recursos mais recentes quando estiverem disponíveis.
fonte
As outras respostas aqui também estão corretas, mas considero as seguintes etapas as mais fáceis:
Faça o download do Xcode 4.6.3 no link do centro de desenvolvimento que diz "Procurando uma versão mais antiga do Xcode?" (atualmente aponta aqui ) e monte o dmg.
Em seguida, no terminal, copie os arquivos SDK sobre:
Por fim, reinicie o Xcode e pronto.
fonte
Meu aplicativo foi transferido para o Xcode 5 sem problemas, porque ainda pode ser construído com o Destino de Implantação do iOS original que você definiu no projeto (5.1 no meu caso). Se o novo SDK não causar algum problema intransponível, por que não criar usando-o? Certamente, existem muitas melhorias ocultas.
Por exemplo, eu prefiro usar o Xcode 5 em vez do 4.6.3. Por quê? Vou ter muito mais vida útil da bateria porque a rolagem da interface do usuário das áreas de texto / código no Xcode 5 não absorve mais um encadeamento inteiro da CPU.
fonte
Vincular o SDK 6.1 ao Xcode 5, conforme descrito nas outras respostas, é uma etapa. No entanto, isso ainda não resolve o problema de executar no iOS 7 novos elementos da interface do usuário, ver os controladores em tamanho real etc.
Conforme descrito nesta resposta , também é necessário mudar a interface do usuário para o modo legado no iOS 7:
Cuidado: esta é uma chave não documentada e não é recomendada para compilações da App Store!
Além disso, em minha experiência ao testar no dispositivo, descobri que ele funciona apenas na segunda vez em que inicio o aplicativo, mesmo executando o código bastante cedo no início do aplicativo, em
+[AppDelegate initialize]
. Também existem diferenças sutis em uma versão criada usando o Xcode 4.6. Por exemplo, as barras de navegação transparentes se comportam de maneira diferente (causando o tamanho total da exibição).No entanto, desde que o Xcode 4.6.3 trava no Mavericks (pelo menos para mim, consulte rdar: // 15318883 ), essa é pelo menos uma solução para continuar usando o Xcode 5 para depuração.
fonte
Fiz o download do XCode 4 e levei o iOS 6.1 SDK para o XCode 5, conforme descrito em outras respostas. Também instalei o iOS 6.1 Simulator (estava disponível nas preferências). Também mudei o SDK Base para o iOS 6.1 nas configurações do projeto.
Depois de todas essas manipulações, o projeto com 6.1 base sdk é executado no modo de capacidade no iOS 7 Simulator.
fonte
A partir de 1º de fevereiro, a Apple rejeitará o aplicativo criado apenas para iOS6 ou inferior. Aqui também está a comunicação oficial da Apple. Melhor começar a construir para iOS7.
Para esclarecer minha afirmação: se você criar para iOS6 ou inferior, a Apple rejeitará seu aplicativo. Se você criar para o iOS7 e baixar tudo estiver bem, isso significa:
O conteúdo do e-mail da Apple é bastante claro para mim
fonte
Atualmente, tenho o Xcode 4.6.3 e 5.0 instalado. Usei o seguinte script bash para vincular 5.0 aos SDKs na versão antiga:
Você só precisa fornecer o caminho para o .app:
fonte
Xcode5-DP6
qual consegui recuperar o 7.0.x, mas esse é um bom lembrete para fazer backup dos diretórios do SDK (ou renomear o aplicativo completamente) antes de atualizar ou instalar a versão mais recente do Xcode.