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?

Respostas:


206

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

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


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á


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.


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.


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.


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


3

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


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 ...)


1

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


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.


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.


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.


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



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!


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


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.



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.


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.


-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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.