IDEPreferLogStreaming=YES

sokyte
daily-monster
Published in
3 min readMar 31, 2024

안녕하세요, 소깡입니다.

지난주에 이어서 iOS Memory에 관한 글을 작성하려고 했으나 .. 조금 바빴던 이유로 이번주는 프로젝트를 진행하면서 마주했던 이슈와 해결 방법에 대해 작성하도록 하겠습니다.

Xcode를 15.3으로 업데이트하고 시뮬레이터 빌드를 했는데 아래와 같은 오류 문구가 나타났습니다.

Logging Error: Failed to initialize logging system. Log messages may be missing. If this issue persists, try setting IDEPreferLogStreaming=YES in the active scheme actions environment variables.

위 에러 문구의 경우, 아래 순서로 프로젝트 세팅을 바꿔주면 해결됩니다.

먼저 Xcode 상단의 Window 메뉴에서 Product -> Scheme -> Edit Scheme 을 클릭합니다.

그리고 Run 탭의 Arguments 로 이동 -> Arguments Passed On Launch 에서 + 눌러서 아래와 같은 코드 입력한 뒤 저장을 하고 close 버튼을 누릅니다.

그리고 빌드를 하면 위의 오류가 사라지고 시뮬레이터에 제대로 빌드가 되는 것을 확인할 수 있습니다.

위에서 수정한 값이 어떤 것을 의미할까요?
Xcode에서 scheme는 앱이 빌드, 실행(run), 테스트, 프로파일링 또는 보관(archive) 되는 방법을 정의하는 설정 모음입니다. 그리고 그 값들은 Debug(디버깅에 적합한 빌드) 또는 Release(배포에 적합한 빌드) 와 같이 앱의 구체적인 성분들을 의미합니다.

Xcode는 새로운 프로젝트를 시작할 때 기본 값의 scheme을 만들어 실행하는데 개발 및 release을 위한 다른 빌드 규정을 추가할 수 있습니다.

즉, 개발이나 release를 위한 Xcdoe scheme를 사용할 때 각각의 빌드 설정과 구성이 다른 두 개의 체계를 개별적으로 만들 수 있습니다,

개발이나 프로덕션을 위한 XCode scheme을 사용할 때, 각각의 빌드 설정과 구성이 다른 두 개의 체계를 개별적으로 만들 수 있다.

  • 예를 들어, 개발 및 release 환경에 대해 서로 다른 API endpoint, Bundle identifier 등을 세팅해야 합니다.
  • 따라서 새 빌드를 생성할 때마다 빌드 설정을 수동으로 변경할 필요가 없으므로 개발 빌드와 프로덕션 빌드 간의 전환 프로세스가 줄어들게 됩니다.

Xcode scheme을 사용하면 서로 다른 빌드 구성에 대해 서로 다른 번들 식별자와 앱 이름을 지정할 수 있습니다. 즉, 개발 및 release 환경에 대해 서로 다른 앱 ID와 브랜딩을 가지므로 이 둘을 더 쉽게 구별하고 빌드 전환에 걸쳐 일관성을 유지할 수 있습니다.

--

--