Version: Unity 6.0 (6000.0)
언어 : 한국어
iOS 기기에서 성능 데이터 수집
iOS 기기 문제 해결

iOS의 관리되는 스택 추적

관리되는 코드에서 예외가 발생하면 예외의 스택 추적을 통해 예외의 원인을 파악할 수 있습니다. 하지만 일부 iOS에서 관리되는 스택 추적이 예상대로 표시되지 않을 수 있습니다. 스택 추적도 Xcode 빌드 설정에 따라 달라집니다.

디버그 빌드

디버그 빌드 설정을 iOS에서 사용하는 경우 IL2CPP는 신뢰할 수 있는 관리 스택 추적을 보고하고 관리되는 메서드를 호출 스택에 각각 포함해야 합니다. 스택 추적에는 원본 C# 소스 코드의 줄 번호가 포함되어 있지 않습니다.

릴리스 빌드

릴리스 빌드 설정을 사용하는 경우 IL2CPP는 하나 이상의 관리되는 메서드가 누락된 호출 스택을 생성할 수 있습니다. 이는 C++ 컴파일러가 누락된 메서드를 인라인화했기 때문입니다. 메서드 인라이닝은 일반적으로 런타임 시 성능에 도움이 되지만, 호출 스택을 파악하기 어려울 수 있습니다. IL2CPP는 항상 호출 스택에 하나 이상의 관리되는 메서드를 제공합니다. 이는 예외가 발생한 메서드입니다. 인라이닝되지 않은 경우 다른 메서드도 포함됩니다.

예외를 로컬에서 재현할 수 있는 경우 Xcode를 사용하여 인라인 메서드를 찾습니다. 릴리스 설정을 사용하여 Xcode에서 애플리케이션을 실행하고 예외 브레이크 포인트를 설정합니다. Xcode의 네이티브 호출 스택 뷰는 실제로 존재하는 메서드와 인라이닝된 메서드를 나타냅니다.

소스 코드 줄 번호

IL2CPP 호출 스택에는 디버그 또는 릴리스 설정에 기본적으로 소스 코드 줄 번호가 포함되어 있지 않습니다. 다음 단계를 통해 소스 코드 줄 번호를 활성화할 수 있습니다.

  1. Edit > Project Settings > Player > iOS settings > Other Settings로 이동합니다.
  2. Configuration 섹션에서 IL2CPP Stacktrace InformationMethod Name, File Name, and Line Number로 설정합니다.

참고: 이 옵션을 사용하면 빌드된 프로그램의 빌드 시간과 최종 크기를 모두 늘릴 수 있습니다.

iOS 기기에서 성능 데이터 수집
iOS 기기 문제 해결