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.
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:
adicionando manipulador de pré-confirmação passado à lista de manipuladores;
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.
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)
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).
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)
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.
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).
willShowViewController
nunca é chamado, não ...Respostas:
no seu Xcode:
fonte
É 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:
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.
fonte
Tente colocar o seguinte em
environment variables
para o esquema emrun(debug)
fonte
Podemos desativá-lo desta maneira (o dispositivo e o simulador precisam de valores diferentes):
Adicione o Nome
OS_ACTIVITY_MODE
e o Valor${DEBUG_ACTIVITY_MODE}
e verifique-o (em Produto -> Esquema -> Editar Esquema -> Executar -> Argumentos -> Ambiente).Adicionar configuração definida pelo usuário
DEBUG_ACTIVITY_MODE
, em seguida, adicioneAny iOS Simulator SDK
porDebug
e configurá-lo de valor paradisable
(em Projeto -> configurações de compilação -> + -> configuração definida pelo usuário)fonte
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
NSLog
threads de trabalho em vez de thread principal.fonte
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).
fonte