Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- UICollectionView
- 스위프트
- SWIFT
- Observable
- ribs
- RxCocoa
- UITextView
- Clean Code
- Refactoring
- Protocol
- uiscrollview
- 리펙터링
- uitableview
- HIG
- rxswift
- Human interface guide
- swiftUI
- collectionview
- tableView
- 애니메이션
- MVVM
- map
- 리펙토링
- combine
- clean architecture
- 리팩토링
- Xcode
- 클린 코드
- ios
- swift documentation
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - Swift] 2. Build Setting 개념 - dynamic framework vs static framework 본문
iOS 응용 (swift)
[iOS - Swift] 2. Build Setting 개념 - dynamic framework vs static framework
jake-kim 2022. 12. 17. 22:44Dynamic Framework와 Static Framework 차이
- Dynamic Framework - 컴파일된 바이너리 파일이 Stack의 Bundle영역에 존재하여, 어플리케이션 코드에서 스택 영역을 참조하여 사용
- Static Framework - 컴파일된 바이너리 파일이, 앱의 실행 파일에 복사되어 바로 사용
Dynamic, Static 특징
- Dynamic framework
- 메모리 효율 - 동시에 여러 프레임워크 또는 프로그램에서 동일한 코드를 공유(참조)하여 메모리에 효율적
- 전체 빌드를 다시 하지 않아도 부분 빌드를 통해 새로운 프레임워크 사용 가능
- 디버그 심볼 따로 필요 - 실행파일에 프레임워크가 없으므로 별도로 dSYM파일 따로 생성해서 주입
- Static framework
- 실행파일에 직접 연결되어 있으므로 런타임상 속도가 빠름
- dynamic에 비해 메모리 더 차지
- Static Framework를 여러 Framework에서 사용하게 되면 코드 중복이 발생
- Static Framework가 많아질수록 실행 파일의 크기가 커지는 단점이 존재
- 디버그 심볼 따로 필요 x - 실행파일에 프레임워크가 있으므로 dSYM파일 따로 생성해서 주입해줄 필요 x
프레임워크 관련 옵션 정리
1) Mach-O Type
- 프레임워크를 제공하는 쪽에서 선택해줘야하는 옵션
2) Linking Mach-O Type / Frameworks, Libraries, and Embedded Content
- 프레임워크를 사용하는쪽에서 선택해줘야하는 옵션
Xcode에서 Framework 설정 (프레임워크 제공하는 쪽)
- 예제에 사용할 프레임워크 생성
- Xcode > 새로운 파일 > iOS > Framework
- 생성된 파일 오픈
- Target > Build Setting > Mach-O Type 확인
- 디폴트는 Dynamic Library
Xcode에서 Framework 설정 (프레임워크를 사용하는 쪽)
- 위에서 만든 Framework 적용 (별도의 프로젝트에서 진행)
- 위에서 만들었던 MyFramework 클릭
- 프레임워크 추가
- + 버튼눌러서 추가
- Framework Embed 설정 (Embed 의미는 참조 파일을 임베딩 할 것인지를 의미)
- Embed & Sign - Dynamic Framework
- Do Not Embed - Static Framework
(위에서 만든 프레임워크는 Dynamic Framework이므로 Embed & Sign으로 설정)
* 참고
'iOS 응용 (swift)' 카테고리의 다른 글
Comments