project/Kuring(공지알림)

[CI] 로컬 빌드 성공 하지만, Github Action 빌드 실패하던 문제

lgvv 2024. 10. 8. 20:00

[CI] 로컬 빌드 성공 하지만, Github Action 빌드 실패하던 문제

 

문제 상황

  • 로컬에서 모든 작업자가 빌드가 잘 되지만,  Github Action에서만 빌드가 실패하는 문제가 발생
  • Process completed with exit code 65.

문제 분석

  • 에러 파일이 길어서 콘솔에는 나타나지 않아 에러 파일을 다운 받아 분석
  • 패키지 의존성에 문제가 있는지 점검
  • 테스트 코드 통과하지 못한 영역이 있는지 점검
  • 최근 작업한 영역에서 빌드에 영향을 줄 수 있는 부분이 있는지 점검
    • 당시 Translation 프레임워크를 도입
    •  iOS 17, 18에서 지원하는 사용할 수 있는 API 가 다름 (18에서 확장됨)
    • Xcode 15와 Xcode 16에 따라 iOS 타겟 범위가 다름 (15는 17버전, 16은 18버전 지원)

실패 스크린샷



 

문제 해결

  • 오픈소스를 보면서 전처리기로 canImport를 자주 보았었는데, 이걸 서비스 레벨에서 사용해 본적은 없었는데, 이번에 사용해보게 되었음.
  • 근본적인 원인은 CI 설정에서 Xcode 버전을 15 > 16으로 변경
    • 즉, Xcode가 15로 되어있어서 Translation 프레임워크에서 사용된 iOS 18을 지원하는 API 코드가 빌드 자체를 성공할 수가 없음.

 

소감

  • CI는 한번 구축하면 자주 보지 않다 보니까, 문제 해결까지 오랜 시간이 걸렸던 것 같음. 
  • 같이 봐주신 분이 거의 킥을 제공해주셨는데, 아직도 배울게 많은 것 같다
  • iOS 개발자로서 팀원과 팀 리드의 페르소나에 대해서 고민하고 있는데, 리드로서는 개발 환경적인 즉, 어떤 부분의 문제를 해결해줘야 다른 사람들이 더 나은 퍼포먼스를 발휘하게 할 수 있을지 많이 고민하게 되는 것 같음.