Atualmente, estou codificando no Swift e tenho um erro:
Não existe esse módulo Social
Mas eu não entendo, porque o módulo está no meu projeto, declarado em "Frameworks e bibliotecas vinculadas" e em "Binários incorporados".
Os frameworks estão no Objective-C, então escrevi um Bridge Header para ele.
Por favor, como posso fazer o Xcode reconhecer a estrutura?
#import "Social/Social.h"
platform :ios, '10.0'
. Essa foi a solução.Respostas:
Não sei por que isso acontece, mas uma maneira de resolver seu problema é entrar nas configurações de compilação e definir os Caminhos de Pesquisa do Framework em uma pasta que contém os frameworks em questão. Se as estruturas forem colocadas no diretório do projeto, simplesmente defina o caminho de pesquisa da estrutura como
$(SRCROOT)
e recursivo.fonte
Project Build Settings
vez deTarget Build Settings
.Caso seja sexta-feira à tarde ou a qualquer momento depois da 1h:
Abrir em
xcodeproj
vez dexcworkspace
causará um erro como este ...fonte
Certifique-se de que o nome de suas configurações nos subprojetos corresponda ao nome do projeto "pai". Se a nomeação da configuração não corresponder exatamente (diferencia maiúsculas de minúsculas), o Xcode interromperá o processo de arquivamento e mostrará o erro "Nenhum módulo ..."
Ou seja, se você tiver um projeto "pai" com uma configuração denominada "AppStore", verifique se todos os subprojetos também possuem esse nome de configuração.
Veja minhas imagens em anexo.
fonte
Debug
eDistribution
e seu projeto pai estava tentando construir paraRelease
. A solução foi fazer uma cópiaDistribution
no projeto filho e renomear essa cópiaRelease
.Não sei ao certo por que a resposta de Martin R nos comentários da pergunta é tão desconsiderada:
Certifique-se de que você tentou simplesmente ignorar a importação da estrutura, pois ela já foi adicionada ao cabeçalho da ponte .
Espero que isto ajude
fonte
Eu tive o mesmo problema usando Cocoapods e Swift . Não notei as seguintes linhas no Podfile:
Então, tudo que eu precisava fazer era alterá-lo para:
... aa e funcionou :)
fonte
Por favor, compare esta captura de tela com sua configuração de compilação. Pode este trabalho. Vá para o caminho de pesquisa da estrutura:
fonte
Eu estava enfrentando esse problema também. A solução para mim foi que os esquemas de arquivamento entre os dois projetos não correspondiam. Eu tenho um xcworkspace com um projeto de estrutura e um projeto de aplicativo. O problema era que, no esquema de arquivamento do meu aplicativo, eu estava usando uma configuração de compilação diferente da que a estrutura estava usando para o esquema de arquivamento. Defina as Configurações de compilação para Liberar, e isso corrigiu o problema.
fonte
Os seguintes passos funcionaram para mim.
"pod update"
no terminal.xcworkspace
e construa novamente.fonte
pod install
funcionar.No meu caso, depois de muitas tentativas de descobrir o que eu estava fazendo de errado ao importar uma estrutura, finalmente descobri que a estrutura em si era o problema. Se você não estiver obtendo sua estrutura de uma fonte confiável, verifique a estrutura e verifique se ela contém uma pasta Módulos com um arquivo module.modulemap dentro dela. Se module.modulemap não estiver presente, você receberá o erro "No module 'MyFramework'".
Se a pasta Módulos estiver sem a pasta "MyFramework.swiftmodule", a estrutura será encontrada, mas o Xcode não saberá sobre o seu conteúdo e, portanto, você obterá erros diferentes.
fonte
Supondo que o Framework realmente esteja lá e no caminho, etc ... exclua o diretório ~ / Library / Developer / Xcode / DerivedData / ModuleCache (e limpe o projeto e exclua os dados derivados específicos do projeto para uma boa medida).
Quando você faz a limpeza padrão, o diretório ModuleCache não é reconstruído.
fonte
O que funcionou para mim é essa solução para outra pergunta. Fechando o Xcode e reabrindo o projeto como espaço de trabalho.
Vá para a pasta do seu projeto e abra o
.xcodeworkspace
arquivo.Depois de abrir o espaço de trabalho (em vez do projeto), os Pods devem aparecer como um projeto de nível superior no Project Navigator.
fonte
Certifique-se de que as
Find implicit Dependencies
opções de compilação no esquema estejam ativadas!fonte
Eu também encontrei o mesmo erro alguns dias atrás. Aqui está como eu resolvi o problema:
O erro é "módulo não encontrado"
Vá para Configurações de criação do projeto:
Crie um novo arquivo de cabeçalho de ponte: por exemplo, TestProject-Bridging-Header.he coloque em Swift Compiler → Nome do cabeçalho da interface gerada por Objective-C (ref, veja a imagem acima)
Isso é tudo.
fonte
Ok, como o mesmo problema foi resolvido para mim foi definir o local dos dados derivados em relação ao diretório da área de trabalho, em vez de mantê-lo padrão. Vá para preferências no xcode. Vá para a guia locais nas preferências e defina Dados derivados como Relativo. Espero que ajude.
fonte
Eu estava recebendo o mesmo erro por
Mas então notei que eu não estava adicionando pod à seção principal de destino, mas apenas adicionando aos alvos Test e TestUI no Podfile.
Com o comando
para um projeto xcode swift, o seguinte Podfile é gerado
Portanto, é necessário garantir que você adicione pods a qualquer espaço reservado apropriado.
fonte
Se você está construindo para uma plataforma como o tvOS, verifique se o simulador da Apple TV (ou seja, correspondente) está selecionado.
A criação de um aplicativo tvOS com um simulador iOS selecionado me deu exatamente esse erro. Passou quase uma hora procurando todos os tipos de problemas de construção ... doh.
fonte
No meu caso, o aplicativo IPHONEOS_DEPLOYMENT_TARGET foi definido como 9.3, enquanto no meu recém-criado framework foi definido como 10.2
O resolvedor implícito de dependências ignorou minha nova estrutura porque os requisitos da plataforma de destino são mais altos que os requisitos do aplicativo.
Depois de ajustar o destino da implantação do iOS da estrutura para corresponder ao destino da implantação do meu aplicativo, a estrutura compilada e vinculada com êxito.
fonte
Eu estava recebendo o mesmo erro que adicionei algumas estruturas usando
Cocoapods
. Se estivermos usando Pods em nosso projeto, devemos usar emxcodeworkspace
vez dexcodeproject
. Para executar o projeto através do xcodebuild, adicionei o-workspace <workspacename>
parâmetro noxcodebuild
comando e funcionou perfeitamente.fonte
Eu descobri que o
Import Paths
noBuild Settings
estava errado para um módulo personalizado (MySQL). Depois de apontar para a direção certa, a mensagem desapareceu.fonte
find
se você não souber.Corrigi isso com
Destinos -> Geral -> Estruturas e bibliotecas vinculadas
Adicione a estrutura que deve estar no topo da
Workspace
pasta. Dor na bunda.fonte
Acabei de excluir meu cocoapod. Em seguida, instalei um pod para removê-lo. Depois, adicionei-o novamente no meu podfile e o reinstalei. Isso fez funcionar. Não sei por que.
fonte
Eu já tinha instalado os pods. A compilação funcionou sem problemas quando criei o aplicativo no meu dispositivo, mas o arquivamento não funcionou. Eu apenas corro:
nenhum pod novo foi instalado, apenas o arquivo .xcodeproj foi regenerado e o arquivo começou a funcionar
fonte
No Xcode 10.1, a solução para mim foi alterar o sistema de compilação nas Configurações da Área de Trabalho no menu Arquivo. Por padrão, é definido como Novo sistema de compilação , alterado para Legacy Build System e foi o que fez o truque.
fonte
Existem várias configurações incorretas em potencial para as quais o problema pode surgir,
.xcworkspace
mas não o.xcodeproj
arquivo. Verifique também se você construiuSocial
primeiro antes de construirTriviaApp
.TriviaApp
o destino de implantação de s está definido como9.0
,Social
o destino de implantação de s também precisa ser definido como9.0
.TriviaApp
) e sua estrutura usada (Social
) tenham o mesmo conjunto de configurações. ou seja, se o seu projeto tem três configurações,Debug
,Release
,ReleasePremium
do que o seu quadro social também precisa ter três configuraçõesDebug
,Release
,ReleasePremium
. Verifique também se a configuração do arquivamento está definida da mesma forma paraTriviaApp
eSocial
. ou seja, se seuTriviaApp
esquema de arquivamento estiver definido comoReleasePremium
, seuSocial
esquema de arquivamento também precisará ser definidoReleasePremium
.Social
em cada.swift
arquivo quando ele já estiver adicionado no arquivoBridging-Header.h
.#use_frameworks!
parause_frameworks!
de vocêPodfile
. Em algum momento, a instalação do pod funciona seSocial
houver alguma dependência dele.fonte
Se você estiver usando Cartago, as estruturas na configuração de construção geralmente ficam em
$(PROJECT_DIR)/Carthage/Build/iOS
Se você executar
carthage update --platform ios --no-build
(para economizar tempo), os arquivos dentro da pasta Build não serão recriados, então os módulos não estarão disponíveis para o XCode.No meu caso, eu corri
carthage update --platform ios
, então meu problema foi resolvido.fonte
Em geral => Frameworks e bibliotecas vinculadas, eu adicionei o meu
./Pods/Pods.xcodeproj
e ele fez o truquefonte
Para mim, Build Build Architecture Only foi definido como Yes para a configuração selecionada. Isso fez o truque:
Selecione "Pods" no navegador de projeto esquerdo> selecione "Configurações de compilação"> Compilar somente a arquitetura ativa para Não
fonte
Se todos os métodos acima não funcionaram para você, como no meu caso. Não houve problema no dia anterior, mas na manhã seguinte eu enfrentei o mesmo erro. Acabei de remover as estruturas removendo referências e as adicionei novamente. Eu sei que isso pode parecer bobagem, mas pronto, funcionou.
fonte
Eu tive um problema semelhante ao carregar o FacebookSDK, adicionei ~ / Documents / FacebookSDK (procure onde estão suas estruturas) aos caminhos de pesquisa da estrutura nas configurações de compilação e depois disso consegui importar o módulo FBSDKShareKit
fonte
Pelo que vale a pena (eu sou novo nisso usando o Xcode 7.2 / Swift 2), mas notei que apenas o arquivo .swift da biblioteca no diretório do projeto lhe dá acesso automaticamente e não precisa da instrução using.
Exemplo: estou usando o SwiftyJSON e bastava ter o arquivo SwiftyJSON.swift no projeto. A
using
declaração estava realmente me dando o erro 'sem módulo' e removê-lo resolveu-o, e funciona bem.fonte