Device Logs

요약
프로덕션에도 로그를 그대로 출력할 경우..-_- - os_log를 써라
Tags
Logs

Device Logs

  • 디버깅 편의를 위해 input data를 log에 남기곤 한다.
  • 앱 출시 전 logging 기능의 삭제를 까먹은 경우 발생
  • 디바이스 로그 쉽게 덤프 가능
    • 민감 데이터를 log에 찍을 경우 그대로 정보 누출.

로그 확인 방법

  • 디바이스 mac에 연결 -> Xcode 실행 -> Devices and Simulators
  • Device 선택 후 Open Console 클릭
notion image

예시)

notion image
 
민감한 정보가 그대로 로그에 나옴
민감한 정보가 그대로 로그에 나옴

대안)

  • NSLog는 콘솔 뿐만 아니라 ASL에도 기록 남김
    • Printf + syslog 라고 보면 됨.

대안1) 앱 배포 전에 NSLog 삭제

대안2) Debug 시에만 동작하도록 #ifelse 매크로

대안3) NSLog 쓰지 않고 breakpoint 활용 ← 불편해서 어떻게 하나 -_-

대안4) Ios10 이후 도입된 통합 로깅 API인 os_log 사용

💡
os_log 쓰는게 사실상 베스트
  • 기본적으로 문자열은 비공개
  • 문자열 출력 원할 시 고의적으로 명시 해야함.
    • /%{public}@