Estou desenvolvendo um aplicativo em Xcode.
Quando tento construir, surge este erro:
ld: in /Users/theodore/Library/Developer/Xcode/DerivedData/Tower-bkpdifuqssebjdgurzmtirbxejnn/Build/Intermediates/Tower.build/Debug/Tower.build/Objects-normal/x86_64/TWRAppDelegate.o, file too small for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Alguém sabe o que está errado?
TWRAppDelegate.o
arquivo corrompido ou com tamanho zero.Respostas:
Roubando a resposta de @martin-baulig:
Tente uma reconstrução / limpeza completa. É possível que a compilação anterior tenha sido anormalmente abortada, deixando o arquivo TWRAppDelegate.o corrompido ou com tamanho zero.
fonte
Eu geralmente adiciono um espaço (pode ser qualquer caractere) ao arquivo em questão, removo-o e depois salvo. Mais fácil e rápido do que uma construção limpa.
fonte
Para corrigir automaticamente esse problema
Build Script Phase
pode ser adicionado. Vá para Xcode -> Seu Projeto -> Seu Destino -> Fases de Construção -> + -> Nova Fase de Execução de ScriptRenomeie-o para
Xcode Link Fix
e mova-o acima daCompile Sources
fase. Cole isso no corpo do script:# Legacy build system legacy_dir=`dirname "${LD_DEPENDENCY_INFO_FILE}"` if [ -d "${legacy_dir}" ]; then find "${legacy_dir}" -size 0 | while read -d $'\n' file; do rm "$file" done fi # New build system if [ -d "${OBJECT_FILE_DIR_normal}" ]; then find "${OBJECT_FILE_DIR_normal}" -size 0 | while read -d $'\n' file; do rm "$file" done fi
Este script verifica se há arquivos de objeto com tamanho zero e os remove para que quando a compilação for feita na próxima etapa, ele terá sucesso.
Você precisa adicionar este script para cada destino de aplicativo, se tiver muitos.
Este script leva cerca de 0,1 segundo para ser executado e evita a reconstrução completa do projeto.
fonte
rm -rf /Users/hostname/Library/Developer/Xcode/DerivedData
fonte
apenas remova este arquivo executando cmd em seu aplicativo de terminal:
fonte
Maneira rápida de corrigir o erro sem limpeza completa do cache:
TWRAppDelegate
)fonte
Uma vez que construir um projeto limpo pode demorar muito, existe um caminho mais curto para aqueles que têm acesso ao arquivo que está corrompido no cache:
Versão completa para que você não tenha problemas para encontrar o arquivo:
fonte
Você pode simplesmente deletar o arquivo TWRAppDelegate.o e continuar sua construção. Copie o caminho completo mencionado na mensagem de erro e cole-o atrás de um comando 'rm' em seu terminal. Não há necessidade de limpar / reconstruir, excluir dados derivados, adicionar / remover o arquivo do projeto, etc.
fonte
Etapa 1. Vá para: Projeto> Configurações de compilação> Caminhos de pesquisa
Etapa 2. Defina "Sempre pesquisar caminhos de usuário" como Sim
Etapa 3. Construir o projeto (você receberá um aviso, mas o projeto será construído.)
Etapa 4. Defina "Sempre Pesquisar caminhos do usuário" como Não e crie novamente para eliminar o aviso
fonte
Uma reconstrução limpa não funcionou no meu caso, então explico como resolvi o problema:
- Removida a referência ao arquivo (não exclua o arquivo)
- Adicione o arquivo ao projeto novamente e execute
fonte