Os aplicativos baseados no Swift funcionam no OS X 10.9 (Mavericks) / iOS 7 e inferior?
Por exemplo, eu tenho uma máquina executando o OS X 10.8 (Mountain Lion) e estou pensando se um aplicativo que eu escrevo no Swift será executado nele.
Ou o que eu deveria ter para criar um aplicativo Swift usando o Mac OS?
Respostas:
Acabei de testar para você, os aplicativos Swift são compilados em binários padrão e podem ser executados no OS X 10.9 e no iOS 7.
Aplicativo Swift simples usado para teste:
fonte
UIViewController
após os dois pontos represente o tipo da variável e a segunda ocorrência após o=
sinal chamar o construtor (inicialize a variável).O código Swift pode ser implantado no OS X 10.9 e no iOS 7.0. Geralmente, ele falha na inicialização em versões mais antigas do sistema operacional.
fonte
A Apple anunciou que os aplicativos Swift serão compatíveis com o iOS 7 e OS X Mavericks. O aplicativo WWDC está escrito em Swift.
fonte
Atualização - conforme Xcode 6 Beta 4
Da nota de versão do Xcode 6
Portanto, minha resposta anterior (mostrada abaixo) não será aplicável a nenhum desenvolvimento adicional. Swift não estará mais disponível para iOS6 e abaixo
Um aplicativo Swift pode ser executado no iOS 6. Mesmo que muitas pessoas digam que o Swift oferecerá suporte apenas ao iOS 7+ e OS X 10.9+, pela minha experiência, não é.
Testei um aplicativo simples escrito completamente em Swift em um dispositivo iOS 6. Funciona perfeitamente bem . Como a Apple diz, o código Swift é binário compatível com o código Objective-C. Ele usa o mesmo compilador e tempo de execução para criar o binário.
Aqui está o código que eu testei:
É uma aplicação simples, basta adicionar um botão programaticamente. Meu aplicativo contém apenas dois arquivos
AppDelegate.swift
eViewController.swift
.Portanto, se você não estiver usando nenhuma API nova adicionada como parte do iOS 8 SDK ou algumas APIs específicas do Swift (a API correspondente não está disponível para o Objective-C), seu aplicativo funcionará perfeitamente no iOS 6 ou posterior (testado e funcionando), até no iOS 5 (não testado). A maioria das APIs no Swift é apenas a substituição das APIs Objective-C existentes. Na verdade, eles são os mesmos em binário.
Nota: De acordo com o Xcode 6 beta 4, o destino de implantação rápida de aplicativos deve ser o iOS 7 ou OS X 10.9 (consulte a atualização acima). Tão rápido não estará mais disponível para iOS6 e abaixo
fonte
Em resumo:
Aplicativos baseados em Swift podem ser direcionados ao OS X Mavericks ou iOS 7 com o mesmo aplicativo.
Como isso é possível ?
O Xcode incorpora uma pequena biblioteca de tempo de execução Swift no pacote do seu aplicativo . Como a biblioteca é incorporada, seu aplicativo usa uma versão consistente do Swift que é executada em versões passadas, presentes e futuras do SO.
Por que devo confiar nessa resposta?
Porque eu não estou dizendo esta resposta, como um cara da apple me disse no twitter ou eu escrevi o hello world e o testei.
Eu peguei no blog de desenvolvedores da apple .
para que você possa confiar nisso.
fonte
O Swift usa o mesmo tempo de execução que o Objective-C e pode até viver lado a lado no Objective-C no mesmo aplicativo (conforme a palestra da WWDC 2014).
Isso precisará ser verificado / verificado usando o Xcode 6 e o novo SDK para encontrar uma resposta final.
fonte
Li todas as respostas que diziam: Não, o Swift não funciona com menos do iOS 7. Mas eu disse que sim , acabei de criar um projeto Swift que é executado no Xcode 5 com o objetivo de implantação 6.0.
Então esse projeto roda bem no simulador 6.1 . Meu MacOS X é 10.9.3 , então eu disse que sim, que roda abaixo do iOS 7. com o Mac OS X 10.9.3 .
Aqui está uma captura de tela do simulador:
Aqui está uma demonstração também
fonte
Embora o código o confirme, a própria Apple disse que o Swift será compatível no iOS 7 e Mavericks em sua palestra técnica ( estado das plataformas , sessão 102, em torno da marca de 34 min 00 seg) na WWDC 2014 .
fonte
Os aplicativos Swift são suportados no iOS 7 e superior, conforme indicado nas notas de versão da Beta 4.
iOS 6.0, 6.1, 7.0, 7.1, 8.0 no Xcode 6 BetaOs aplicativos Swift são suportados nas plataformas OS X 10.9 e superior .
OS X 10.4 a 10.10 no Destino de Implantação. Eu testei na segmentação 10.5 a 10.10 e executando na 10.9.3fonte
Parece que os aplicativos Swift não são executados no OS X 10.7 . Acabei de criar um aplicativo GUI simples (uma visualização, uma etiqueta, um botão) que roda bem no Mavericks. O SDK base está definido como 10.9 e o destino de implantação em 10.7. Copiei esse aplicativo da pasta DerivedData para a minha máquina virtual 10.7 e ela trava ao iniciar, mostra este erro:
No entanto, essa mensagem é irritante, pois certamente há uma biblioteca CoreGraphics nesta VM. Outras aplicações que fazem uso pesado do CoreGraphics funcionam perfeitamente.
fonte
Este é o post que li no blog da Apple Swift, pode ser útil:
Compatibilidade de aplicativos :
Se você escreve um aplicativo Swift, pode confiar que ele funcionará bem no futuro. Na verdade, você pode voltar para o OS X Mavericks ou iOS 7 com o mesmo aplicativo. Isso é possível porque o Xcode incorpora uma pequena biblioteca de tempo de execução Swift no pacote do seu aplicativo. Como a biblioteca é incorporada, seu aplicativo usa uma versão consistente do Swift que é executada em versões passadas, presentes e futuras do SO.
Compatibilidade binária e estruturas:
Enquanto a compatibilidade de tempo de execução do aplicativo for garantida, o próprio idioma do Swift continuará evoluindo e a interface binária também será alterada. Para estar seguro, todos os componentes do seu aplicativo devem ser criados com a mesma versão do Xcode e do compilador Swift para garantir que eles funcionem juntos.
Isso significa que as estruturas precisam ser gerenciadas com cuidado. Por exemplo, se seu projeto usa estruturas para compartilhar código com uma extensão incorporada, convém criar estruturas, aplicativos e extensões juntos. Seria perigoso confiar em estruturas binárias que usam Swift - especialmente de terceiros. À medida que o Swift muda, essas estruturas serão incompatíveis com o restante do seu aplicativo. Quando a interface binária estabilizar em um ano ou dois, o tempo de execução Swift se tornará parte do sistema operacional host e essa limitação não existirá mais.
fonte
Testei a execução de um aplicativo básico do Swift em um dispositivo iPod Touch (3ª geração). Parece aplicativos baseados em Swift não trabalho com o iOS 5.x, mas fazer o trabalho com iOS 6.x.
Aqui está o que aparece no log de depuração quando tentei iniciar o aplicativo de teste com o iOS 5.0.1:
Para o iOS 6.1.6, o aplicativo funciona bem sem exibir essas mensagens de erro.
fonte
Parece haver muitas respostas antigas aqui, então eu só queria postar a resposta oficial da equipe Swift. Swift é compatível com o OS X Mavericks e iOS 7
Blog do desenvolvedor da Apple: ID do Objective-C como Swift Any
11 Jul 2014
Compatibilidade
Uma das perguntas mais comuns que ouvimos na WWDC foi: "Qual é a história de compatibilidade do Swift?". Este parece ser um ótimo primeiro tópico.
Compatibilidade de aplicativos Simplificando, se você escrever um aplicativo Swift hoje e enviá-lo para a App Store neste outono quando o iOS 8 e OS X Yosemite forem lançados, você pode confiar que seu aplicativo funcionará bem no futuro. Na verdade, você pode voltar para o OS X Mavericks ou iOS 7 com o mesmo aplicativo. Isso é possível porque o Xcode incorpora uma pequena biblioteca de tempo de execução Swift no pacote do seu aplicativo. Como a biblioteca é incorporada, seu aplicativo usa uma versão consistente do Swift que é executada em versões passadas, presentes e futuras do SO.
fonte
Eu também tentei um aplicativo muito simples no 10.8 (um botão, define o texto em um rótulo). Ele travou na inicialização, como Greg Parker afirmou:
(Isso estava usando um destino de implantação 10.7)
fonte
Tente o seguinte código:
Está funcionando sem o StoryBoard:
fonte
Sim, na verdade, a Apple anunciou que os aplicativos Swift serão compatíveis com o iOS 7 e OS X Mavericks. Além disso, o aplicativo WWDC é escrito na linguagem de programação Swift.
fonte
Quando se trata de Swift Frameworks. Hoje, com o Xcode versão 6.1.1 (6A2008a), se a estrutura Swift estiver direcionada para o iOS 7.1, aviso de relatório do vinculador
e o aplicativo não pode ser enviado à AppStore. Verifique este problema: Lint para impedir a passagem de bibliotecas e estruturas dinâmicas com o iOS 7
fonte
Mach-O Type
deve serDynamic Library
, no entanto, o iOS 7 aceitaStatic Library
Somente.Atualização rápida, a partir de 15 de fevereiro de 2015 , não podemos enviar aplicativos para a loja que foram desenvolvidos usando um SDK anterior ao iOS 8 . Portanto, mantendo isso em mente, é melhor não se preocupar com esse problema, pois muitas pessoas sugeriram que os aplicativos criados no Swift podem ser implantados no OS X 10.9 e no iOS 7.0 também.
fonte
O trecho de código respondido postado por Leandros parece um pouco antigo. Corrigi e tornei compilável no Swift 5.
Swift 5
fonte