Respostas:
Para mim, nenhuma das soluções anteriores funcionou. Descobrimos que existe um sinalizador ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
(nas versões anteriores: "Conteúdo incorporado contém código Swift") nas Configurações de compilação que precisam ser definidas como YES. Não era por padrão!
Este erro pode ocorrer se algo der errado durante a conversão de um projeto Objective-C para começar a usar o Swift. O problema é que as configurações de compilação do Linker nunca foram definidas corretamente, portanto, você precisará fazer isso manualmente. Procure a configuração de construção dos Caminhos de Pesquisa de Caminho de Execução e defina-a como:
$(inherited) @executable_path/Frameworks
EDIT: Devo também acrescentar que houve uma onda recente desses erros causados por algo completamente diferente - a Apple fez uma alteração no próprio Swift, talvez começando no Xcode 6.1 ou 6.1.1. A única solução parece ser encerrar o Xcode, destruir seus certificados no Keychain Access, acessar a Central de Membros e excluir todos os certificados e perfis (exceto os perfis de aplicativos da Loja - você não pode excluí-los) e iniciar o processo de solicitação de certificado inteiro do zero.
Não tenho muita certeza do motivo pelo qual essa pergunta está sendo votada, eu também tive esse problema quando tentei usar o Swift em um projeto existente. Uma reinicialização do Xcode também corrigiu isso para mim.
Pesquisei muito sobre esse assunto. Existem vários motivos que causam esse problema.
Se você estiver enfrentando quando você e o código / biblioteca Swift em um projeto do Objectice C, tente a Solução 1-2-3
Se você estiver enfrentando esse problema com um novo projeto, a Swift Solution 4 será a melhor para você.
Reinicie o Xcode, depois o computador e o iPhone
Vá para as configurações de construção do projeto e defina Always Embed Swift Standard Libraries
(anteriormente Embedded Content Contains Swift Code
) o sinalizador paraYES
Vá para as configurações de construção do projeto e adicione @executable_path/Frameworks
à Runpath Search Paths
opção
Se nenhuma das opções acima funcionar, isso deve acontecer. A Apple parece ser um certificado ninja, conforme mencionado no post da AirSign
Nos certificados InHouse
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR
eles adicionaram um novo campo chamado OU
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR
então você deve recriar certificado e provisão
@executable_path/../Frameworks
onde os projetos iOS exigem, sem ..
o meio. Alterar esse valor é importante se você tiver convertido um destino de um sistema operacional para outro.
No meu caso, eu estava tentando importar uma estrutura personalizada e estava recebendo o erro semelhante. Acontece que eu tive que importar a estrutura nos binários incorporados, e não nas estruturas e bibliotecas vinculadas.
Os binários incorporados estão em Configurações de projetos -> -> Geral
Para desenvolvedores que tiveram esse problema com uma compilação de distribuição Adhoc / Enterprise,
Crie o certificado de produção no portal dev e gere novamente o perfil de distribuição. Baixe e instale os dois no seu Mac. Verifique se você selecionou o perfil certo nas configurações de compilação do Xcode e reconstrua seu aplicativo.
Solução 5:
No meu caso, todas as soluções mencionadas na resposta dos accfews foram muito úteis, mas nenhuma funcionou. Resolvi meu problema adicionando minha biblioteca rápida na seção "Binários incorporados" na seção "Geral" do destino do meu projeto. Talvez isso se deva ao fato de eu ter incluído minha estrutura rápida no meu espaço de trabalho? Tudo o que compila agora! Prepare-se Swift, estou aqui!
Para mim, o problema ocorreu devido ao fato de minha Autoridade de Certificação Apple Relations Worldwide Developer ser inválida.
Faça o download aqui: https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
Arraste e solte-o no Keychain Access, limpe o projeto e execute.
Eu tinha um projeto Obj-C onde comecei a adicionar arquivos de origem rápidos. O seguinte corrigiu o problema para mim:
RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
EMBEDDED CONTENT CONTAINS SWIFT = YES
Acabei de criar um novo projeto a partir dos modelos Xcode 6.3 e comparei as configurações do projeto com o meu antigo projeto original.
Tente segurar a tecla Alt e vá para Produto -> Limpar pasta de compilação ...
Espero que ajude alguém ..
As razões para isso ocorrer são muitas. Depois de passar um fim de semana divertido, encontrando mais um problema que causa isso (a ordem da assinatura do código), eu queria criar uma resposta resumida que reunisse todas as soluções possíveis:
DerivedData
e Build
. Procure nas Preferências a localização de DerivedData
. Build
deve estar na sua pasta do projeto.@executable_path/Frameworks
. Essa é a coisa mais fácil. Se você estiver criando sua própria linha de comando, poderá criar seus próprios .ipa
arquivos para upload. Nesse caso, você precisa garantir o seguinte:
SwiftSupport/iphoneos
é a mesma que a versão emContents/YourApp.app/Frameworks
Como o Swift ainda não é compatível com binários entre versões, você deve garantir que essas versões sejam as que você criou seu aplicativo. Você pode encontrar essas bibliotecas em /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos
.codesign
das bibliotecas e dos arquivos de estrutura (abaixo Frameworks
da .app
pasta) e depois assinar a .app
árvore inteira . A .app
árvore deve ser assinada com uma estrutura, entitlements.plist
mas não com ela .Felizmente, quando o Swift 3.0 for lançado e não precisarmos mais empacotar o Swift com nossos aplicativos, todo esse problema desaparecerá.
Eu tive esse problema usando uma provisão móvel Ad Hoc (ou corporativa) com um certificado de produção. A mudança para um certificado de desenvolvimento e a provisão móvel resolveram o problema.
Meu projeto é um projeto Swift com algumas classes de Objective-C. Eu tive o mesmo problema ao assinar com o certificado inHouse (corporativo) antigo.
Os seguintes passos corrigiram isso para mim.
Runpath Search Paths
configuração de compilação para: $(inherited) @executable_path/Frameworks
. Solução 6:
No nosso caso, o certificado de distribuição corporativa foi revogado. A geração de um novo certificado e a atualização do perfil de provisionamento corrigiram o problema.
(Parece haver muitas causas diferentes para esse erro. Espero que isso ajude alguém.)
Eu enfrentei o mesmo problema, definir a identidade correta do sinal de código resolveu o problema (Configurações da compilação-> Identidade de assinatura de código).
De acordo com a pergunta técnica da Apple "Todos os certificados corporativos e padrão de desenvolvedor iOS criados após o lançamento do iOS 8 têm o novo campo ID da equipe no local apropriado para permitir a execução de aplicativos no idioma Swift"
Se você adicionar as três estruturas via binários incorporados, elas também serão adicionadas às estruturas e bibliotecas vinculadas. Exclua as três entradas nas estruturas vinculadas e as bibliotecas resolverão o problema.
Métodos mágicos como reiniciar o Xcode e reiniciar o Mac não funcionam comigo.
Adicionando Framework como "Binário Incorporado" em vez de apenas "Frameworks e Bibliotecas Vinculadas" - Corrigido meu problema.
Também defino o sinalizador Conteúdo incorporado contém código Swift como YES.
Atualize para a versão mais recente do OS X (Yosemite)
Após horas de tentativa e erro, cheguei à resolução deste problema. - Se isso se aplica ao seu caso, é claro.
Eu tive o mesmo problema até atualizar meu Mac OS X de Mavericks para Yosemite. - Corrigiu o meu problema, espero que conserte o seu também
Eu tentei todas as soluções encontradas na web, incluindo a Apple e novos certificados. Sem sucesso.
A única maneira de executar o xcode, após 6 meses de tentativas, era criar uma nova conta no meu macbook.
Normalmente, esse erro desaparecerá se você adicionar esta biblioteca ao segmento "Copiar arquivos" em suas fases de criação.
Nenhuma dessas soluções parecia funcionar consistentemente para mim; depois de duas execuções bem-sucedidas, ela falharia novamente. O sinalizador "Conteúdo incorporado contém código Swift" sempre foi definido como SIM para mim.
Acontece que eu definiria o Xcode como compatível com 6.3. Alterando-o novamente para ser compatível com 3.2, resolvi-o:
Eu também tive esse problema, mas ele não foi localizado libswiftXCTest.dylib
.
A solução foi adicionar XCTest.framework
ao destino dos testes, em Build Phases/Link Binary with Library
. Eu estava recebendo esse erro mesmo quando tentava criar o alvo principal.
Isso apareceu quando adicionei um novo destino de extensão Today com linguagem Swift a um projeto antigo. Corrigido facilmente, atualizando o projeto para as configurações recomendadas. Xcode 6.0.1
Eu tive o mesmo problema usando o Mavericks, Xcode 6.1.1, testando em um iPhone5 com iOS 8.1.1. Tentei todas as soluções possíveis, incluindo novos certificados e perfis de provisionamento, mas nada ajudou. Fiz as alterações Embedded Content Contains Swift Code
e Runpath Search Paths
no nível do projeto e no alvo.
Agora instalei o Yosemite e, sem mais alterações, ele começou a funcionar.
otool