iOS 10: “[App] se estivermos no manipulador real de pré-confirmação, não podemos adicionar novas cercas devido à restrição da CA”

389

Às vezes, recebo essa mensagem nos logs do Xcode 8b3 ao executar meu aplicativo, tudo parece funcionar, mas eu gostaria de saber de onde isso vem. O Google não ajudou em nada.

swalkner
fonte
2
Você está chamando o método delegado UINavigationController: divertido navigationController (navigationController: UINavigationController, willShowViewController viewController: UIViewController, animado: Bool) {}?
Norman G
2
willShowViewController nunca é chamado, não ...
swalkner
Eu recebo o mesmo. Estou usando SpriteKit e SceneKit e suspeito deles!
Howard Lovatt
3
Alguém registrou um relatório de bug? Eu estou prestes a.
David DelMonte
11
Por favor, dê uma olhada nesta resposta. Você está em
Página Inicial>

Respostas:

285

no seu Xcode:

  • Clique no nome do seu esquema ativo ao lado do botão Parar
  • Clique em Editar esquema ....
  • em Executar (Depurar), selecione a guia Argumentos
  • em Variáveis ​​de ambiente, clique em +
  • adicione variável: OS_ACTIVITY_MODE = desativar

captura de tela

Ed.
fonte
4
Obrigado pelas informações adicionais
amergin 27/10/16
26
Esteja ciente de que eu não estava obtendo nenhuma saída NSLog para o console e a removi novamente para corrigi-la. Essa é mais a programação de 'classe alta' a que estamos sujeitos pelos capangas da apple.
Amergin
37
Pelo que vale, recebo essa mensagem sempre que uma alteração de orientação é feita e eu tenho a variável de ambiente OS_ACTIVITY_MODE desativada.
user2698617
5
Nota: Adicionando isso, você também não verá o NSLogs no console.
precisa saber é o seguinte
4
Não é como desligar um alarme de incêndio?
precisa saber é o seguinte
191

É proveniente da +[UIWindow _synchronizeDrawingAcrossProcessesOverPort:withPreCommitHandler:]API os_log. Não depende de outros componentes / estruturas que você está usando (apenas no UIKit) - ele é reproduzido em um projeto de aplicativo de visualização única e limpo, ao alterar a orientação da interface.

Este método consiste em 2 partes:

  1. adicionando manipulador de pré-confirmação passado à lista de manipuladores;
  2. faça algum trabalho, isso depende do estado atual da máquina de estado finito.

Quando a segunda parte falha (parece uma transição proibida), ela imprime a mensagem acima no log de erros. No entanto, acho que esse problema não é fatal: existem 2 casos adicionais de afirmação nesse método, que levarão a uma falha na depuração.

Parece que o radar é o melhor que podemos fazer.

Roman Ermolov
fonte
11
Você pode, por favor, elaborar as ferramentas usadas para depuração para obter esse nome de método privado e sua estrutura?
Oleksandr Karaberov 19/10/19
9
@AlexanderKaraberov, você pode usar o Hopper Disassembler para encontrar o texto de aviso no binário da estrutura e as referências a este texto a partir do método privado.
K06a
Eu também recebo isso quando o teclado rola e eu tenho um controlador inscrito para responder, redimensionando suas visualizações.
yo.ian.g
82

Tente colocar o seguinte em environment variablespara o esquema emrun(debug)

OS_ACTIVITY_MODE = disable
Nick Peachey
fonte
Consegui isso no simulador ao girar o iPhone 7 usando os itens de menu hardware-> rodar. Essa variável de ambiente fez a mensagem falsa desaparecer.
George D Girton
11
A resposta do @Foo abaixo é útil porque inclui os detalhes de instruções.
Kevin Owens
11
Também não imprimir o registro de aviso de restrição
xá chirag
36
O OP perguntou de onde vem a mensagem. Apenas dizer como silenciar não é a resposta certa.
ICaramba
6
A resposta "IOS_ACTIVITY_MODE = desativar" desativa TODOS os registros! Apenas feche a exibição de log se não quiser vê-lo. Resposta realmente ridícula, incrível que tenha tantos votos! Não faz nada para endereçar a mensagem real. Nossos aplicativos que usam muito os dados principais funcionam bem, essas mensagens e outras começaram a aparecer após uma das últimas atualizações do Xcode. Triste que a Apple não consiga resolver esse tipo de problema.
John John
13

Podemos desativá-lo desta maneira (o dispositivo e o simulador precisam de valores diferentes):

Adicione o Nome OS_ACTIVITY_MODEe o Valor ${DEBUG_ACTIVITY_MODE}e verifique-o (em Produto -> Esquema -> Editar Esquema -> Executar -> Argumentos -> Ambiente).

insira a descrição da imagem aqui

Adicionar configuração definida pelo usuário DEBUG_ACTIVITY_MODE, em seguida, adicione Any iOS Simulator SDKpor Debuge configurá-lo de valor para disable(em Projeto -> configurações de compilação -> + -> configuração definida pelo usuário)

insira a descrição da imagem aqui

Igor
fonte
Não funcionou para mim: também estou vendo isso no console, apesar de já ter desativado o modo de atividade de depuração, conforme sugerido acima.
Johan
-1

Para corrigir, excluí o aplicativo do Simulator.

Também executei o Clean primeiro.

Não acho que nada relacionado à orientação tenha desencadeado isso. A maior coisa que mudou antes do início desse sintoma é que uma estrutura Swift começou a chamar NSLogthreads de trabalho em vez de thread principal.

Jeff
fonte
11
Fazer uma limpeza funcionou bem no começo para mim quando o executei no simulador sem girá-lo, mas, logo que testei novamente com um comando de rotação, ele relatou o mesmo erro.
cheznead
Estou usando gestos de panorâmica e só recebo esse erro ao alterar a orientação.
Jeremy Andrews
-8
OS_ACTIVITY_MODE = disable

Isso também desativará a capacidade de depurar em dispositivos reais (nenhuma saída do console a partir de dispositivos reais a partir de então).

kindaian
fonte
6
Você acabou de copiar uma resposta mais cedo (com menos detalhe)
Ashley Mills
2
na verdade, o TL; DR ajuda.
Juan Je García