티스토리 뷰

🍏/iOS

[Tuist] StaticFramework 와 Preview

eungding 2024. 4. 9. 15:07
반응형

 

[1] 바닐라 

 

Static Framework 에서는 프리뷰를 볼 수 없다. 

 

https://forums.developer.apple.com/forums/thread/704910

 

Getting error in previews when are… | Apple Developer Forums

Previews don't work when are inside of a static framework. Has anyone experimented it also? MessageSendFailure: Message send failure for update ================================== |  RemoteHumanReadableError: Unknown preview provider "Provider_Previews_" |

forums.developer.apple.com

 

이유는 GPT의 대답을 참고하자.

 

 

 

 

두가지 대응방법이 있겠다. 

 

1)  개발 중에는 dynamic 으로, 배포때는 static 으로 둔다.  

2)  Static Framework 에 Dynamic Preview (Dynamic Framework) 를 두고 프리뷰를 본다. 

 

 

 

 

 

[2] Tuist 

 

Tuist 에서도 두가지 대응방법을 사용할 수 있겠다.

 

 

1)

tuist edit 에서 설정을 바꿀 수 있겠지만, 

Generation-time configuration 을 사용하면 더 편하다.

 

예를들어

이렇게 세팅해주고 

 

(참고:  Environment 는 @dynamicMemberLookup 이 붙어있는 enum)

 

 

아래의 command 로 generate 해주면 TuistUI가 dynamic framework 로 세팅된다.

TUIST_FOR_PREVIEW=TRUE tuist generate

 

(참고:  command에서  TUIST_XXX 형식을 환경변수로 봄)

 

 

 

2) 

 

Tuist 에서 제공하는 예제

 

https://github.com/tuist/tuist/tree/main/fixtures/app_with_previews

 

tuist/fixtures/app_with_previews at main · tuist/tuist

🚀 Create, maintain, and interact with Xcode projects at scale - tuist/tuist

github.com

 

 

ResourcesFramework 는 static 인데

프리뷰를 보기 위해 PreviewsFramework 라는 dynamic framework 를 추가했다.

 

 

 

 

 

[3] Best Practice  ? 

 

우선 배포 후에도 프리뷰를 볼 수 있으면 더 좋으니까 2번 방식이 더 좋아보인다. 

 

 

하지만 프리뷰가 퀵하게 해당 뷰 파일에서 이 코드가 어떻게 그려지는 지를 바로바로 보는건데

다른 모듈에 가서 봐야하는게 좋은 경험 같지는 않다. 

(특정 뷰 를 지우면 프리뷰 쪽에 가서 같이 지워줘야하는 것도 관리포인트 면에서도 좀 별로이고..) 

 

또한  UI 관련 모듈이 여러개 이면  (HomeUI, SettingUI ..)
프리뷰 모듈도 동일하게 여러개 가 되어야하는 것인가 ?   (HomeUIPreview, SettingUIPreview...)

 

개발용 프리뷰라면 하나에 다 넣겠는데 

프레임워크 사용자에게도 프리뷰를 보여주는게 좋지 않겠는가 .. ? 

 

 

 

 

 

반응형
댓글