Eu recentemente atualizei o xcode para a versão 9. Antes disso no Xcode 8.x sempre que eu uso para fazer pod update
isso me mostra um código de atualização para converter o código para Swift 3 e fazer isso resolver os erros. Mas agora está me dando este erro:
A configuração de compilação “Swift Language Version” (SWIFT_VERSION) deve ser definida para um valor suportado para destinos que usam Swift. Essa configuração pode ser definida no editor de configurações de construção.
Para este erro eu tentei Build Settings > Swift Language Version
e era o Swift 3.2 Mas como a chamada de atualização reinstalou alguns dos pods como Alamofire e diz para instalar o Xcode 8.x para converter o código para o Swift 3, então eu preciso instalar um versão adicional com o Xcode mais recente? Se sim, como posso instalar o Xcode 8 com o Xcode 9?
Respostas:
Resposta à sua pergunta:
Você pode baixar o Xcode 8.x no Portal de download da Apple ou baixar o Xcode 8.3.3 (ou consulte: Onde baixar a versão anterior do Xcode ), se você tiver uma conta de desenvolvedor premium (id da apple). Você pode instalar e trabalhar com o Xcode 9 e o Xcode 8.x em um sistema único (mac). (Certifique-se de ter
Command Line Tools
suporte para ambas as versões do Xcode, para trabalhar com o terminal (consulte: Como instalar a 'Ferramenta de linha de comando' ))Dica: como migrar seu código Xcode 9 compatível com versões Swift (Swift 3.2 ou 4)
Xcode 9 permite conversão / migração de
Swift 3.0
paraSwift 3.2/4.0
somente de . Portanto, se a versão atual da linguagem Swift de seu projeto estiver abaixo de 3.0, você deve migrar seu código em uma versão compatível com Swift 3 usando o Xcode 8.x.Esta é uma mensagem de erro comum que o Xcode 9 mostra se ele identifica o idioma Swift abaixo de 3.0, durante a migração.
O Swift 3.2 é compatível com o Xcode 9 e o Xcode 8.
Converta seu código-fonte de Swift 2.0 para 3.2 usando o Xcode 8 e continue com o Xcode 9 (Swift 3.2 ou 4).
Para facilitar a migração de seu código, siga estas etapas: (isso o ajudará a converter para a versão mais recente do swift suportada por sua ferramenta Xcode)
fonte
Para projetos Objective C criados usando o Xcode 8 e agora abrindo no Xcode 9, ele está mostrando o mesmo erro mencionado na pergunta.
Para corrigir isso, pressione o botão + em Build Settings e selecione Add User-Defined Setting conforme mostrado na imagem abaixo
Então, na nova linha criada, adicione
SWIFT_VERSION
como chave e3.2
como valor como abaixo.Isso corrigirá o erro para projetos c objetivos.
fonte
Eu só consegui isso depois de criar um novo projeto Objective-C no Xcode 10, depois de adicionar um arquivo de modelo de dados principais ao projeto.
Encontrei duas maneiras de consertar isso:
O modelo contém um arquivo de "conteúdo" com esta linha:
Lá dentro há uma
sourceLanguage="Swift"
entrada. Altere parasourceLanguage="Objective-C"
e o erro desaparece.Para encontrar o arquivo de "conteúdo", clique com o botão direito
.xcdatamodeld
no Xcode e selecione "Mostrar no Finder". Clique com o botão direito do mouse no arquivo real (Finder) e clique em "Mostrar conteúdo do pacote"Além disso: Alterar o idioma do modelo impedirá o Xcode de gerar arquivos de subclasse de objeto gerenciado no Swift.
fonte
Isso pode acontecer quando você adicionou Core Data a um projeto existente.
Verifique o:
<Nome> / <Nome> .xcdatamodeld / <Nome> .xcdatamodel /
arquivo de conteúdo .
Este arquivo contém uma entrada "sourceLanguage" que (por padrão) pode ter sido definida como "Swift". Mude para "Objective-C".
fonte
Acabei de clicar no botão de conversão rápida mais recente e definir a configuração de criação de destino do aplicativo -> Versão de idioma do Swift: swift 4.0,
Espero que isso ajude.
fonte
Esta solução funciona quando nada mais funciona:
Passei mais de uma semana para converter todo o projeto e cheguei a uma solução abaixo:
Primeiro, desintegre a dependência dos cocopods do projeto e, em seguida, comece a converter o projeto para a versão swift mais recente.
Vá para o diretório do projeto no terminal e digite:
Isso desintegrará os cocopods do projeto e nenhum vestígio de CocoaPods será deixado no projeto. Mas ao mesmo tempo, ele não excluirá o xcworkspace e os podfiles. Tudo bem se eles estiverem presentes.
Agora você tem que abrir o xcodeproj (não o xcworkspace) e você obterá muitos erros porque você chamou métodos de dependência de cocoapods em seus projetos principais.
Portanto, para remover esses erros, você tem duas opções:
Assim que todos os erros forem removidos, você pode converter o código para a versão mais recente do swift.
Às vezes, se você estiver recebendo erros estranhos, tente limpar os dados derivados e tente novamente.
fonte
talvez você precise baixar o conjunto de ferramentas. Este erro ocorre quando você não tem a versão correta do compilador swift.
fonte
No meu caso, todos os avisos desapareceram depois que alterei diretamente a versão do swift de 2.x para 4.0 nas configurações de compilação, exceto dois avisos.
Estes aviso relacionado com
myprojectnameTests
emyprojectnameUITests
pasta. Não percebi e achei que fosse relacionado à imigração direta do Xcode 7 para o Xcode 9 e achei que não poderia resolver esse problema e deveria instalar a versão do Xcode 8 perdida.No meu caso, apaguei essas pastas e todos os avisos desapareceram, mas você pode recriar esta pasta e contém usando:
file > new > target > (uitest or unittest extensions)
e use este artigo para criar casos de teste: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/04-writing_tests.html
fonte