-
Notifications
You must be signed in to change notification settings - Fork 1
[기술공유] 멀티 프로젝트 모듈화와 SwiftLint 환경에서 빌드 속도 개선
모듈화 + SwiftLint를 적용하고 나서 느낀건데….
왠지 모르게 빌드가 너무 느려졌다?!?!?!
흥…. 오또카지…
일단 문제가 어디서 발생하는지를 알아야겠죠?
이게 늦어지는 이유가 소스코드에 있지는 않을 것이에요…. (왜냐하면 아무것도 구현을 안했기 때문..ㅎ)
이때 처음으로 추론?한게… “아! 의존성 때문에 뭔가 오래걸리는 거 아닐까?”였는데… (결론적으로는 반만 맞았읍니다…)
그래서 모든 의존성을 제거했습니다…ㅎ
그랬더니?
아주 빨라졌다!!
솔직히 린트도 의심스럽긴했는데
엄청 빨리 끝나서 바로 의심을 접었답니다!
그래서 뭔가 의존관계에 있어서 잘못된게 있다! 싶었습니다.
그래서 일단 프레임워크들 하나하나 빌드를 해보았습니다.
그런데 모두다 하나같이 느림 ㅠㅠㅠㅠㅠㅠ
프레임워크들도 모두 의존성을 제거해버리자! 라는 생각이 들었고, 의존성을 전부 제거했습니다.
그리고 하나하나 빌드를 해보는데 뭔가 이상했습니다.
MHFoundation만 너—무 느리게 빌드가 되었던 것입니다…
이것은 뭔가 문제가 있다 싶었죠….
저희의 MHFoundation에게 남들에게 없는 특별한 점이 있다면, #import <Foundation/Foundation.h>
일 것입니다.
-
그리고 이것이 public으로 설정했죠!
-
이게 아니면 아무 코드가 없기 때문에 문제는 무조건 여기입니다…
-
그래서 보니,, 저 import를 지우거나, 접근을 project로 제한하면 괜찮아졌습니다!
-
근데,,, 저희가 이렇게 한 이유가 MHFoundation만 import해도 Foundation이 import되도록 하는 거였다~ 이겁니다…
그래서 다른 대안을 찾아보기로 했습니다. 바~~로 구글에 검색!
검색어가 쫌 직관적이네요 - (하지만 해냈죠?)
오~ 뭔가 있더라구요?
오~ 요 방법을 바로 적용해 보죠.
여기를 체크 해제하라는 거군요… 일단 해보죠!
사실 한번 성공했었는데… 작성할때 기준으로는 안되네용 ㅋㅋ
ㅠㅠㅠㅠ 그렇읍니다… Xcode가 알아서 잘 의존성 관리해주던 것을 안하겠다! 선언을 했으므로… 직접 의존성관리를 해야하죠,,, 그러다보니 링크오류가 오우….
이것은 좋은 해결책이 아니라는 것을 깨닫고 또… 찾아봤읍니다…
근데 솔직히 Build 메시지들이 너——무 불친절해서 뭔가 더 볼수 있는 것 없을까?하고 구글에 검색!
하니까?
요런 예쁜 기능을 알았습니다….
네! 그래서 바로 해봤죵
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 저 우람한 MHFoundation….
뭔가 Verify?가 있더라구요… 그래서 뭐지?하고 검색하니까 저희처럼 Verify에 오래걸린다라는 분들을 보았습니다…
⇒ Verify가 오래 걸리시나요? Verify를 끄세요! (Debug만!)
오옹 천잰데?
바~~~로 적용해버리기~~~~
이제… 빌드를 해야겠지..?
편—안
Release는 오래 걸리겠지만…. 아 ㅋㅋ 일단 디버깅은 해결했다구!
- 빌드에 대해 Timeline을 볼 수 있다!!
- Framework는 Verify를 하나보다! (위변조 검사 절차인듯!)
[Xcode 14 톺아보기](https://zeddios.tistory.com/1358)
[Xcode build time frustration | Apple Developer Forums](https://forums.developer.apple.com/forums/thread/763913)
[Xcode is running really slow](https://stackoverflow.com/questions/41166963/xcode-is-running-really-slow)
[Verifying the origin of your XCFrameworks | Apple Developer Documentation](https://developer.apple.com/documentation/xcode/verifying-the-origin-of-your-xcframeworks)