개요
종종 딥 링킹 등을 통해 외부 환경에서 앱을 실행하고, 그에 따른 결과를 디버깅해야 할 때가 있다.
그러나 기본적으로 XCode에서는 앱 빌드 → 실행 프로세스를 통해서만 XCode 디버깅 모드와 연결되며, 이후 어플리케이션 종료 시 해당 연결이 끊기게 된다.
즉, 일반적으로는 외부 환경에서 어플리케이션 실행 시 XCode가 이를 감지하지 못해, 콘솔 출력을 포함한 디버깅이 불가능하다.
어떻게 문제를 해결할 수 있을 지에 대해 알아보자.
해결책
1. Launch Option 변경


Launch Option을 확인하면, 처음에는 ‘Automatically’로 설정되어 있을 것이다. 이를 ‘Wait for the executable to be launched’로 변경한다.
해당 옵션으로 변경 시 CMD + R 이후 앱을 자동 실행하지 않고, 수동 실행할 때까지 XCode가 대기하게 된다.
2. print() 대신 logger.notice() 사용
Launch Option을 ‘Wait for the executable to be launched’로 변경 시, print()의 출력은 더 이상 콘솔이 아닌 stdout으로 빠져버리게 되므로 print()를 통한 콘솔 출력이 정상적으로 작동하지 않을 수 있다.
이에 대한 대안으로, OS 단에서의 로그를 감지하는 Logger를 사용해야 한다.
import os.log
// Logger 인스턴스 생성
let logger = Logger(subsystem: "com.kelin.vladimir", category: "Debug")
// print(connectionOptions) -> 출력 콘솔에 보이지 않음
// 아래와 같은 형태로 log 출력 -> 출력 콘솔에 정상적으로 표기됨
logger.debug("\(connectionOptions, privacy: .public)")
위 두 설정을 통해, 딥 링킹을 통해 어플리케이션을 실행시키는 등 외부 환경에서도 콘솔을 통한 디버깅이 가능할 것이다!
'앱 개발 > iOS' 카테고리의 다른 글
[iOS/Swift] Closure 정리 : 기초 문법(1/2) (0) | 2025.04.01 |
---|---|
[iOS] 원격 푸시 알림 정리: FCM, APNs (0) | 2025.03.25 |
[iOS] 생애주기 및 AppDelegate, SceneDelegate의 역할 (2) | 2025.03.10 |
[iOS] XCode 단축키 VSCode처럼 설정하기 (1) | 2025.02.22 |