티스토리 뷰

728x90
반응형

[1] 궁금증

 

dylib 를 iOS 에서는 직접 못만드는 걸로 알고 있다.  

그래서 맥 OS 와 달리 'Static' Library 라고 템플릿 이름이 명시되어있는 것이고

 

iOS / MacOS

 

iOS 에서는 오직 System 라이브러리만 다이나믹 가능한 것으로 알고 있다.  (예전 관련 글

 

System iOS 다이나믹 라이브러리

 

 

하지만 Tuist 를 보다보니.. 

Product Type 중 Dynamic Library 를 iOS 에서도 쓸 수 있다. 

 

 

Linking 도 잘들어가있고 

 

 

앱에 embed 할때도 dylib 으로 잘나온다. 

 

 

 

 

이게 어떻게 가능한 것일까 ??? 

ㄴ Tuist Github 을 뒤져봐도 잘모르겠음 ;;; 

ㄴ 애플 문서 > Creating Dynamic Libraries 를 봐도 모르겠음 ;;; 

 

 

[2] 추측 

세가지 가능성이 있을 것이라고 생각했다.

 

 

1) static library 를 만들고 dynamic library 로 변환한다 ? 

 

Static Library 를 만들면 확장자가 a 인데, Mach-O type을 dynamic library 로 선택해도
확장자를 dylib 으로 못바꾸는 걸로 알고 있다. 

 

근데 다시 찾아보니 스택오버플로우 에 이런 명령어가 나오기는 하더라 😳  (시도해봤는데 에러남) 

xcrun --sdk iphoneos clang -arch <ARCH> -shared -all_load \
    -o lib<NAME>.dylib lib<NAME>.a

 

 

2) dynamic framework 를 만들고 dynamic library 만 빼온다 ? 혹은 Build Setting 을 Library 에 맞게 바꾼다 ? 

 

애플개발자 포럼에서 Framework template 를 활용하라는 글을 보았고

프레임워크는 라이브러리 + 리소스 이니까 라이브러리만 어케저케 가져올 수 있지 않을까 생각함

 

 

3) xcode template 과 상관없는 별도의 script 를 사용한다 ?

 

이런 스크립트가 있음 

 

https://github.com/facebookarchive/clang-as-ios-dylib

 

GitHub - facebookarchive/clang-as-ios-dylib: A workaround to build iOS dynamic libraries from Xcode.

A workaround to build iOS dynamic libraries from Xcode. - facebookarchive/clang-as-ios-dylib

github.com

 

 

그래서 Tuist 형들에게 물어봄 (슬랙

 

 

[3] 결론 

 

형님의 답변

 

 

 

 

TuistUI 를 iOS + dynamic library 로 세팅하고 tuist generate 하면 

해당 라이브러리는 iOS 타겟으로 나오고 iOS 전용 뷰 생성/빌드도 가능하지만!

 

 

 

앱에 dylib 로 embed 도 잘 되지만! 

앱에서 해당 라이브러리를 import 하면 에러가 난다. 
(다시 확인해보니  import 하지 않고 dylib 포함만 되더라도 컴파일 에러 남)

 

 

 

 

~ 내가 내린 결론 ~ 

tuist 에서 iOS 용 dylib 를 세팅할 수 있다. 

하지만 실제로 사용할 수 는 없다 (?) 

 

Xcode Template 에 나와있는 대로 iOS 에서는 static library, static framework, dynamic framework 만 가능이다. 

 

 

반응형

'🍏 > Tuist' 카테고리의 다른 글

[Tuist] tuist scaffold (Template 으로 모듈 자동생성)  (0) 2024.10.02
[Tuist] StaticFramework 와 Preview  (4) 2024.04.09
[Tuist] Cache  (10) 2024.04.08
[Tuist] 프로젝트 만들기 (4.7.0 버전)  (7) 2024.03.26
댓글