최적화하기
[iOS - swift] 빌드 로그 json형태로 뽑아보기 (xcresult, xcactivitylog, XCLogParser)
jake-kim
2025. 12. 3. 01:42
xcactivitylog
- Xcode가 빌드/테스트/아카이브할 때 생성되는 빌드 로그의 원본 파일
(= Xcode UI에서 보는 Build Log 화면(⌘ + 9)의 실제 데이터 파일)

- 바이너리 파일은 아래 경로에 위치
- ~/Library/Developer/Xcode/DerivedData/<Project>/Logs/Build/
- 얻어내는 법
- Xcode > Build > 오른쪽마우스 > Show in Finder 클릭

- Show in Finder 클릭 시 Logs/Launch에 들어가게됨

- 여기서 Logs/Launch가 아닌, Logs/Build 경로에 가야하므로 Logs경로로 이동한 다음 Build 폴더로 이동
- 마침내 UUID.xcactivitylog 파일 획득이 가능

- 들어있는 정보들
- 전체 빌드 타임라인
- 각 빌드 단계별 duration
- 컴파일러가 어떤 파일을 빌드했는지
- Warning, Error 메시지
- SwiftCompile, Link, Run Script, Previews 등 모든 빌드 스텝
- Bitcode/LLVM 단계
- 인덱싱(indexing) 관련 시간
- Test 실행 로그
- 증분 빌드 캐시 사용 여부
xcactivitylog 파일 json 형태로 뽑아보기
- XCLogParser를 사용하여 json으로 뽑기가 가능
brew install xclogparser
- xcactivity 파일의 경로를 얻어오기위해 오른쪽 클릭 > "정보 가져오기" 클릭

- 위치 > path를 복사
- path를 복사한 다음 파일 이름도 복사
`/Users/jake/Library/Developer/Xcode/DerivedData/Performance1-frzqzmwaccvbjdfswawhmgkwahke/Logs/Build/51597595-B89A-4E8E-BC1C-842C12F78CD8.xcactivitylog`
- path를 복사한 다음 파일 이름도 복사

- 아래 명령어를 통해 json형태로 추출 가능
xclogparser parse --project Your.xcactivitylog --output output.json
ex)
xclogparser dump --file /Users/jake/Library/Developer/Xcode/DerivedData/Performance1-frzqzmwaccvbjdfswawhmgkwahke/Logs/Build/51597595-B89A-4E8E-BC1C-842C12F78CD8.xcactivitylog --output activity.json
- 생성된 activity.json을 열어보면 약 2000줄의 json 데이트 획득 가능

* XCLogParser git: https://github.com/MobileNativeFoundation/XCLogParser