iOS 10: «[App] si nous sommes dans le vrai gestionnaire de pré-validation, nous ne pouvons pas ajouter de nouvelles clôtures en raison de la restriction de l'autorité de certification»


389

Je reçois parfois ce message dans les journaux de Xcode 8b3 lors de l'exécution de mon application, tout semble fonctionner, mais j'aimerais savoir d'où cela vient. Google n'a pas aidé du tout.


2
Appelez-vous la méthode déléguée UINavigationController: fun navigationController (navigationController: UINavigationController, willShowViewController viewController: UIViewController, animé: Bool) {}?
Norman G

2
willShowViewController n'est jamais appelé, non ...
swalkner

Je reçois la même chose. J'utilise SpriteKit et SceneKit et je les soupçonne!
Howard Lovatt

3
Quelqu'un a-t-il déposé un rapport de bogue? Je suis sur le point de.
David DelMonte

1
Veuillez jeter un œil à cette réponse. stackoverflow.com/a/39997761/6602495
Sneha

Réponses:


285

dans votre Xcode:

  • Cliquez sur le nom de votre schéma actif juste à côté du bouton Arrêter
  • Cliquez sur Edit Scheme ....
  • dans Run (Debug), sélectionnez l'onglet Arguments
  • dans les variables d'environnement, cliquez sur +
  • ajouter une variable: OS_ACTIVITY_MODE = désactiver

capture d'écran


4
Merci pour l'info supplémentaire
amergin

26
Sachez que je n'obtenais au hasard aucune sortie NSLog sur la console et que je l'ai à nouveau supprimé pour le corriger. Il s'agit davantage de la programmation «haut de gamme» à laquelle sont soumis les goons d'Apple.
amergin

37
Pour ce que cela vaut, j'obtiens ce message chaque fois qu'un changement d'orientation est effectué et que la variable d'environnement OS_ACTIVITY_MODE est désactivée.
user2698617

5
Remarque: en ajoutant cela, vous ne verrez pas non plus NSLogs dans la console.
niravdesai21

4
N'est-ce pas comme désactiver une alarme incendie?
ScottyBlades

191

Il provient de l' +[UIWindow _synchronizeDrawingAcrossProcessesOverPort:withPreCommitHandler:]API os_log. Il ne dépend pas des autres composants / frameworks que vous utilisez (uniquement à partir d'UIKit) - il se reproduit dans un projet d'application simple à vue unique en changeant l'orientation de l'interface.

Cette méthode se compose de 2 parties:

  1. ajouter le gestionnaire de pré-engagement passé à la liste des gestionnaires;
  2. faire un travail, cela dépend de l'état actuel de la machine à états finis.

Lorsque la deuxième partie échoue (ressemble à une transition interdite), elle imprime le message ci-dessus dans le journal des erreurs. Cependant, je pense que ce problème n'est pas fatal: il y a 2 cas d'assertion supplémentaires dans cette méthode, ce qui entraînera un crash dans le débogage.

Il semble que le radar soit le meilleur que nous puissions faire.


1
Pouvez-vous, s'il vous plaît, élaborer sur les outils que vous avez utilisés pour le débogage pour obtenir ce nom de méthode privée et sa structure?
Oleksandr Karaberov

9
@AlexanderKaraberov vous pouvez utiliser Hopper Disassembler pour trouver le texte d'avertissement dans le cadre binaire et les références à ce texte à partir de la méthode privée.
k06a

J'obtiens également cela lorsque le clavier défile et j'ai un contrôleur abonné pour répondre en redimensionnant ses vues.
yo.ian.g

82

Essayez de mettre ce qui suit dans environment variablesle schéma sousrun(debug)

OS_ACTIVITY_MODE = disable

Je l'ai obtenu dans le simulateur lors de la rotation de l'iPhone 7 à l'aide des éléments de menu matériel-> rotation. Cette variable d'environnement a fait disparaître le faux message.
George D Girton,

1
La réponse de @Foo ci-dessous est utile car elle comprend les détails du mode d'emploi.
Kevin Owens

1
Il n'imprime pas non plus le journal d'avertissement de contrainte
chirag shah

36
OP a demandé d'où venait le message. Dire simplement comment la faire taire n'est pas la bonne réponse.
iCaramba

6
La réponse "IOS_ACTIVITY_MODE = disable" désactive TOUT l'enregistrement! Fermez simplement la vue de journalisation si vous ne voulez pas voir le journal. Réponse vraiment ridicule, incroyable qu'elle ait autant de votes! Ne fait rien pour répondre au message réel. Nos applications qui utilisent fortement les données de base fonctionnent bien, ces messages et d'autres ont commencé à apparaître après l'une des dernières mises à jour de Xcode. Dommage qu'Apple ne puisse pas résoudre ce type de problèmes.
John

13

Nous pouvons le couper de cette façon (l'appareil et le simulateur ont besoin de valeurs différentes):

Ajoutez le nom OS_ACTIVITY_MODEet la valeur ${DEBUG_ACTIVITY_MODE}et vérifiez-les (dans Produit -> Schéma -> Modifier le schéma -> Exécuter -> Arguments -> Environnement).

entrez la description de l'image ici

Ajouter un paramètre défini par l'utilisateur DEBUG_ACTIVITY_MODE, puis ajouter Any iOS Simulator SDKpour Debuget définir la valeur de à disable(dans le projet -> Paramètres Build -> + -> Paramètres définis par l' utilisateur)

entrez la description de l'image ici


Cela n'a pas fonctionné pour moi: je vois également cela dans la console, même si j'ai déjà désactivé le mode d'activité de débogage comme suggéré ci-dessus.
Johan

-1

Pour résoudre ce problème, j'ai supprimé l'application de Simulator.

J'ai également couru Clean en premier.

Je ne pense pas que quelque chose lié à l'orientation l'ait déclenché. La plus grande chose qui a changé avant le début de ce symptôme est qu'un framework Swift a commencé à appeler NSLogdes threads de travail au lieu du thread principal.


1
Faire un nettoyage a bien fonctionné au début pour moi lorsque je l'ai exécuté dans le simulateur sans le faire tourner, mais dès que j'ai testé à nouveau avec une commande de rotation, il a signalé la même erreur.
cheznead le

J'utilise des mouvements de panoramique et n'obtiens cette erreur que lorsque je change d'orientation.
Jeremy Andrews

-8
OS_ACTIVITY_MODE = disable

Cela désactivera également la possibilité de déboguer dans des appareils réels (aucune sortie de console à partir d'appareils réels à partir de là).


6
Vous venez de copier une réponse antérieure (avec moins de détails)
Ashley Mills

2
en fait le TL; DR aide.
Juan Je García
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.