No Xcode, como suprimir todos os avisos em arquivos de origem específicos?

137

No meu aplicativo, uso código de terceiros que aciona alguns avisos. Eu as revisei e elas podem ser ignoradas com segurança.

Agora eu quero "marcar" um arquivo de alguma forma, para que o Xcode não mostre nenhum aviso para o código nesse arquivo.

Como devo fazer isso?

Bobrovsky
fonte

Respostas:

277

Selecione seu alvo e mostre Fases de Construção. Em seguida, insira o nome do arquivo na caixa de pesquisa e você deverá vê-lo listado na fase Compilar fontes. Clique duas vezes na coluna Sinalizadores do compilador desse arquivo e insira -wpara desativar todos os avisos desse arquivo.

Jon Reid
fonte
9
Hmm, eu esperava -wdesligar todos os avisos, mas talvez o novo compilador não preste atenção nisso. Nesse caso, desative os avisos individuais. Encontre o aviso em questão em Configurações da compilação e mostre Ajuda rápida na visualização Utilitários. Você deve ver uma descrição, com uma -Wname-of-warningsintaxe. Anexe "não" ao nome e especifique-o em Sinalizadores do Compilador. Exemplo: para desativar -Wunused-parameterespecificar-Wno-unused-parameter
Jon Reid
14
Acontece que tudo isso depende do compilador. Quero dizer, em um projeto que usa o compilador LLVM GCC -wfaz o truque e em outro projeto que usa o compilador GCC simples -Wno-name-of-warningé o único caminho a percorrer.
Bobrovsky
6
Obrigado pela dica, também funcionou para mim ( -we LLVM). Realmente útil quando você inclui arquivos de terceiros que não deseja modificar.
user826955
1
@Zammbi Como o código é gerado automaticamente, corrija-o para gerar código livre de avisos. Se você não conseguir fazer isso, faça o patch automático do projeto Xcode para definir o sinalizador do compilador.
Jon Reid
11
Não funciona com o Swift 2 usando o Xcode 7.0 e o Apple LLVM 7.0
King-Wizard
6

Selecione Projeto no navegador esquerdo e selecione destino, vá para a fase de construção e Coloque -w na fase de construção do arquivo de destino. Ele ocultará todos os avisos do compilador insira a descrição da imagem aqui

Spydy
fonte
17
Não funciona com o Swift 2 usando o Xcode 7.0 e o Apple LLVM 7.0
King-Wizard
2
passar sinalizadores de compilador clang para um compilador estrangeiro não funciona. surpresa quelle ... pesquise no Google o sinalizador de aviso do compilador rápido e adicione-o.
jheriko
4

Isso funciona para o Xcode 10.2+ e o Swift 5

Correção manual:

Adicione -w -Xanalyzer -analyzer-disable-all-checksao arquivo problemático em Xcode> Projeto> Destinos> Fontes de compilação> Clique duas vezes no arquivo em que deseja desativar os avisos.

Correção de Cocoapods:

Se você estiver tentando suprimir avisos de um pod problemático, poderá suprimir automaticamente todos os avisos da dependência com a inhibit_warningssinalização em seu podfile :

pod 'Kingfisher', '~> 4.6', :inhibit_warnings => true

insira a descrição da imagem aqui

Cal S
fonte
A correção de cocoapods funcionou um prazer, obrigado!
adougies 24/06