네부캠 미션을 하면서
모듈화를 진행했다.
초기 모듈화 설계를 다음과 같이 하였고,
Data 모듈이 Network 모듈에
의존성을 갖고 있어
각 모듈이 독립적이어야 한다는
클린 아키텍쳐 원칙에 잘 맞지 않았다.
따라서 모듈 구조를
일부 수정하였다.
DIP(의존성 역전 원칙)를 적용하여,
Data 모듈에 인터페이스를 정의하고,
Network 모듈에서는 해당 인터페이스를 채택한 구현체를 구현했다.
하지만 이와 같이 모듈화 구조를 변경하면서
다음과 같은 에러를 마주하게 되었다.
Command SwiftVerifyEmittedModuleInterface failed with a nonzero exit code
첫번째 시도
Build Libraries for Distribution 옵션을
No로 변경해주었다.
이렇게 되면 에러는 해결되지만
아카이브 시 .swiftinterface 파일이 생성되지 않는다.
.swiftinterface 파일은 해당 모듈에서
사용 가능한 함수, 클래스 등의 인터페이스를 확인할 수 있는 파일이다.
최적화 관점에서 .swiftinterface 파일이
있는 것이 좋다고 판단한다.
그럼 왜 ! 오류가 날까 ??
Data 모듈 안에서 import Foundation을 했을 시에
오류가 발생했다.
오류가 발생한 이유는
Foundation 프레임워크 안에서 Data class가 있는데
이것이 Data 모듈명과 충돌이 되었던 것이었다.
따라서 모듈명과 클래스명이
겹치면 안된다.
+
그리고 Xcode 16에서는 에러를 안알려주지만 ..
Xcode 15.4에서는 해당 에러를 알려준다 .. ...
'iOS' 카테고리의 다른 글
[iOS] Archive Fail - 'UIBackgroundModes' has a value of 'processing'. (0) | 2024.05.17 |
---|---|
[iOS] AppStore 배포 일지 - (1) (0) | 2024.05.17 |
[iOS, Firebase] Firebase APN 키 등록하기 (0) | 2024.05.14 |