글 작성 배경
최근 업데이트에서 밀꼭은 고객의 소리함 이라는 기능을 만들었습니다. UI적이나, 기능적으로 필요한 것들에 대해 고객의 의견을 받아보고 싶어서 만들었습니다. 실제로 기능에 대한 불편한점을 호소하였습니다.
개인앱이기에 기능을 고치고 바로 배포에 들어갈려 했습니다. 하지만 저를 가로막은건 Tuist 와 Carthage의 오류였습니다.
오류에 관해서
일단 밀꼭은 비교적 오래된 어플리케이션 입니다. 여기서 오래된 이란 단어를 사용한 이유는 2024년에 굵직한 업데이트들이 많이 일어났습니다. swift 6.0 과 Tuist 4.0 업데이트가 있었습니다. 현재 개발이 완료되었고 서비스 유지보수 단계에서 Tuist 와 Swift의 Version Up에 대해 Task Ticket을 전혀 생각하지 않았습니다.
Tuist4.0이후부터는 Carthage가 아닌 통합으로 Dependencies를 관리합니다. 프로젝트의 경우 Realm을 Tuist+Carthage로 관리하기에 더더욱 4.0이상 버전으로 마이그레이션 할 생각이 없었습니다.
하지만 실제 프로젝트를 생성하니까, 빌드가 안되는 문제점이 발생하였습니다. Relam에서 minimum deployment target이 안맞다는 에러 였습니다.(아래는 모듈 이름만 다른 동일한 에러 입니다.)
구글링을 통해 알아낸 것으로 Carthage는 따로 Minimum deployment target을 설정하는 것이 없는것으로 확인하였습니다. 따라서 Tuist문제임을 직감하고 Tuist 버전을 올렸습니다.
Tuist 4.0 Migration
Tuist 공식 블로그를 통해 마이그레이션을 쉽게 할 수 있었습니다. (사실 4.0 사용해본 경험이 크게 작용하였습니다.) 그리고 Realm을 Carthage가 아닌 직접 Package로 기용하였고 이를 DynamicFramework로 참조를 두어 활용하였습니다. Tuist3.x버전에서 Realm을 쓸려면 objc 링크 때문에 Carthage로 우회했는데 이런 과정들이 없어서 나이스 했습니다.
'프로젝트 > 밀꼭-당신을 위한 식사 타이머' 카테고리의 다른 글
[MealGok_개인 앱] 특정 고객에게만 일어나는 버그를 잡기 위해서, 고객의 기기로 디버깅 해보기 (트러블 슈팅) (0) | 2024.06.06 |
---|---|
[MealGok] 어플리케이션의 종료 시나리오 작성 (0) | 2024.03.07 |