본문 바로가기

iOS

[iOS] Sentry SDK 프로젝트에 적용하기

1. 회사에서 error log를 받아보기 위한 sdk를 Sentry로 선정했다.

2. 기존에 fabric이 설치되어 있었지만, 서버단에 Sentry를 사용해 변경하게 됨.

3. 이것도 gitlab처럼 자사에서 서버를 구축하여 쓰는 방식으로 진행.

4. iOS의 경우 sentry 사이트 내의 Cocoa 카테고리를 살펴보면 된다.

5. 먼저 SDK를 설치해보자.

5-1. 3가지 방법이 있는데 본 프로젝트에서는 cocoapod이나 carthage를 쓰지않으므로

Swift Package Manager를 사용하여 설치했다. (이런건 뭔가 써드파티보다 좋을거 같은 느낌)

 

Swift Packages 창 열기

 

5-2. 처음 사용해보는 것이었지만 cocoapod보다 훨씬 사용하기 편리했다.

따로 설치할 것도 없이 git주소만 입력 후 다음다음하면 설치가 된다.

 

라이브러리 버전 선택창

 

5-3. 설치가 완료되면 Project Navigator에 아래처럼 추가가 되어있다.

 

 

6. 설치가 완성되었으면 프로젝트 시작지점에서 Sentry를 사용하겠다고 선언해준다.

6-1. 이 때, dsn을 설정 해줘야하는데, 이 주소값은 sentry 자기 계정에서 프로젝트 선택 후

Setting - SDK SETUP - Client Keys(DSN) 에서 생성해주면 된다.

 

 

7. 다음은 디버그 심볼을 등록하는 과정이다.

7-1. 설명에서 보면 자신의 프로젝트가 Bitcode를 포함하는지 여부에 따라 방법이 조금 다르다.

7-2. 본인의 프로젝트는 Bitcode를 포함하지 않으므로 Without Bitcode 방법대로 했다.

7-3. 이 또한 3가지의 방법이 있는데, 가장 쉬워보이는 방법을 선택.

7-4. 이를 진행하기 위해서 Auth token이란 것을 생성해야한다. 프로젝트 페이지를 돌아다녀보면 어디서 생성하는 것이 지금 token을 말하는건지 헷갈리게 하는데, 

 

API keys를 선택하자!

 

7-5. 그럼 바로 Auth token을 생성하는 페이지가 뜬다. (도대체 왜 메뉴 이름을 다르게 했는지 이해할 수가 없음.. 한참 찾음)

auth token을 생성 후 복사해놓자.

7-6. 가이드를 보면 Xcode TARGETS - Build Phases - Run Script에서 Shell Script를 아래와 같이 작성하라고 한다.

if which sentry-cli >/dev/null; then
export SENTRY_ORG=your-org
export SENTRY_PROJECT=your-project
export SENTRY_AUTH_TOKEN=YOUR_AUTH_TOKEN
ERROR=$(sentry-cli upload-dif "$DWARF_DSYM_FOLDER_PATH" 2>&1 >/dev/null)
if [ ! $? -eq 0 ]; then
echo "warning: sentry-cli - $ERROR"
fi
else
echo "warning: sentry-cli not installed, download from https://github.com/getsentry/sentry-cli/releases"
fi

7-7. SENTRY_ORG, SENTRY_PROJECT, SENTRY_AUTH_TOKEN을 본인의 프로젝트에 맞게 입력 해줘야한다.

7-8. SENTRY_AUTH_TOKEN는 7-5에서 생성한 값을 넣어준다.

7-9. 나머지 두 값은 자신의 프로젝트에 들어가면 첫번째로 뜨는 Issue 항목 화면을 통해 쉽게 알 수 있다.

 

Installation Instructions를 눌러주자!

 

7-10. 보라색 버튼을 눌러 들어가면 [설치~스크립트 작성 단계]가 간단하게 나와있는데, 여기서 스크립트 내용을 참고하자.

(org는 sentry페이지에서 좌측상단에 있는 organization의 이름인듯 하고, project name은 sentry에서 생성한 프로젝트명을 넣어주면 된다.)

7-11. 추가적으로 Xcode10+ 일때 필요한 설정과 (Run Script - Input Files 경로 추가)

자사 서버를 사용할때 사용되는 url (private 도메인)을 추가하면 된다.

 

8. 여기까지 하면 Xcode 프로젝트 빌드 시 스크립트 파일을 전송한다는 Mac의 노티가 떴다가 전송을 마친다는 노티가 뜸.

(빌드 때마다 전송하는걸 방지하기 위해 작성한 스크립트 바로 아래에 있는 Run script only when installing을 체크해주자)

9. 연동 테스트

9-1. crash test 코드를 작성하여 앱을 빌드 후 강제 종료시켜 보았다.

9-2. sentry 프로젝트의 Issue 페이지에서 Exception 에러가 보고된걸 확인할 수 있다.

 

 

 

(참고사항)

+ 위 절차대로 했을 때 바로 이슈가 보고되지 않았음. (시간 지나고나서 됨 - 이유 아직 모름)

+ 이리저리 삽질을 했기때문에 빠진게 있을 수 있음. (가장 의심되는건 sentry-cli 설치?)

+ 아직 딮하게 써보지 않았음.

'iOS' 카테고리의 다른 글

[iOS] Rocket Chat [1보]  (0) 2020.03.17
WKWebView + UIKeyboard 문제  (0) 2019.02.19