Xcode 11.4 - Projeto de arquivamento - Falha de segmentação 11

12

Acabei de atualizar o Xcode para 11.4 e, ao arquivar um projeto, ele mostra 'Segmentation Fault 11'

Este projeto seria arquivado no Xcode 11.3.1, mas agora não.

Mais alguém encontrou o mesmo problema?

insira a descrição da imagem aqui

Edição: 15 de abril de 2020

A Apple acaba de lançar o Xcode 11.4.1

Artur Marchetto
fonte
Dê uma olhada neste post: stackoverflow.com/a/42168123/2583679
Tom
3
@ Tom obrigado, no entanto, isso não o corrige .. tenho certeza de que é um bug da Apple
Artur Marchetto

Respostas:

11

Corri para o mesmo problema. O arquivamento usa a configuração de criação do Release, então eu analisei todas as configurações do compilador para descobrir quais das diferenças levam a essas falhas de segmentação.

No meu caso, o problema desaparece quando altero a configuração Ativar testabilidade para SIM para liberação .

Não, eu não tenho idéia de quais são as desvantagens disso na compilação de arquivo ou versão, ou mesmo por que essa configuração específica alivia o problema, mas no final do dia, tenho um projeto que levou um ano para chegar a esse estágio e estou muito interessada em levar isso para os beta testers internos, por isso vou enviá-lo através do vôo de teste e ver como vou.

Meu sentimento é que esse é definitivamente um bug da Apple, já que o compilador não deve ser um Seg Segault. O fato de ele ser compilado na configuração Debug dá suporte a isso. Meu projeto é tão grande que não sei como reproduzir isso para enviar um bug, mas vou ver se consigo obter alguma resposta nos Fóruns da Apple.

David Monagle
fonte
Deparei com o mesmo problema no Xcode 11.4.1, alterar essa configuração também funcionou para mim. Os documentos dizem que esse sinalizador tem a ver com tornar as interfaces privadas acessíveis, então talvez haja algo lá ... Quando essa configuração é ativada, o produto será criado com opções apropriadas para executar testes automatizados, como tornar as interfaces privadas acessíveis ao testes. Isso pode resultar na execução de testes mais lentos do que aconteceriam sem a testabilidade ativada.
keegan3d
5

Para mim, ajudou a encontrar o problema quando defino nas configurações de compilação SWIFT_COMPILATION_MODEpara wholemodule. Então, após a compilação, ocorreu um erro mais específico que levou à função de classe que causou o erro. Depois mudou de volta como estava.

Talvez isso ajude você também.

No meu caso, havia um operador ternário usado para o conjunto de parâmetros de entrada init. Parece que o Swift 5.2 não suporta mais isso.

// Leads to error with Xcode 11.4
init(value: UIColor = Constants.staticBoolean ? .white : .green)
Samps
fonte
2
Muito obrigado!! você fez meu dia!!
nomnom 6/04
3
Isso corrige meu erro de tempo de construção também. Um operador ternário no parâmetro padrão é o culpado. Espero que a Apple corrija o bug em breve.
Dao Xiang
2
Não estou reproduzindo com o ramo principal do Swift github.com/apple/swift/tree/master . Então, talvez já esteja consertado.
Cœur
1

No meu caso, tive um erro com o pod Eureka

Segmentation fault: 11 (in target 'Eureka' from project 'Pods')

No arquivo Pods, forneci a versão mais recente:

pod 'Eureka', '~> 5.2.1'

Defina também SWIFT_COMPILATION_MODEdefinido como wholemodule.

landonandrey
fonte
0

Eu mudei #imageLiteral(resourceName: "image_name")paraUIImage(imageLiteralResourceName: "image_name")

susemi99
fonte
0

Como outros respondedores, houve um problema do SwiftUI oculto nas mensagens de erro aqui (usando o Xcode 11.4). No meu caso, o uso de .embedInScrollView()estava causando o erro de compilação. Desativar essas chamadas corrigia. Como solução alternativa, eu coloquei .embedInScrollView()em um ViewModifier, assim:

public struct WrapInScrollView: ViewModifier {
    public func body(content: Content) -> some View {
        content
            .embedInScrollView()
    }

    public init() {}
}

Então eu uso esse modificador um pouco como a chamada original, assim:

.modifier(WrapInScrollView())

Isso significa que você ainda pode incorporar um scrollView, mas os erros do Seg 11 desaparecem.

Luke Smith
fonte
0

Infelizmente, a solução Ativar testabilidade não funcionou para mim.

Uma solução temporária (até que a Apple corrija o problema do compilador Xcode 11.4 Swift) é transformar o Nível de otimização em " Sem otimização " para versão, no destino que falhar ( SWIFT_OPTIMIZATION_LEVEL = "-Onone";). Ele funciona em nosso projeto, que é dividido em várias estruturas. Apenas um precisa ser definido como -Onone.

Mas a documentação da Apple pede para não enviar seu código com esse sinalizador . É para desenvolvimento, realiza otimizações mínimas e preserva todas as informações de depuração.

Acho que temos que esperar: '(

jc_35
fonte
-1

Eu estava recebendo essa exceção e os logs do arquivo morto me ajudaram a entender que ele estava dentro de um arquivo SwiftUI específico. Por processo de eliminação, verifica-se que eu havia deixado contentInsets()e alwaysBounceVertical()modificadores em um VStackque não fazia parte de um List:

VStack {
    // more stuff
}
.contentInsets(UIEdgeInsets(top: 20, left: 0, bottom: 0, right: 0))
.alwaysBounceVertical()

A remoção desses modificadores permitiu que o archive da versão fosse concluído com êxito.

Sam Mueller
fonte