Parece que a Apple precisa reconsiderar aquele aviso de descontinuação de 10 anos para o Objetivo C: ^) Isso me incomodou em> 1 projeto agora e em ambos esses são frameworks binários de terceiros.
Este erro (e erros semelhantes envolvendo Swift 4.1, 4.2, etc.) ocorrerá ao abrir um projeto com Xcode 9.1, 9.2, 9.3, 9.4, 10, etc. que usa estruturas que foram construídas com ferramentas Xcode anteriores.
Para corrigir o problema, atualize e reconstrua seus frameworks usando Carthage ( carthage update --platform iOS), Cocoapods ( pod updateou pod install), ou manualmente, com as novas ferramentas Xcode atualizadas. As ferramentas devem ser atualizadas automaticamente quando você atualiza o Xcode, mas se não, você pode seguir as etapas descritas abaixo na resposta original.
Você também pode precisar limpar seu projeto cmd + shift + ke possivelmente sua pasta de compilação cmd + option + shift + kpara fazer com que o Xcode não use compilações de framework em cache.
Em alguns casos, você também pode precisar excluir sua pasta de dados derivados (facilmente encontrada em Preferências do Xcode -> Locais -> Pasta de dados derivados ( Obrigado, Stunner )
Para versões beta do Xcode:
Veja a resposta original abaixo e siga as etapas acima.
Resposta Original:
Você provavelmente ainda tem suas ferramentas xcodebuild configuradas para Xcode 9.0, que é compilado com Swift 4.0 e é incompatível com Swift 4.0.1 do Xcode 9.1 beta.
Faça check-in no terminal usando o comando:
xcodebuild -version
Ou simplesmente acesse as preferências do Xcode -> Locais e verifique / altere as ferramentas de linha de comando para Xcode 9.1. Você deve estar pronto então.
Também limpei os dados derivados e limpei o projeto, não sei se necessário para todos, mas parecia que estava aqui. Obrigado
Simon,
3
Olá @Zig. Um repositório que uso no github (mattdonnelly / swifter) está no Swift 4.0, mas obviamente foi compilado usando o XCode 9.0, então estou tendo esse problema. Quais são as etapas necessárias para recompilar o cocoapod de outra pessoa no Github para XCode 9.1 e superior?
Mãe de Joseph Beuys em
1
existe uma maneira de adicionar ferramenta de linha de comando? Acabei de ter o Xcode 9.3 no menu suspenso da linha de comando. e eu também tenho esse problema
tara tandel
1
Alguns dos meus pods não estão prontos para o Swift 4.2, portanto, tive que fixá Swift Language Version- Swift 4los para eles. Então funcionou.
skofgar
1
Mais 1 para o atalho para limpar a pasta de compilação - não era algo que eu sabia fazer de imediato.
Matt
25
Meu problema era devido a uma estrutura externa que não estava sendo compilada para o Swift 4.0.2. Eu adicionei este arquivo via Carthage , então executando:
carthage update --platform iOS
E, em seguida, limpar o projeto cmd + shift + ke a pasta de construção cmd + option + shift + ke excluir a pasta de dados derivados (simplesmente movê-la para a lixeira também funciona) funcionou para mim.
na verdade, esta é essencialmente a solução. A mesma coisa aconteceu hoje (18 de abril), devido à última atualização rápida da Apple! :)
Fattie
cmd + opção + shift + k é o que fez o truque após atualizar Cartago. Obrigado!
Leonardo Leite
15
No meu caso, baixei a versão beta do xCode 11 para testar o SwiftUI. Quando executo meu projeto, recebo o erro "Módulo compilado com Swift 5.1 não pode ser importado pelo compilador Swift 5.0.1: ..." .
Para corrigir esse problema. Eu mudei a ferramenta de linha de comando xCode para a nova ferramenta de linha de comentário xCode 11. Depois disso, você pode criar um novo projeto xcode com SwiftUI.
Xcode -> Preferências -> Localização -> Ferramenta de linha de comando XCode
Espero que isso ajude alguém que queira testar novos freamework :)
Instale o Xcode Toolchain da versão específica do Xcode que estava funcionando para você a partir daqui .
Um conjunto de ferramentas Xcode inclui uma cópia do compilador, lldb e outras ferramentas relacionadas necessárias para fornecer uma experiência de desenvolvimento coesa para trabalhar em uma versão específica do Swift.
Abra as Preferências do Xcode, navegue até Componentes> Conjuntos de ferramentas e selecione o conjunto de ferramentas Swift instalado.
Isso permitirá que você compile e execute o aplicativo por enquanto.
Após 2 dias pesquisando e tentando todas as soluções possíveis com atualização de carthage, bootstrap, configurações de idioma rápidas, etc. Eu encontrei a resposta certa aqui :)
memresubasi
7
Tive esse problema com o Xcode 10 beta, que adiciona o Swift 4.2. Meu problema não estava relacionado a Cartago ou quaisquer dependências externas.
Vá para YourTarget > Build Settings > Swift Language Versionpara todos os seus destinos Xcode.
Os meus foram configurados para Swift 4.
Depois de adicionar uma fase de compilação de cópia de arquivos, comecei a receber o erro
: 0: erro: o módulo compilado com o Swift 4.1.2 não pode ser importado pelo compilador Swift 4.2: /Users/user/Library/Developer/Xcode/DerivedData/MyApp-faskfrihumfcdibjxisjvbfshppp/Build/Intermediates.noindex/MyApp.build/Debug/ MyAppExtension.build/Objects-normal/x86_64/MyClass~partial.swiftmodule
Command MergeSwiftModule falhou com um código de saída diferente de zero
Em seguida, configurei cada alvo Swift Language Versioncomo Swift 4.2, o que eliminou o erro.
Não tenho certeza por que o erro estava ocorrendo em primeiro lugar, porém, como ter todos os alvos definidos como Swift 4deve ser igualmente válido.
No meu caso, usei CocoaPods com plugin cocoapods-binarypara pré-construir bibliotecas para binários. Depois de atualizar o Xcode de 10 para 11, o Xcode me dá este erro:
Module compiled with Swift5.0.1 cannot be imported by the Swift5.1 compiler
Eu conserto removendo o /Podsdiretório e executando pod install.
No meu caso, eu recompilei o framework com qualquer versão da qual ele estava reclamando.
Para recompilar, execute pod updateou atualize o cartago (qualquer um que você estiver usando) e construa o projeto.
Em seguida, procure a estrutura no localizador. Copie e cole no theFramework.frameworkseu projeto e certifique-se de “Copiar itens se necessário.” Compile o projeto novamente e ele deve funcionar.
Respostas:
Atualizar:
Para versões de lançamento do Xcode:
Este erro (e erros semelhantes envolvendo Swift 4.1, 4.2, etc.) ocorrerá ao abrir um projeto com Xcode 9.1, 9.2, 9.3, 9.4, 10, etc. que usa estruturas que foram construídas com ferramentas Xcode anteriores.
Para corrigir o problema, atualize e reconstrua seus frameworks usando Carthage (
carthage update --platform iOS
), Cocoapods (pod update
oupod install
), ou manualmente, com as novas ferramentas Xcode atualizadas. As ferramentas devem ser atualizadas automaticamente quando você atualiza o Xcode, mas se não, você pode seguir as etapas descritas abaixo na resposta original.Você também pode precisar limpar seu projeto
cmd + shift + k
e possivelmente sua pasta de compilaçãocmd + option + shift + k
para fazer com que o Xcode não use compilações de framework em cache.Em alguns casos, você também pode precisar excluir sua pasta de dados derivados (facilmente encontrada em Preferências do Xcode -> Locais -> Pasta de dados derivados ( Obrigado, Stunner )
Para versões beta do Xcode:
Veja a resposta original abaixo e siga as etapas acima.
Resposta Original:
Você provavelmente ainda tem suas ferramentas xcodebuild configuradas para Xcode 9.0, que é compilado com Swift 4.0 e é incompatível com Swift 4.0.1 do Xcode 9.1 beta.
Faça check-in no terminal usando o comando:
Ou simplesmente acesse as preferências do Xcode -> Locais e verifique / altere as ferramentas de linha de comando para Xcode 9.1. Você deve estar pronto então.
fonte
Swift Language Version
-Swift 4
los para eles. Então funcionou.Meu problema era devido a uma estrutura externa que não estava sendo compilada para o Swift 4.0.2. Eu adicionei este arquivo via Carthage , então executando:
E, em seguida, limpar o projeto
cmd + shift + k
e a pasta de construçãocmd + option + shift + k
e excluir a pasta de dados derivados (simplesmente movê-la para a lixeira também funciona) funcionou para mim.fonte
No meu caso, baixei a versão beta do xCode 11 para testar o SwiftUI. Quando executo meu projeto, recebo o erro "Módulo compilado com Swift 5.1 não pode ser importado pelo compilador Swift 5.0.1: ..." .
Para corrigir esse problema. Eu mudei a ferramenta de linha de comando xCode para a nova ferramenta de linha de comentário xCode 11. Depois disso, você pode criar um novo projeto xcode com SwiftUI.
Xcode -> Preferências -> Localização -> Ferramenta de linha de comando XCode
Espero que isso ajude alguém que queira testar novos freamework :)
fonte
Instale o Xcode Toolchain da versão específica do Xcode que estava funcionando para você a partir daqui .
Um conjunto de ferramentas Xcode inclui uma cópia do compilador, lldb e outras ferramentas relacionadas necessárias para fornecer uma experiência de desenvolvimento coesa para trabalhar em uma versão específica do Swift.
Abra as Preferências do Xcode, navegue até Componentes> Conjuntos de ferramentas e selecione o conjunto de ferramentas Swift instalado.
Isso permitirá que você compile e execute o aplicativo por enquanto.
fonte
Tive esse problema com o Xcode 10 beta, que adiciona o Swift 4.2. Meu problema não estava relacionado a Cartago ou quaisquer dependências externas.
Vá para
YourTarget > Build Settings > Swift Language Version
para todos os seus destinos Xcode.Os meus foram configurados para
Swift 4
.Depois de adicionar uma fase de compilação de cópia de arquivos, comecei a receber o erro
Em seguida, configurei cada alvo
Swift Language Version
comoSwift 4.2
, o que eliminou o erro.Não tenho certeza por que o erro estava ocorrendo em primeiro lugar, porém, como ter todos os alvos definidos como
Swift 4
deve ser igualmente válido.fonte
Build Settings
No meu caso (Xcode 9.2):
Eu fui para o Xcode
Preferences > Locations > Derived Data
Em seguida, apaguei os dados e fiz uma compilação limpa e estava tudo bem.
fonte
No meu caso, usei CocoaPods com plugin
cocoapods-binary
para pré-construir bibliotecas para binários. Depois de atualizar o Xcode de 10 para 11, o Xcode me dá este erro:Eu conserto removendo o
/Pods
diretório e executandopod install
.fonte
No meu caso, eu recompilei o framework com qualquer versão da qual ele estava reclamando.
Para recompilar, execute
pod update
ou atualize o cartago (qualquer um que você estiver usando) e construa o projeto.Em seguida, procure a estrutura no localizador. Copie e cole no
theFramework.framework
seu projeto e certifique-se de “Copiar itens se necessário.” Compile o projeto novamente e ele deve funcionar.fonte