У вашому коді нічого поганого. Це внутрішнє повідомлення для журналу Apple, і вам слід подати радіолокацію.
Є два підказки, які показують, що це, мабуть , код Apple:
Підкреслення, що веде за назвою методу, _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
є умовою, що вказує на те, що метод приватний / внутрішній для класу, в якому він оголошений. (Див. Цей коментар .)
Доцільно здогадуватися, що два FBSSceneSnapshotAction
буквені префікси - це скорочення для FrontBoard, який, за словами Рене Річі в " Списку побажань iOS 9: Гостьовий режим", є частиною всього сімейства програмного забезпечення, пов'язаного із запуском програм:
Завдяки iOS 8 Apple відновила свого системного менеджера SpringBoard на кілька менших, більш зосереджених компонентів. Окрім BackBoard, який вже був відкручений для обробки фонових завдань, вони додали Frontboard для завдань переднього плану. Вони також додали PreBoard для обробки екрана блокування в захищених, зашифрованих умовах. [...]
Я поняття не маю, для чого призначений BS
префікс BSSettings
, але аналіз цього повідомлення журналу вказував би на те, що ви нічого не зробили, і вам слід подати радар з кроками, щоб відтворити повідомлення журналу.
Якщо ви хочете спробувати схопити слід стека, ви можете реалізувати тут пов’язану категорію . Дехто стверджує, що перекриття приватного API - погана ідея, але в цьому випадку тимчасова ін'єкція, щоб схопити слід стека, не може бути занадто шкідливою.
Редагувати:
Але ми все ще хочемо знати, що це за дія. Тож я поставив точку перерви -[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion]
і почав роздруковувати значення регістрів і знайшов клас, FBSceneImpl
який називався, який мав цілу купу інформації про мою програму:
Ми можемо з'ясувати, який приватний метод викликається наступним (зберігається у лічильнику програми, реєструвати 15.)
Я спробував знайти необроблену FBSceneSnapshotAction
посилання в журналі, але без кісток. Потім я підкласифікував UIA-додаток та переобирав _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
. Тепер мені вдалося потрапити на акцію безпосередньо, але все ж ми не знаємо, що це.
Потім я знову подивився на FBSceneSnapshotAction. Виявляється, він має суперклас, який називається BSAction
.
Тоді я написав інструмент, схожий на RuntimeBrowser, і роздивився всі підкласи BSAction. Виявляється, їх досить список:
Два назви методів, які ми маємо (один із журналу та один із лічильника програми на пристроях), вказують, що ці дії використовуються під кришкою для проходження дій по всій системі.
Деякі дії, ймовірно, надсилаються до зворотного виклику делегата програми, а інші обробляються внутрішньо.
Тут відбувається те, що є дія, яка не була виконана правильно, і система це помічає. Ми, як видно, не повинні були це бачити.