como corrigir o problema “Falha de comando / bin / sh com código de saída 1” no iphone

92

Usei uma biblioteca estática de cacau em meu aplicativo. Quando compilo minha biblioteca, recebo o seguinte erro:

Shell Script invocation error:can't open input file:
/Users/sijuthomas/Library/Developer/Xcode/DerivedData/SCXML2-
    bbttehupryhijphhjdiemcytkvgy/Build/Products/Debug-iphonesimulator/
    libSCXMLParser.a (No such file or directory)
Command /bin/sh failed with exit code 1

Captura de tela para erro

Como posso consertar isso?

Ben 10
fonte

Respostas:

206

 Alvo -> Fases de construção -> exemplos de atualização

Clique na caixa de seleção On Run se não estiver selecionada.

Harshad
fonte
2
Esta caixa de seleção pode estar em Fases de construção → Código e imagens nativos do Bundle React.
rishat
4
para mim, isso funciona ao construir / instalar o aplicativo no telefone, mas não ao arquivar
Adeem
Esta resposta está correta. Mas ao definir o modo Generc iOS Device para obter a compilação de todos ... obtenha o erro novamente @Harshad
reza_khalafi
@reza_khalafi certifique-se de ter dados claros, bem como exclua os dados derivados. em seguida, tente novamente.
Harshad
1
@Harshad funciona durante a construção, mas não para arquivamento
NGB
63

Tive esse problema porque neguei o acesso ao chaveiro e para resolvê-lo você precisa abrir o chaveiro. Em seguida, clique no cadeado no canto superior direito da tela para bloqueá-lo novamente, depois disso você pode arquivar e ele funcionará

Salem Binmusaed
fonte
3
MUITO OBRIGADO! A propósito, pelo menos para mim a fechadura está no lado esquerdo. Estava aberto e teve que fechá-lo.
Eironeia
Compartilhei essa solução de uma fonte que não lembro, infelizmente.
Salem Binmusaed em
Recebi o código de saída 134 ao tentar arquivar o produto, mas consegui instalar o aplicativo no dispositivo, abri o chaveiro, mas você poderia encontrar a fechadura em qualquer lugar, meu Xcode versão 9.2, realmente preciso de ajuda
showmyroutes
42

Excluir "Dados derivados" funcionou para mim.

No Xcode, vá para Arquivo> Configurações do Espaço de Trabalho> Clique na seta ao lado do caminho do arquivo Dados Derivados> mova a pasta "Dados Derivados" para a lixeira.

hgwhittle
fonte
1
A qual versão do Xcode você está se referindo? ... Eu não tenho o menu / janelas ou opções às quais você está se referindo no Xcode 6.2
CthulhuJon 09/10/2015
2
está no Windows-> Organizer, não Projetos do Windows
CthulhuJon
funciona, mas precisava limpar o projeto e reiniciar o Xcode para mim
Hosny
1
Arquivo-> Configurações do Espaço de Trabalho ...-> Dados Derivados. Clique na seta no final do caminho. Clique com o botão direito na pasta e vá para a lixeira. iOS 10.12.6
Augustas
30

Parece que você está executando um script de shell e não consegue encontrar seu arquivo específico. Verifique Target -> Build-Phases -> RunScriptse você está executando um script.

Você pode verificar se um script está sendo executado em sua saída de compilação (no painel do navegador). Se o seu script fizer algo errado, a fase de construção será interrompida.

Sr. Bonjour
fonte
SKM editei minha resposta. Talvez seja o Xcode quem criou este script para encontrar sua biblioteca estática. A propósito, não está compilando porque não consegue encontrar o arquivo em /Users/sijuthomas/Library/Developer/Xcode/DerivedData/SCXML2-bbttehupryhijphhjdiemcytkvgy/Build/Products/Debug-iphonesimulator/libSCXMLParser.a. Portanto, certifique-se de incluí-lo aqui
Sr. Bonjour,
19

Eu tive o mesmo problema resolvido. Use as etapas abaixo para resolver o problema no Xcode 6.4.

  1. Clique em Mostrar navegador do projeto na janela do navegador
  2. Agora selecione o projeto imediatamente abaixo da janela do navegador
  3. Selecione os alvos
  4. Selecione a guia Build Phases
  5. Abra a opção suspensa Executar Script
  6. Select única Run script quando instalar checkbox

Captura de tela para etapas

Agora, limpe seu projeto (cmd + shift + k) e construa seu projeto.

Jayprakash Dubey
fonte
Esta deve ser a resposta aceita. Para um bin / sh problemático, esta é a solução.
Yash Bedi
9

Limpar a pasta de compilação (Cmd + Shift + Alt + K) funcionou para mim

nb07
fonte
3

1) Exclua a pasta do pod e o arquivo .xcworkspace 2) Abra a pasta no terminal 3) Digite "pod install"

Akil
fonte
1

Você adicionou a biblioteca .a ao projeto xcode? (projeto -> fases de construção -> Vincular binário às bibliotecas -> clique em '+' -> clique em 'adicionar outro' -> escolha sua biblioteca)

E talvez a biblioteca não seja compatível com o simulador, você tentou compilar para iDevice (não simulador)?

(Já lutei com o segundo problema, consegui uma biblioteca que não funcionava com o simulador mas com um dispositivo real que ele compila ...)

Ashbay
fonte
1

Para mim, meu certificado expirou. Eu criei um novo certificado.

Vincent Sit
fonte
0

Tentei reiniciar o Xcode (7) e nada ( você já tentou desligar e ligar novamente do desenvolvimento iOS para mim :-)). Tentei reiniciar minha caixa e funcionou.

No meu caso, o script estava falhando ao copiar um arquivo de um local para outro. Eu acho que pode estar relacionado ao Finder atrapalhar os direitos de escrita sobre certas pastas.

Juan Fran Jimenez
fonte
0

Para mim, esse erro estava ocorrendo porque eu mudei o número da versão de 1 para 1.0 e o número da compilação de 6 para 1.1 enquanto puxava o código da árvore de origem. Eu apenas mudei de volta e mudei o número da compilação de 6 para 7 e funcionou bem.

Chaudhry Talha
fonte
0

No Meu caso, havia espaço no caminho que estava falhando no script. Se você estiver usando variáveis ​​como $PROJECT_DIRou, em $TARGET_BUILD_DIRseguida, substitua-as "$PROJECT_DIR"ou "$TARGET_BUILD_DIR"respectivamente. Depois de adicionar aspas, meu script foi executado com êxito.

Rosa do Deserto
fonte
0

apenas coloque seu script em um arquivo e execute esse arquivo com 2> / dev / null no final da linha de comando!

Desta forma, se houver algum problema com o comando, ele não irá interromper a construção do seu xcode

no meu caso estava executando apenas um comando para desinstalar minha cópia anterior do aplicativo de um iphone conectado, para que pudesse dar um erro se o iphone não estiver lá. Para resolver:

$mobiledevice uninstall_app com.my.app 2>/dev/null

Saeed Badran
fonte
0

A única coisa funcionou para mim:

1) Excluir dados derivados com CleanMyMac: lixo do sistema -> Xcode lixo -> dados derivados do Xcode

Excluindo Dados Derivados com CleanMyMac

2) Em seguida, no Xcode: Produto -> Limpar

Евгений М
fonte
0

Fiz tudo acima e passei uma hora tratando do assunto.

Tentei tudo acima e reiniciei o Xcode.

Por fim, reiniciei o computador e tudo funcionando normalmente novamente!

Luke Mccormick
fonte
1
você não adicionou nada a esta postagem com a resposta. Reiniciar o computador pode ser um comentário, pois não ajuda a explicar o que estava errado.
Bojan Petkovic
Algum problema estranho, dados derivados excluídos e sistema de compilação comutado / não alterado. Mas depois de reiniciar eu estava ok!
Oritm
0

Vou listar coisas que fiz que não funcionaram para mim e, finalmente, o que funcionou

Primeiro, a resposta aceita de Executar script somente durante a instalação não funcionou.

A exclusão de dados derivados não funcionou.

O que funcionou:

  1. Eu adicionei uma nova fase de construção nas fases de construção

  2. Nova fase de cópia de arquivos

  3. Arraste e solte a estrutura escolhida no destino de soltar

  4. Defina o 'Destino' para Frameworks

Crédito devido à postagem de Kevin Le no Medium

FullMetalFist
fonte
0

Para quem não quer desmarcar essa opção (usando cocoapods por exemplo), o problema pode ser com o certificado / chave.

O Xcode (ou qualquer ferramenta que você esteja usando, como uma ferramenta de linha de comando) precisa ser capaz de usar o certificado / chave do keychain. Para isso abra o Keychain, localize o certificado que deseja usar (geralmente no loginkeychain My Certificates), clique com o botão direito do mouse na chave, selecione Get Info, clique na Access Controlguia e adicione o aplicativo à lista.

Se isso não funcionar, tente desbloquear o chaveiro.

Outra opção pode ser selecionar Permitir que todos os aplicativos acessem este item em vez de aplicativos específicos e / ou mover o certificado / chave para as Systemchaves que são compartilhadas entre todas as contas de usuário naquele Mac.

Verifique também se o certificado não expirou.

rgkobashi
fonte
0

1) opção: Por favor, verifique executar o script apenas durante a instalação ...... é correto responder a esta pergunta

2) opção: atualização do pod, limpar dados derivados,

Sumit Rathore
fonte
0

No meu caso, um dos scripts (relacionado a SwiftGen) estava falhando durante a compilação.

Corrigi o problema removendo Podse atualizando-os novamente.

  1. Remova o pod problemático no Podsdiretório ou usepod deintegrate
  2. Instale / atualize os pods usando pod installoupod update

PS É possível que sua dependência seja global e não esteja em pods. Nesse caso, você também pode tentar reinstalar essa dependência.

Haseeb Iqbal
fonte
0

LEIA ISSO SE VOCÊ USA Crashlytics E ESTÁ TENDO ESSE PROBLEMA ...

Eu estava tendo o mesmo problema acima, Command /bin/sh failed with exit code 1mais especificamente[31merror: Could not fetch upload-symbols settings: An unknown error occurred fetching settings.[0m

A primeira solução (habilitar o script de execução apenas durante a instalação) me permitiu construir meu destino no simulador, mas não consegui arquivar minha construção.

Resolvi esse problema com o arquivo ativando o Crashlytics no Firebase. Ainda estou acostumado com o Fabric, em que o Crashlytics é ativado automaticamente. Depois de ativar o Crashlytics no console do firebase para o GoogleService-Info.plist correspondente, consegui arquivar sem esse erro.

NicholasTM
fonte
-1

Remova todos os pods e instale novamente.

Passos:

  1. comente todos os pods e execute pod install
  2. descomente todos os pods e execute pod install
MuhammadGad
fonte