Eu atualizei o Xcode para 8.1 GM e agora estou recebendo o erro abaixo para SwiftyJSON. Outras estruturas importadas parecem funcionar. Existe uma maneira de forçar isso a funcionar no Swift 3 até que o SwiftyJSON atualize sua estrutura? Usei Carthage para importar / atualizar frameworks. Eu também tentei ligar Use Legacy Swift language version
e desligar sem sucesso.
Módulo compilado com Swift 3.0 não pode ser importado em Swift 3.0.1: Modules / SwiftyJSON.swiftmodule / arm64.swiftmodule
fonte
Cartfile
para que eu possa digitarcarthage update
sem que outros desenvolvedores precisem saber / se preocupar com os sinalizadores extras?Remova o chache do aplicativo de DerivedData e reconstrua. o erro pode ser corrigido.
O caminho DerivedData assim:
fonte
Certifique-se de ter colocado o novo pacote XCode 8.1 GM em sua pasta de Aplicativos. Encontramos esse problema quando um de nós estava executando o Carthage para atualizar nossas dependências, mas não substituiu o aplicativo XCode 8.0 antigo na pasta de aplicativos (o 8.1 GM estava executando a partir do Desktop).
Você quer ter certeza de que quando você executar o seguinte no terminal:
xcrun swift -version
que ele retorneApple Swift version 3.0.1
.fonte
carthage update --platform iOS --no-use-binaries
e ainda não funciona. Limpei meu projeto e reiniciei o Xcode e ainda recebo o erro. Posso tentar mais alguma coisa?Apple Swift version 3.0.1 (swiftlang-800.0.58.6 clang-800.0.42.1) Target: x86_64-apple-macosx10.9
Atualizar o padrão
Xcode
para um novo no terminal funcionou para mim.Etapa 1: use o seguinte comando para atualizar a versão do Xcode para a mais recente no Terminal. Ref
Etapa 2: agora tente o comando de atualização de carthage
fonte
Apenas para dar as últimas atualizações:
Carthage lançou a versão 0.20 em 27 de fevereiro de 2017.
Carthage agora só usa o binário pré-compilado se o binário pré-compilado disponível for compatível .
Dito isso, você não precisa mais usar:
--no-use-binaries
para evitar uma estrutura de pré-construção incompatível.Portanto, certifique-se de ter a versão do cartago maior do que
0.20
e simplesmente faça:fonte
--no-use-binaries
? Cartago deve ser capaz de detectar se o binário é compatível com a versão do compilador. Se não for compatível, ele deve remover automaticamente o binário baixado e construir a estrutura localmente.Assim como @zirinisp disse:
carthage update --platform iOS --no-use-binaries
xcrun swift -version
para ver a versão SwiftXcode->preferences->locations
para limpar os dados derivados e os dados dos arquivos, o mais importante é alterar as ferramentas de linha de comando para "Xcode 8.1
"xcrun swift -version
você pode ver que a versão swift é 3.0.1Use Legacy Swift Language Version = NO
Espero que te ajude
fonte
Mova a versão beta / GM se o Xcode para a pasta / Aplicativos e nomeie-o como Xcode-beta
Verifique a saída de:
xcrun swift --version
executando este comando no terminal, sua saída deve corresponder à versão swift que você deseja que o aplicativo compile, porque Carthage usa a saída desse comando para determinar a versão local do Swift.
Atualize a versão do Xcode para a mais recente no Terminal executando o seguinte comando:
sudo xcode-select -s /Applications/Xcode-beta.app/
Crie as bibliotecas para iOS e evite que Carthage baixe binários pré-compilados existentes (ainda incompatíveis), executando o seguinte comando:
carthage update --platform iOS --no-use-binaries
Limpar e construir
fonte
Eu tive exatamente o mesmo problema com a biblioteca
XCTest_Gherkin
, o que funcionou para mim foi:Product
->Scheme
->XCTest-Gherkin
Product
->Build
Espero que ajude. Estou usando Cocoapods.
fonte
Em Xcode Build Settings, certifique-se de que seus Framework Search Paths contenham a pasta Carthage Build apropriada:
fonte