Erro Xcode 10: Vários comandos produzem

659

erro: Vários comandos produzem '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist': 1) O destino 'OptimalLive' possui um comando de cópia do destino '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist' para '/ Usuários / uesr / Library / Developer / Xcode / DerivedData / OptimalLive-fxatvygbofczeyhjsawtebkimvwx / Build / Products / Debug-iphoneos / OptLive .app / Info.plist '2) O destino' OptimalLive 'possui o comando de cópia de' /Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Server/Masonry/Info.plist 'para' / Users / uesr / Biblioteca / Desenvolvedor / Xcode / DerivedData / OptimalLive-fxatvygbofczeyhjsawtebkimvwx / Construção / Produtos / Iphone-depuração / OptimalLive.app / Info.plist '3) Target' OptimalLive 'possui comando de processo com a entrada '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist'

A execução do código no Xcode9 funciona, mas há um erro no Xcode10.

faço
fonte
Para dependências gerenciadas de cocoapods, consulte stackoverflow.com/a/52421345/334999
Shuo
acontece quando você importa uma estrutura de terceiros para o seu projeto e ela possui info.plist nos arquivos de origem. Este info.plist entra em conflito com o aplicativo. Basta removê-lo a partir de fases Envergadura
protspace
Caro leitor, leia TODAS as respostas a esta pergunta. Há muitas coisas diferentes que podem estar erradas.
Iluvcapra
Ir para o caminho "Fases de construção-> Copiar recursos do pacote". Verifique o nome do arquivo e exclua o mesmo. Limpe e execute a aplicação
Sagar Sukode

Respostas:

1225

O problema pode estar ocorrendo devido a vários arquivos Plist ou outros dentro do App-

Solução -> Abrir destino -> Fases de construção> Copiar recursos do pacote e remover a info.plistpartir daí.

enter image description here

Nota: Se você desenvolveu um aplicativo de relógio também, também será necessário remover a lista do relógio e a extensão do relógio.

Alok
fonte
12
Você também pode precisar de olhar em todas as dependências ou seja CocoaPods para arquivos Info.plist erroneamente acrescentado
Chris Paveglio
68
Para elaborar um pouco: Este erro está acontecendo porque o novo sistema de compilação do Xcode 10 é melhor para detectar problemas de configuração do projeto. Problemas como esses às vezes podem causar problemas sutis na sua compilação, portanto é bom corrigi-los.
21418 Rick
2
No meu caso eu tive que remover alguns arquivos de localização nomeados InfoPlist.strings
neowinston
8
No meu caso, eu tinha um info.plistarquivo em uma das dependências particulares do CocoaPods que estava sendo recolhido porque correspondia à source_filespropriedade do podspec . Eu não precisava do info.plistarquivo no meu módulo, então apenas o excluí.
aapierce
3
Obrigado! Eu tinha adicionado alguns desenvolvedores de plugins n meu código há algum tempo e ele também tinha um arquivo info.plist que entrou em conflito com info.plist do meu aplicativo
Christopher Smit
567

Encontrei a solução para esse erro de compilação. Para qualquer outra pessoa com o mesmo problema com o sistema de compilação Xcode 10, siga as seguintes etapas para corrigi-lo:

  1. No Xcode, vá para Arquivo-> Configurações do Projeto / Área de Trabalho.
  2. Altere o sistema de compilação para o sistema Legacy Build.

insira a descrição da imagem aqui Ele resolverá o problema de compilação com o novo Xcode 10.

Se você deseja trabalhar com o novo sistema de compilação, pode encontrar a ajuda para solução de problemas nesta página de ajuda do Apple Xcode .

Espero que isto ajude!

Akshay Sunderwani
fonte
4
você pode explicar por que esse problema está chegando e também como a escolha do Legacy Build System o resolve? @Akshay Sunderwani
user832
142
Você não está corrigindo o problema, apenas os está ocultando.
Caio
4
Correções de erros de construção para projetos com reação nativa. Veja o problema aqui: github.com/facebook/react-native/issues/20492 Existe uma solução possível se você não quiser mudar para o sistema de criação
Eugen Timm
6
Esta não é uma correção de longo prazo. Eventualmente, o sistema de criação herdado não será mais uma opção.
Paul King
6
Bem, eu vou 100% esconder o problema em vez de corrigi-lo, porque nenhuma dessas soluções funciona. Parece ser um problema conhecido com Cocoapods; consulte github.com/CocoaPods/CocoaPods/issues/7949 . Espero que, de alguma forma, se conserte no momento em que essa solução alternativa não seja mais uma opção.
sudo
170

Vá para Xcode -> Arquivo -> Configurações da área de trabalho. Você encontrará um pop-up como.

insira a descrição da imagem aqui

Selecione " Sistema de Compilação Legado " na tag Build System. Pressione " Concluído " "

Nota: - Certifique-se de limpar seu projeto com " cmd + shift + alt + k " e " Dados Derivados "

Construa seu projeto, ele funcionará com charme :)

Hardik1344
fonte
De acordo com meu entendimento, nossos projetos existentes são feitos em swift antigo e xcode, que são suportados pela versão antiga do swift e xcode. Então, antes do que fizemos, fomos em "Configurações do pacote -> Swift Legacy Build System" e selecionamos a versão anterior.
precisa saber é o seguinte
Originalmente, eu o usava no "Swift Legacy Build System", mas foi trocado depois de reiniciar o computador. Mesmo se você acha que configurou esse conjunto corretamente, ainda pode valer a pena conferir duas vezes.
precisa saber é o seguinte
Esta solução não resolve o problema, apenas o oculta.
Argus
Também certifique-se de alterar as configurações de espaço de trabalho por usuário para o mesmo;)
Wei Shen
114

Tente isso também. Xcode-> Arquivo-> Configurações do Projeto-> Sistema de Compilação -> Sistema de Compilação Legado.

Hari Prasath Balachandran
fonte
38
Nesse caso, o Xcode está sinalizando um problema no projeto, portanto, a reversão para o sistema de compilação herdado o ocultará por enquanto. Os relatórios do Xcode sobre esses tipos de problemas são intencionais e é melhor corrigir o problema.
21718 Rick
2
Se o erro estiver no projeto gerado pelo CocoaPods, eu desabilitaria o novo sistema de compilação até que uma nova versão do CocoaPods resolva o problema.
Rivera
@ RickBallard faz sentido, agora, qual poderia ser a solução certa? parece haver uma mistura de respostas
rolando 9/10
1
Existem várias causas deste tipo de erro, mas você pode ler mais sobre o que significa a help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0
Rick Ballard
74

Se você estiver obtendo isso do Dittocomando criando várias instâncias com o mesmo nome (NÃO 'copy files' build phase), talvez seja necessário alterar o Product Module Name.

  1. Clique no (s) seu (s) alvo (s) Xcode está reclamando
  2. Clique em Build Settings
  3. Procurar por Product Module Name
  4. Mude o nome para algo único

Como temos um alvo de exibição e alguns de notificação no nosso aplicativo, coloco coisas como Extensionno final do nome do módulo.

Encontrei esta solução originalmente aqui: https://forums.developer.apple.com/thread/103913

u2Fan
fonte
1
Funcionou um pouco bem, mas depois rompeu com o arquivo de ponte.
Mohamad Kaakati 16/09
5
No meu caso, eu tive que selecionar Allà direita de onde você procura para Product Module Namefazer com que essa configuração seja exibida.
Hodson
56
Eu tenho o mesmo problema no Xcode 10. O mesmo projeto estava funcionando bem no Xcode 9.4.1. Portanto, a solução é muito simples. Basta remover todos os arquivos info.plist do destino. Faça isso para todos os arquivos info.plist. Passo 1. Selecione o arquivo info.plist. 2. No Inspetor de arquivos, desmarque o projeto em Associação ao destino. Em seguida, execute seu projeto. Obrigado !
An Kit
12
Para mim, eu tinha que ir para o [project_name]> Fases Construir> Copiar Bundle Recursos e remover as duplicações lá
user3322509
5
@Bharath Não remova os arquivos info.plist do seu projeto. Você precisa remover apenas do Target, como mencionei. Não podemos remover info.plist, é muito importante para o projeto.
Um kit
69

Eu estava experimentando o Core Data. Criei um modelo de dados para um programa simples de lista de verificação e gerei o NSManagedObjects. Quando compilei o projeto, recebi o seguinte erro:

error: Multiple commands produce '/Users/myUSerName/Library/Developer/Xcode/DerivedData/myCoreDateExperiment-gzbslaqdwglkzxemijpdqmizgyzc/Build/Intermediates.noindex/ myCoreDateExperiment /Debug-iphonesimulator/ myCoreDateExperiment.build/Objects-normal/x86_64/CheckListItem+CoreDataProperties.o':
1) Target ' myCoreDateExperiment ' (project ' myCoreDateExperiment ') has compile command for Swift source files
2) Target ' myCoreDateExperiment ' (project ' myCoreDateExperiment ') has compile command for Swift source files

O problema era que o modelo de dados (CheckList.xcdatamodeld no meu caso) estava na lista "Fontes de compilação". O projeto foi compilado corretamente quando o removi da lista.

  1. Abra o navegador do projeto e selecione o projeto (primeira entrada na parte superior)
  2. Selecione seu destino de construção em Destinos no painel "Projetos e destinos"
  3. Selecione a opção Build Fhases próximo ao topo
  4. Expanda a entrada "Compilar fontes" e procure o nome do seu modelo de dados. Procure por "xcdatamodeld" se tiver problemas para encontrá-lo.
  5. Exclua o modelo da lista de compilação
  6. Verifique se o modelo de dados está incluído na lista "Copiar recursos do pacote". Adicione se estiver faltando.

EDITAR

Como @WilliamT. explica nos comentários, você precisa do xcdatamodeld na lista de compilação. Em vez disso, acesse suas entidades no arquivo xcdatamodeld. Selecione os modelos com erro, expanda o painel esquerdo e altere o campo "Codegen" para "Manual / None".

Positron
fonte
36
O arquivo xcdatamodeld realmente deve estar em Fontes de Compilação. se estiver vendo esse erro em relação aos Dados Principais, é provável que você tenha chamado "Criar subclasse NSManagedObject", mas você tenha sua Entidade definida como Codegen = "Definição de classe". Isso significa que ele cria automaticamente essas classes para você e você as criou manualmente para que elas existam duas vezes.
William T.
1
você é um salva-vidas
user578386
1
@WilliamT. Então, qual deve ser o valor do Codegen se alguém estiver chamando Criar subclasse de objeto NSManaged?
Kaunteya
2
@Kaunteya Há uma opção para definir o Codegen para "Manual" em cada Atributo CoreData (tabela)
William T.
1
Siga @WilliamT. conselhos e depois limpe e construa.
PruitIgoe 25/10/19
40

Ao verificar o log de compilação, observei um aviso:

note: Using new build system
note: Planning build
note: Constructing build description
Build system information
warning: The Copy Bundle Resources build phase contains this target's Info.plist file '/Users/<redacted>/Repositories/Whitesmith/optimize-ios/Carthage/Checkouts/WSStatusBarNotification/Miscellaneous/Info.plist'. (in target 'JDStatusBarNotification')

Então, se esse for o seu caso, basta ir ao seu destino:

  1. Construir Fases
  2. Copiar recurso do pacote
  3. Retire info.plist.
AndrewSas
fonte
32
info.plist não está presente em recursos cópia do pacote, ainda recebendo o mesmo erro
bunty kumar
A remoção de um Info.plist excessivo da fase de criação de recursos do pacote de cópias resolveu isso para mim. No entanto, meu aviso foi diferente porque acidentalmente um Info.plist de um destino diferente, mas dentro do mesmo projeto, foi adicionado à fase de construção Copy Bundle Resources. O aviso foi: "aviso: arquivo de saída duplicado '... MyApp.app/Info.plist' na tarefa: ProcessInfoPlistFile". E levando ao mesmo erro da pergunta original: "erro: vários comandos produzem '... MyApp.app/Info.plist'".
Martin Polak 26/09
no meu caso era "LICENÇA" arquivo - uma vez que eu tenha removido-lo, o problema foi corrigido, então eu acho que o problema é mais geral do que "plist", apenas parece ser apenas uma mais frequentemente encontrados
vir nos
37

Se você usa o CocoaPods, tente desintegrar os pods e instalar novamente. Funciona para mim.

pod deintegrate

pod install

Ming Chu
fonte
Sim, meu problema foi causado por um pacote de pod e somente isso corrigiu o problema! obrigada
CodeBrew 02/06
@Ming Chu Obrigado
N. Der
30

Tente isto Está funcionando:

No Xcode, vá para Arquivo-> Configurações do Projeto / Área de Trabalho.

Altere o sistema de compilação para o sistema Legacy Build.

Akash Patel
fonte
2
Nesse caso, o Xcode está sinalizando um problema no projeto, portanto, a reversão para o sistema de compilação herdado o ocultará por enquanto. Os relatórios do Xcode sobre esses tipos de problemas são intencionais e é melhor corrigir o problema. Para obter mais informações, consulte help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0 .
Rick Ballard
27

Leia esta resposta se a mensagem de erro referenciar arquivos de dados principais

Sinopse: Você pode ter arquivos de classe de objeto gerenciados Core Data gerados automaticamente e manualmente.

Esta resposta se aplica se a primeira linha do erro se referir a um arquivo Foo + CoreDataProperties.o ou Foo + CoreDataClass.o . Exemplo:

error: Multiple commands produce '/Users/me/Library/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/ MyApp /Debug-iphonesimulator/ MyApp.build/Objects-normal/x86_64/Foo+CoreDataProperties.o':

1) Target ' MyApp ' (project ' MyApp ') has compile command for Swift source files

2) Target ' MyApp ' (project ' MyApp ') has compile command for Swift source files

A causa raiz pode ser vista expandindo a seção Arquivos de origem Compile Swift da Transcrição de compilação. Por exemplo:

<unknown>:0: error: filename "Address+CoreDataClass.swift" used twice: '/Users/myUserName/Projects/Jnky/Foo+CoreDataProperties' and '/Users/jk/myUserName/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/MyApp.build/Debug/MyApp.build/DerivedSources/CoreDataGenerated/Jnky/Foo+CoreDataProperties.swift'

O primeiro arquivo mencionado existe um arquivo de origem no diretório do projeto, gerado por alguém selecionando seu modelo de dados no Navegador de Projeto e clicando no menu Editor > Criar Subclasse de Objeto Gerenciado . Esse recurso foi adicionado no Xcode 7 ou mais.

O segundo arquivo é um arquivo com o mesmo nome, mas que está oculto no Xcode DerivedData. Esse arquivo é gerado automaticamente pelo Xcode durante todas as construções, se o arquivo de modelo de dados ( .xcdatamodeld) for incluído na fase de construção das fontes de compilação do destino . Este recurso foi adicionado no Xcode 9 ou mais. Zero, um ou dois arquivos são gerados para cada entidade / classe, dependendo da configuração do pop-up Codegen . Esse pop-up está no Data Model Inspector quando você seleciona uma entidade ao editar seu modelo de dados…

captura de tela do Data Model Inspector

As configurações são:

  • Manual / Nenhum Nenhum arquivo é gerado
  • Categoria / Extensão Um arquivo, Foo + CoreDataProperties.m ou .swift é gerado, contendo uma categoria Objective-C ou extensão Swift.
  • Definição de classe O mesmo arquivo de categoria / extensão é gerado e, além disso, um Foo + CoreDataClass.m ou .swift é gerado, contendo declaração e definição de classe.

Então você vê que o problema ocorre quando um desenvolvedor (como eu) acostumado ao Xcode mais antigo inicia um projeto em um Xcode mais recente. Achamos que precisamos usar o item de menu Criar subclasse de objeto gerenciado , o que fazemos, para criar os arquivos que podemos ver no Project Navigator sem perceber que nossas configurações no pop-up Codegen estão fazendo com que o Xcode crie arquivos duplicados, que a Apple "inteligentemente" não aparece no Project Navigator, porque eles não confiam nos desenvolvedores para ler e prestar atenção ao comentário no cabeçalho // Este arquivo foi gerado automaticamente e não deve ser editado.

Solução 1 - Use a maneira mais antiga

Você pode desativar todo o Codegen automático para um modelo de dados com apenas uma configuração:

  • Abra o problema das fases de construção do alvo (no Project Navigator , selecione o projeto e, em seguida, na lista de TARGETS que aparece, selecione o destino do problema e, em seguida, marque a opção Build Fhases ).
  • Expanda a entrada Fontes de Compilação e localize o modelo de dados do problema (.xcdatamodeld arquivo).
  • Exclua-o da lista de compilação
  • Verifique se o modelo de dados está incluído na lista Copiar recursos do pacote .

Solução 2 - Core Data Magic para iniciantes

Aqui, você entra no caminho mais recente.

  • Deixe seu modelo de dados como está naquele Compile Sources .
  • Em cada Inspetor de entidades em seu modelo de dados, defina Codegen como Definição de classe .
  • No Project Navigator, exclua e lixeira todos os arquivos Foo + CoreDataClass e renomeie quaisquer arquivos Foo + CoreDataProperties.m ou .swift para algo como Foo + MyProperties .
  • Em cada arquivo Foo + MyProperties.m ou .swift , se houver propriedades geradas pelo Xcode, exclua essas propriedades porque elas estarão nos arquivos ocultos criados pelo Codegen .

Com esta solução, suas definições de classe são geradas automaticamente a partir do modelo de dados em cada construção. Você nem pode vê-los. É Core Data Magic , agradável e simples para iniciantes.

Solução 3 - para a maioria dos aplicativos do mundo real

Mas a Solução 2 não é boa se você realmente deseja adicionar propriedades não gerenciadas. (O Objective-C não permite que propriedades sejam adicionadas em categorias e Swift não permite que propriedades armazenadas sejam adicionadas em extensões.) Portanto, na maioria dos aplicativos do mundo real, você provavelmente deseja ir a meio caminho entre as Soluções 1 e 2…

  • Deixe seu modelo de dados na lista de fontes de compilação
  • Em cada Inspetor de entidades em seu modelo de dados, defina Codegen como Categoria / extensão .
  • No Project Navigator, exclua e lixeira todos os arquivos Foo + CoreDataClass.m ou .swift e, para reduzir futuras confusões, renomeie qualquer arquivo Foo + CoreDataProperties.m ou .swift para talvez apenas Foo.m ou .swift .
  • Assegurar que cada Foo.m ou .swift arquivo contém a definição de classe, para o qual você pode adicionar suas próprias propriedades não de gestão.

(Agradecimentos à resposta da Positron. Minha resposta aqui explica por que a resposta da Positron (minha solução 1) funciona e adiciona a solução 2 e a solução 3.)

Jerry Krinock
fonte
isso funcionou para mim. você é incrível!
Srujan Simha 10/05/19
Boa resposta. Só queria adicionar, você pode limpar os arquivos ocultos duplicados usando 'Produto> Limpar pasta de compilação' depois de fixar o Codegen em Manual / Nenhum, retirado de um comentário daqui .
indubitavelmente
21

Uma opção que resolveu meu problema é alterar o sistema de compilação para o sistema de compilação herdado. Siga os seguintes passos no Xcode 10+.

Aqui eu escrevi um artigo detalhado sobre o problema e sua solução. Erro Xcode: Vários comandos produzem

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Asad Ali Choudhry
fonte
1
Salvou a minha vida. Funcionou perfeitamente.
Reinaldo
2
Esta resposta corrigiu sozinha 12 problemas que eu tenho tido no Xcode com o React Native. Obrigado!
Chris Gilardi
19

No meu caso, o PDFGenerator estava produzindo um arquivo info.plist, apenas o excluí.

insira a descrição da imagem aqui

Badr
fonte
18

Eu tive o mesmo problema, eu tinha mais um aplicativo auxiliar no aplicativo principal e copie isso no recurso. No meu caso resolvido como: -

1) Alvo -> 2) Fases de construção 2) Copiar arquivo (n itens) 3) Remover arquivo de cópia.

O aplicativo Helper copiado automaticamente no Xcode 10.0.

insira a descrição da imagem aqui

Prakash Jat
fonte
3
Copiar arquivos + A exclusão de Copiar recursos do pacote ajudou.
precisa
Isso funcionou para mim com pequenas modificações - no meu caso, havia vários arquivos na etapa de copiar arquivos, de alguma forma os mesmos nomes de arquivos foram copiados para o pacote várias vezes / duas vezes - resultando no erro: excluir uma única linha precisa destacar a linha / filtre o nome reclamado no erro e exclua uma linha pelo sinal de menos (sempre na linha inferior) em vez de excluir toda a etapa dos arquivos de cópia.
AztecWarrior_25 1/01/19
16

Nenhuma das soluções propostas aqui funcionou para mim. Isso ocorreu principalmente devido ao CocoaPods. Eu estava usando Cocoapods 1.3.1 anteriormente. Simplesmente atualizar para a 1.5.3 não resolveu o problema imediatamente.

Os passos que segui foram:

  1. Excluir Podfile.lock
  2. Excluir diretório de pods
  3. Excluir dados derivados e limpar
  4. Sair do Xcode
  5. Atualizar o CocoaPods para 1.5.3
  6. Corre pod install
  7. Abrir espaço de trabalho e construir
Justin
fonte
5
Atualizar o CocoaPods para a versão 1.5.3 (sudo gem install cocoapods) e executar (instalação do pod) foi suficiente para fazê-lo funcionar para mim. Obrigado!
precisa saber é o seguinte
Eu fiz algumas das recomendações acima, mas este foi o único que resolveu para mim. Obrigado
Almeida
Este também resolveu para mim. Eu acho que é melhor do que a solução de construção herdada, porque na verdade cuida do problema.
MateusK
1
Isso funcionou para mim, mas eu também tive que adicionar install! 'cocoapods', :disable_input_output_paths => trueno topo do meu podfile. Além disso, se você não deseja atualizar seus pods - não exclua podfile.lock e todos os pods serão instalados na versão atual.
DoesData
11

Antes de começar, observe que meu projeto utiliza Cartago como gerente de dependência.

Nenhuma das respostas existentes aqui resolveu meu problema. O que resolveu o problema para mim foi o seguinte.

Primeiro, notei que o erro de construção apontava uma estrutura em particular. Em seguida, filtrei o App Target> Build Fhases para essa estrutura. Percebi que essa estrutura estava presente nos "Link Binary With Libraries" e "Embed Frameworks". Observando que nenhuma das estruturas listadas em "Embed Frameworks" era gerenciada por Carthage, removi a estrutura em questão de "Embed Frameworks". Em seguida, reconstruí meu projeto e tudo funciona bem, incluindo a funcionalidade ativada pela estrutura em questão.

palmi
fonte
1
Eu usei PODS. Remover tudo do Embed Frameworks funcionou. Eu limpo e reconstruído sem erros. A solução herdada também funciona, mas não resolve o problema em questão (para quem está lendo isso). Estou no xcode 10.2, cocoapods-1.6.1.
Nadine Rose
1
Estou usando Cartago e isso corrigiu para mim!
Devin B
Eu também usei CocoaPods. O Framework está conectado como pod de desenvolvimento. "Embed Frameworks" está vazio e ainda está com esse problema
Luten
11

Passos:

  1. Vá para o arquivo Xcode
  2. Clique para configurações do espaço de trabalho
  3. Sistema de Compilação Selecione como Sistema de Compilação Legado
Sanjay Mali
fonte
4
Nesse caso, o Xcode está sinalizando um problema no projeto, portanto, a reversão para o sistema de compilação herdado o ocultará por enquanto. Os relatórios do Xcode sobre esses tipos de problemas são intencionais e é melhor corrigir o problema. Para obter mais informações, consulte help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0 .
Rick Ballard
Isso funciona para mim. Alterar o nome do produto não. Como meu produto é misturado com meio código objetivo-c e código rápido. Meu problema é "Múltiplos comandos produzem swiftmodule"
wzhang84 25/18
10

Tente todas essas opções, qualquer uma dessas três opções funcionará para você, com certeza

Option 1: Remove all files from

Destino >> Fases de construção >> Origens de compilação

Destino >> Fases de construção >> Copiar recursos do pacote

Option 2: Change the build system

Xcode-> Arquivo-> Configurações do Projeto-> Sistema de Compilação -> Sistema de Compilação Legado

Option 3: remove and update existing pod

cache do pod limpo PromisesObjC
cache do pod limpo PromisesSwift
cd [your_project_dir]
rm -rf Pods /
rm Podfile.lock
atualização do pod

I hope this will help you, Happy coding :-)
Shoaib Bagwan
fonte
-1. Não, não funciona "com certeza". Qual é o sentido em remover fontes de compilação e copiar recursos do pacote ?! O projeto não funcionará sem a compilação de código e recursos.
Luten
9

Portanto, o problema que eu estava tendo é que eu incluí acidentalmente o Info.plist nas configurações do projeto -> Fases de construção -> Copiar recursos do pacote para o meu destino.

Austin
fonte
Esta foi precisamente a solução para mim também, como ocorreu este erro ao tentar executar tflite_camera_example no Xcode 10
zai chang
9

Esse problema surgiu para mim depois de adicionar uma segunda parte do conjunto de SDKs Fabric ao aplicativo.

O que realmente aconteceu foi que o GoogleUtilies Framework foi adicionado duas vezes ao projeto Pods

Duas entradas para GoogleUtilities.framework

Isso teria sido bom antes do Xcode 10, mas o Xcode 10 reclamará se um arquivo tiver duas ações contra ele (neste caso, uma ação de cópia).

É seguro remover a segunda estrutura.

Damo
fonte
O mesmo para mim, mas usando Cartago arrastando todos .frameworks para projeto seção bibliotecas
Ronaldo Albertini
Você corrigiu isso @Damo
Harikarthick K
Estou enfrentando esse problema. Você poderia me dizer como corrigir isso, sem alterar o legado?
Harikarthick K
9

Aqui está outra solução funcional: (Se você estiver usando Pods personalizados)

  • Selecione "Pods" na barra lateral como destaques na captura de tela.
  • Clique em Build Phase. Expanda a seção "Cabeçalhos". Existem 3 opções Pública, Privada, Projeto
  • Expanda Público e verifique se há arquivos duplicados. Remova. FEITO!!

insira a descrição da imagem aqui

Gajendra K Chauhan
fonte
essa resposta também deve ser vista como uma solução, caso o pod (personalizado) esteja causando o problema!
MkaysWork #
Além disso, você pode remover qualquer arquivo * .plist daqui. Parece funcionar para pods personalizados.
Amit Ahire 13/03
8

Eu recebi vários Multiple commands produceavisos - não limitados à duplicação info.plist em um alvo. Incluindo recursos localizados e arquivos de string, cabeçalhos etc.

Solução: remova todas as duplicações na associação de destino.

Will Gwo
fonte
Eu tive esse erro porque eu tinha um alvo de exibição com seu próprio arquivo infoplist.strings, que estava sendo copiado no mesmo diretório do arquivo infoplist.strings do aplicativo principal. Os dois acabariam no mesmo lugar ao serem construídos.
Lyck
7

Eu tive esse problema quando tinha um arquivo com o mesmo nome em dois destinos diferentes. Por alguma razão, um desses arquivos fazia parte dos dois destinos. Então, basicamente, eu tinha dois arquivos. E os dois arquivos pertenciam a um destino.

Faz sentido que um destino possa ter apenas um nome de arquivo por destino; portanto, desmarque a caixa de membro de destino do arquivo que não estava relacionado ao principal destino.

Charlie Fish
fonte
7

Eu usando Cartago e Xcode 10.

Minha solução é -> Projeto -> Alvo -> Geral ->

Remova as estruturas adicionadas com Carthage de "Binários incorporados"

normalmente você tem que adicionar um script nas fases de compilação para remover a arquitetura da loja de aplicativos.

No Xcode 10, o script parece sempre chamado. Portanto, ele copia as estruturas para o lugar certo e você não precisa adicioná-las à guia Geral.

Nota: se não estiver definido -> em Configurações de compilação -> Caminhos de pesquisa -> Caminhos de pesquisa da estrutura -> defina o caminho para a estrutura que você adicionou com Cartago .... por exemplo. "$ (PROJECT_DIR) / Cartago / Compilação / iOS"

Raegtime
fonte
7

Vale ressaltar que esse erro pode ser produzido após a geração automática de modelos CoreData em que o Codegen não está definido como Manual / Nenhum.

Para corrigir isso no Xcode 10, clique duas vezes no arquivo xcdatamodeId e selecione cada uma de suas entidades e defina Codegen como Manual / None em Class no seu Data Model Inspector.

Aurelia W
fonte
Sim! E também faça uma "Pasta de Construção Limpa".
Dirk
6

Teve um problema semelhante, mas com arquivos .swiftdoc.

Eu tenho extensões e metas de teste de unidade no projeto. E eles tinham o mesmo "Nome do módulo do produto" (PRODUCT_MODULE_NAME nas configurações de compilação) do aplicativo. Depois de fazer nomes questão única ido.

Igor Palaguta
fonte
6

Mudando para o Xcode 10, erros como

error: Multiple commands produce '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist':

pode ser resolvido da seguinte maneira:

Vá para Xcode->File->Workspace/Project Settings-> Build System -> Legacy Build System.

Noor
fonte
2
Nesse caso, o Xcode está sinalizando um problema no projeto, portanto, a reversão para o sistema de compilação herdado o ocultará por enquanto. Os relatórios do Xcode sobre esses tipos de problemas são intencionais e é melhor corrigir o problema. Para obter mais informações, consulte help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0 .
Rick Ballard
este fez isso por mim, você senhor é um gênio
samouray
6

Vá na fase de criação do projeto e remova info.plist das fontes de compilação. Isso removerá esse problema e o projeto estará ativo novamente.

insira a descrição da imagem aqui

Aditya Sharma
fonte
6

Um dos meus CocoaPods foi desatualizado e causou o problema. Os pods foram atualizados e funcionou bem.

Acredito que pode ter sido o LivePerson SDK

ninjaneer
fonte
para mim eu só tinha que fazer 'pod install' #
Pnar Sbi Wer
6

Meu problema estava no Xcode 10 sendo executado no Mojave e enquanto tentava executar testes de unidade que escrevi antes de atualizar para o XCode 10.

No meu caso, tive esse problema ao executar meu TestTargetdestino. Para resolver, eu tive que:

  • Exclua uma das dependências de destino (pol TestTarget > build phases > Target Dependencies)

já que eu tinha dois outros destinos além do meu TestTargete ambos estavam executando o mesmo script e criando / copiando arquivos em um determinado momento.

E isso entrou em conflito com o que foi mencionado nas Notas de versão do sistema de compilação para o Xcode 10 aqui :

É um erro que qualquer arquivo individual na compilação seja produzido por mais de um comando de compilação. Por exemplo, se dois destinos declararem o mesmo arquivo de saída de uma fase de script de shell, fatore a declaração do arquivo de saída em um único destino.

Nova atualização após a atualização do Xcode 10.1 para 10.2

Problema semelhante apareceu novamente após a atualização para o Xcode 10.2. Tenho vários destinos por projeto: Target1e Target2resolvi esse problema:

  • navegando para Edit Scheme > Builde
  • removendo um dos destinos da criação: desmarque a caixa de seleção Target1under, Testpois eu sabia que era Target2importadoTarget1

Também para observar aqui, Target2a caixa de seleção deve permanecer marcada emTest

Samman Bikram Thapa
fonte
6
error: Multiple commands produce '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings':
1) Target 'chat21' (project 'chat21') has copy command from '/Users/KunshtechNew/Downloads/chat21-ios-demo-master/TildeskWidget/Chat21Core/Base.lproj/Chat.strings' to '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings'
2) Target 'chat21' (project 'chat21') has copy command from '/Users/KunshtechNew/Downloads/chat21-ios-sdk-master 2/Chat21Core/Base.lproj/Chat.strings' to '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings'

Pode haver 2 soluções diferentes para se livrar desse problema:

Solução 1

Como podemos ver, estava recebendo o mesmo erro. No meu caso, havia uma cópia extra da pasta Chat21Core no TildeskWidget estava criando um problema. Portanto, uma das soluções possíveis também pode ser apenas ler o erro completamente e tente descobrir se há alguma cópia extra referenciada no projeto ou não.

Solução 2

Outra solução simples que encontrei quando enfrento o mesmo tipo de problema para um projeto diferente. Desta vez, tive que aplicar uma solução diferente.

  • pod deintegrate do projeto.
  • Remova o arquivo da área de trabalho e o arquivo pod.lock da pasta do projeto.
  • Mais uma vez pod install e tente criar o projeto.

Espero que isso possa funcionar para você ..

Kunsh Technologies
fonte