iOS/Swift + Objective-c

[iOS] 호기심에 해보는 Framework Embed 버전 테스트

안경 쓴 귀니 2022. 1. 11. 21:00
반응형

단순 호기심에 해보는 Dynamic Framework Embed, 버전 테스트

 

테스트

 

중첩 Embed 하여 사용하는 프레임워크의 버전이 다른 경우, 어떤 버전을 사용하는지?

 

 

구성

 

  • A 프레임워크 : 일반 프레임워크
  • B 프레임워크 : A 프레임워크를 Embed 하는 프레임워크
  • C 프로젝트 : A 프레임워크와 B 프레임워크를 Embed 하여 사용하는 iOS 응용 프로그램 (앱)

 

 

테스트

 

상황 1

  • B 프레임워크 : A 프레임워크 버전 1 Embed
  • C 프로젝트 : A 프레임워크 버전 2 Embed + B 프레임워크 Embed

 

Q. C 프로젝트에서 A 프레임워크 사용 시 어떤 버전의 A 프레임워크를 사용할까?

A. C 프로젝트에 있는 버전 2 사용

 

Q. C 프로젝트에서 B 프레임워크를 통해 A 프레임워크 사용 시 어떤 버전의 A 프레임워크를 사용할까? (C 프로젝트에서 B 프레임워크를 호출하고, B 프레임워크에서 A 프레임워크를 호출하는 경우)

A. C 프로젝트에 있는 버전 2 사용

 

 

상황 2

  • B 프레임워크 : A 프레임워크 버전 2 Embed
  • C 프로젝트 : A 프레임워크 버전 1 Embed + B 프레임워크 Embed

 

Q. C 프로젝트에서 A 프레임워크 사용 시 어떤 버전의 A 프레임워크를 사용할까?

A. C 프로젝트에 있는 버전 1 사용

 

Q. C 프로젝트에서 B 프레임워크를 통해 A 프레임워크 사용 시 어떤 버전의 A 프레임워크를 사용할까? (C 프로젝트에서 B 프레임워크를 호출하고, B 프레임워크에서 A 프레임워크를 호출하는 경우)

A. C 프로젝트에 있는 버전 1 사용

 

 

 

결론

 

  • 사용하는 프레임워크의 버전이 달라도, 최종적으로 사용하는 C 프로젝트에 있는 프레임워크 버전을 사용한다.

 

※ Dynamic 프레임워크의 경우 런타임 시 링크하기 때문에 최종적으로 사용하는 프로젝트 버전을 따라가는 게 아닌가 예상한다.

 

반응형