programing

오류: iOS9에서 _실행되지 않는 특정 작업 처리

i4 2023. 4. 26. 22:57
반응형

오류: iOS9에서 _실행되지 않는 특정 작업 처리

iOS 9에서 다음 오류가 발생합니다.

    -[UIApplication_handleNonLaunchSpecificActions:
      forScene:
      withTransitionContext:
      completion:] unhandled action -> 
      <FBSSceneSnapshotAction: 0x150b2aef0> 
       {
            handler          = remote;
            info = <BSSettings: 0x15333f650> 
            {
                (1) = 5;
            };
        }

다른 사람이 이 오류 또는 의미를 발견했습니까?뭐가 문제야?

당신의 코드에는 아무 문제가 없습니다.이것은 Apple 내부의 기록 메시지이며, 당신은 그것에 대해 레이더를 제출해야 합니다.

이것이 아마도 Apple의 코드임을 보여주는 두 가지 힌트가 있습니다.

  1. 메서드 이름 앞에 있는 밑줄_handleNonLaunchSpecificActions:forScene:withTransitionContext:completion메서드가 선언된 클래스에 대해 비공개/내부임을 나타내는 규칙입니다. (이 설명을 참조하십시오.

  2. 의 두 글자 접두사는 다음과 같이 추측할 수 있습니다.FBSSceneSnapshotAction는 "iOS 9 wish-list:"의 Renee Ritchie에 따르면 FrontBoard의 약자입니다. 게스트 모드"는 앱 실행과 관련된 전체 소프트웨어 제품군의 일부입니다.

iOS 8을 사용하여 Apple은 시스템 관리자인 SpringBoard를 몇 가지 더 작고 집중적인 구성 요소로 리팩터링했습니다.백그라운드 작업을 처리하기 위해 이미 분사된 BackBoard 외에도 포그라운드 작업을 위해 Frontboard를 추가했습니다.또한 암호화된 보안 조건에서 잠금 화면을 처리하기 위해 PreBoard를 추가했습니다. [...]

나는 그것이 무엇인지 전혀 모릅니다.BS의 접두사.BSSettings에 대한 것입니다. 하지만 이 로그 메시지를 분석하면 사용자가 수행한 작업이 아닌 것으로 나타나고 로그 메시지를 재생성하기 위한 단계가 포함된 레이더를 제출해야 합니다.

스택 추적을 가져오려면 여기에 연결된 범주를 구현할 수 있습니다.일부에서는 개인 API를 재정의하는 것이 좋지 않다고 주장하지만, 이 경우 스택 추적을 확보하기 위한 일시적인 주입은 그리 해로울 수 없습니다.

편집:

그러나 우리는 여전히 이 동작이 무엇인지 알고 싶습니다.그래서 저는 브레이크포인트를 달았습니다.-[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion]그리고 레지스터 값을 인쇄하기 시작했고 클래스를 찾았습니다.FBSceneImpl내 지원서에 대한 많은 정보를 가지고 있었습니다.

장면

우리는 다음에 어떤 개인적인 방법이 호출되는지 알 수 있습니다(프로그램 카운터, 레지스터 15에 저장됨).

프로그램 카운터

처리되지 않은 사람들을 찾으려고 노력했습니다.FBSceneSnapshotAction로그에 참조되었지만 주사위는 없습니다.그런 다음 UIA 애플리케이션을 하위 분류하고 오버로드했습니다._handleNonLaunchSpecificActions:forScene:withTransitionContext:completion이제 저는 그 행동에 직접 도달할 수 있었지만, 여전히, 우리는 그것이 무엇인지 모릅니다.

그리고 나서, 저는 FBScene Snapshot Action을 다시 보았습니다.알고보니 슈퍼클래스가 있습니다.BSAction.

그런 다음 RuntimeBrowser와 유사한 도구를 작성하고 BAction의 모든 하위 클래스를 검색했습니다.그들의 목록은 꽤 많은 것으로 밝혀졌습니다.

작업 목록

우리가 가지고 있는 두 가지 메소드 이름(하나는 로그에서, 하나는 장치의 프로그램 카운터에서)은 이러한 동작이 시스템 주변의 동작을 전달하기 위해 후드 아래에서 사용된다는 것을 나타냅니다.

일부 작업은 앱 대리자의 콜백으로 전송되고 다른 작업은 내부적으로 처리됩니다.

여기서 발생하는 것은 올바르게 처리되지 않은 작업이 있고 시스템이 이를 기록하고 있다는 것입니다.우리는 그것을 보지 말았어야 했어요, 분명히.

언급URL : https://stackoverflow.com/questions/32344082/error-handlenonlaunchspecificactions-in-ios9

반응형