티스토리 뷰
[1] 궁금증
dylib 를 iOS 에서는 직접 못만드는 걸로 알고 있다.
그래서 맥 OS 와 달리 'Static' Library 라고 템플릿 이름이 명시되어있는 것이고
iOS 에서는 오직 System 라이브러리만 다이나믹 가능한 것으로 알고 있다. (예전 관련 글)
하지만 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
그래서 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 |
- Total
- Today
- Yesterday
- flutter 앱 출시
- Sketch 누끼
- ipad multitasking
- Flutter Text Gradient
- cocoapod
- DRF APIException
- Flutter Clipboard
- github actions
- Django FCM
- 장고 Custom Management Command
- Django Heroku Scheduler
- flutter dynamic link
- Dart Factory
- flutter build mode
- drf custom error
- 장고 URL querystring
- METAL
- Python Type Hint
- Flutter getter setter
- ribs
- PencilKit
- 플러터 싱글톤
- 구글 Geocoding API
- 플러터 얼럿
- flutter deep link
- Flutter Spacer
- SerializerMethodField
- Django Firebase Cloud Messaging
- Watch App for iOS App vs Watch App
- Flutter 로딩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |