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 개발자로서 팀원과 팀 리드라는 두 역할에 대해 고민하고 있는데, 특히 리드로서는 개발 환경 전반에서 어떤 병목을 해소해야 팀원들이 본연의 역량에 집중하고 더 나은 퍼포먼스를 낼 수 있을지에 대한 고민이 크다.
    • 즉, 환경이나 병목 지점을 잘 풀어주는게 중요한거 같다.

 

'project > Kuring(공지알림)' 카테고리의 다른 글

[iOS] 학과 검색 알고리즘 개선 (초성검색)  (1) 2024.03.06
[iOS] Spotlight (SearchAPI)  (3) 2023.10.11
1.4.0 Release Note  (0) 2023.06.19
Xcode Scheme 분리하기  (3) 2023.02.03
Swift Package No Such Module  (1) 2022.08.24