Eu tenho uma estrutura (neste caso, é RxSwift) que compilei usando o Xcode 11.0 no RxSwift.framework
pacote de estilo tradicional
Essa multa importada para o Xcode 11.0 e também a 11.1 nunca teve problemas com ela
Hoje, após o lançamento do Xcode 11.2 pela Apple, atualizei e recebi o erro:
O módulo compilado com o Swift 5.1 não pode ser importado pelo compilador Swift 5.1.2
Estou acostumado a desviar rapidamente do compilador e sei que posso recompilar o RxSwift usando o Xcode 11.2 e continuar, mas o recurso principal do Swift 5.1 foi a estabilidade do módulo .
Fiquei com a impressão de que agora que temos estabilidade do módulo, os frameworks não precisarão ser recompilados a cada nova versão do Xcode, mas esse claramente não é o caso.
Se alguém puder explicar o que está acontecendo aqui, eu agradeceria muito. O Xcode 11.2 está exibindo um bug? ou de alguma forma eu preciso dizer que queria estabilidade do módulo quando compilei originalmente com o Xcode 11.0?
Respostas:
OK, acontece que, se você assistir ao vídeo da WWDC, eles explicam: https://developer.apple.com/videos/play/wwdc2019/416/
Você precisa definir a opção Compilar Bibliotecas para Distribuição como Sim nas configurações de compilação da estrutura, caso contrário, o compilador rápido não gera os
.swiftinterface
arquivos necessários, que são a chave para futuros compiladores poderem carregar sua biblioteca antiga.Isso acaba no seu arquivo project.pbxproj como:
Depois de definir esse sinalizador, uma estrutura que compilei usando o Xcode 11.0 (swift 5.1) pôde ser usada pelo Xcode 11.2 (swift 5.1.2) e tudo parece estar funcionando corretamente.
Espero que esta pergunta / resposta sirva como uma referência útil para todos que não assistiram a todos os vídeos da WWDC
Se o erro persistir, vá para Produto > Limpar pasta de compilação e Compilar novamente.
fonte
carthage
inteligente o suficiente para capturar isso no meu arquivo .pbxproj ou, como o @MihaiFratu diz acima, todos os desenvolvedores de estruturas de terceiros precisam definir isso sozinhos em seus projetos de estrutura?Eu tive o mesmo erro ao importar bibliotecas de terceiros. Corrigi-o usando cadeias de ferramentas no Xcode e tendo o lançamento em 19 de setembro de 2019 a partir daqui https://swift.org/download/#releases . Depois disso, tive que reimportar minhas bibliotecas e funcionou.
fonte
Você pode usar Carthage para adicionar a estrutura RxSwift.
Basicamente, Cartago oferece um pacote semelhante ao estilo tradicional RxSwift.framework .
Então tente
carthage update --no-use-binaries
.fonte
Isso fez o erro do meu compilador desaparecer.
carthage bootstrap --platform ios
brew bundle
pod repo update
fonte
brew bundle
? O que isso faz?