Sentry 통합
Sentry 통합
AIT SDK는 Sentry Unity SDK와 자동 통합을 지원해요. Sentry가 설치되어 있으면 크래시 및 에러 이벤트에 AIT 플랫폼 컨텍스트(기기 ID, 환경, 배포 ID 등)를 자동으로 주입해요.
제로코스트 opt-in: Sentry SDK가 설치되지 않은 프로젝트에서는 관련 코드가 아예 컴파일되지 않아요. 런타임 오버헤드도, 컴파일 에러도 없어요.
설치
방법 1: Unity 메뉴 (권장)
Unity Editor에서
AIT>Install Sentry SDK를 클릭해요.Package Manager가 자동으로 Sentry Unity SDK 4.1.0을 설치해요.
방법 2: manifest.json 직접 추가
Packages/manifest.json에 직접 추가할 수 있어요:
{
"dependencies": {
"io.sentry.unity": "https://github.com/getsentry/unity.git#4.1.0"
}
}지원 버전
최소:
io.sentry.unity4.0.0권장: 4.1.0 이상
설정
Sentry SDK 자체 설정만 필요해요. AIT 통합은 별도 설정 없이 자동으로 동작해요.
DSN 설정
Unity Editor에서 Tools > Sentry를 열고 DSN을 입력해요.
DSN은 Sentry 프로젝트의 Settings > Client Keys (DSN)에서 확인할 수 있어요. 설정값은 Assets/Resources/Sentry/SentryOptions.asset에 저장돼요.
자동 주입되는 AIT 컨텍스트
Sentry SDK가 활성 상태이면, AIT SDK가 다음 컨텍스트를 자동으로 주입해요.
Tags
ait.sdk_version
AIT SDK 버전
1.11.2
ait.unity_version
Unity 엔진 버전
6000.3.3f1
ait.device_id
기기 고유 ID
abc123...
ait.platform_os
플랫폼 OS
iOS, Android
ait.locale
기기 로캘
ko-KR
ait.toss_app_version
토스 앱 버전
5.80.0
ait.environment
운영 환경
production, staging
ait.deployment_id
배포 ID
deploy-xyz
ait.current_scene
현재 Unity 씬
MainMenu
User
User.Id
AIT 기기 ID (AIT.GetDeviceId())
Context Object
apps_in_toss 이름의 커스텀 컨텍스트 오브젝트가 추가돼요:
Breadcrumbs
Unity 씬이 로드될 때마다 breadcrumb가 자동 기록돼요:
message
Scene loaded: MainMenu
category
scene
level
Info
data
scene_name, scene_build_index, load_mode
CI/CD 환경변수
Sentry SDK 핵심 (빌드타임 자동 주입)
AIT SDK는 WebGL 빌드 시 SENTRY_DSN 환경변수에서 SentryOptions.asset을 자동 생성해요.
SENTRY_DSN
DSN → SentryOptions.asset 자동 생성
https://key@sentry.io/123
SENTRY_ENVIRONMENT
환경 식별자 (자동 주입)
production, staging
SENTRY_RELEASE
릴리즈 버전 (자동 주입)
my-app@1.0.0
sentry-cli (빌드 타임)
디버그 심볼 및 소스맵 업로드 시 사용해요. CI/CD 파이프라인에서 설정해 주세요.
SENTRY_AUTH_TOKEN
API 인증 토큰
sntrys_...
SENTRY_ORG
조직 slug
my-org
SENTRY_PROJECT
프로젝트 slug
unity-game
CI/CD 파이프라인 예시
동작 원리
조건부 컴파일
Sentry 통합은 Unity의 versionDefines를 활용한 조건부 컴파일로 구현돼요:
io.sentry.unity4.0.0 이상이 설치되면AIT_SENTRY_AVAILABLEdefine이 자동 활성화돼요.AppsInToss.Sentry어셈블리의defineConstraints에AIT_SENTRY_AVAILABLE이 설정돼요.Sentry SDK 미설치 시 어셈블리 전체가 컴파일에서 제외돼요.
IL2CPP 스트리핑 보호
WebGL(IL2CPP) 빌드에서 코드가 제거되지 않도록 3중 보호가 적용돼요:
[assembly: AlwaysLinkAssembly]
어셈블리 자체가 링커에서 제거되는 것을 방지
[Preserve]
개별 타입/메서드 보존
link.xml
어셈블리 내 모든 타입 보존 선언
Unity 6+ IL2CPP 스택트레이스
Unity 6 이상에서는 WebGL 빌드 시 IL2CPP 스택트레이스에 C# 파일/라인 정보를 자동으로 활성화해요. 이를 통해 Sentry에서 크래시 위치를 정확한 소스 코드 라인으로 확인할 수 있어요.
트러블슈팅
마지막 업데이트
도움이 되었나요?