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
- 클린 코드
- UITextView
- 애니메이션
- MVVM
- collectionview
- ribs
- swiftUI
- SWIFT
- HIG
- 리팩토링
- RxCocoa
- clean architecture
- Xcode
- Human interface guide
- uiscrollview
- Clean Code
- UICollectionView
- Protocol
- Observable
- swift documentation
- ios
- Refactoring
- tableView
- rxswift
- uitableview
- 리펙토링
- 스위프트
- map
- 리펙터링
- combine
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] Linking Mach-O Type 옵션, Frameworks, Libraries, and Embedded Content 옵션 (Do Not Embed, Embed & Sign, Embed Without Signing, Dynamic Link, Static Link) 본문
Git, CocoaPods, Xcode, Shell
[iOS - swift] Linking Mach-O Type 옵션, Frameworks, Libraries, and Embedded Content 옵션 (Do Not Embed, Embed & Sign, Embed Without Signing, Dynamic Link, Static Link)
jake-kim 2022. 6. 17. 21:43프레임워크 관련 중요 옵션
1) Mach-O Type
- 프레임워크를 제공하는 쪽에서 선택해줘야하는 옵션
2) Linking Mach-O Type / Frameworks, Libraries, and Embedded Content
- 프레임워크를 사용하는쪽에서 선택해줘야하는 옵션
1) Mach-O Type 옵션
- 프레임워크를 제공하는 쪽에서 선택해줘야하는 옵션
- Target > Build Settings > Linking > Mach-O Type
- Xcode에서 Framework를 생성하면 자동으로 Executable로 지정
- 옵션 5가지
- Executable - 메인 프로젝트인지 (프레임워크가 아닌 메인 실행 프로젝트)
- Dynamic Library - 동적 라이브러리 (런타임 중에 링크)
- Bundle - 단순 이미지와 같은 리소스를 제공해주는 목적인 프로젝트인지
- Static Library - 정적 라이브러리 (빌드 타임에 링크)
- Relocatable Object File - 동적 라이브러리의 다른 단어
(라이브러리가 메모리에서 로드되는 위치에 따라 내부에 포함된 함수의 주소가 계산되는데, 동적 라이브러리는 주소는 링크 시간에 결정되지 않기 때문에 재배치 가능하므로 Relocatable이라 표현. 단 정적 라이브러리의 주소는 링크 시간동안 계산)
중요) Framework 종류 선택
- Dynamic Framework: 리소스를 스스로 가지고 있거나 전체 소스를 제공 (framework로 프로젝트 생성시 default)
- Static Framework: 전체 소스를 제공하지 않고 SDK 형태로 배포하는 경우
* Object File: CPU가 이해할 수 있는 파일 (아래 Object Code에 해당)
2) Frameworks, Libraries, and Embedded Content 옵션
- 프레임워크를 사용하는쪽에서 선택해줘야하는 옵션
- 모듈화 개념 1번 글에서 알아보았듯이, Dynamic Framework인 경우 Library가 stack에 embed되는 형태
- 구체적으로는 Dynamic Framework는 Stack영역 안의 Bundle에 프레임워크를 내장시키는 것
- Xcode에서 옵션 설정
- Embed의 의미: 프레임워크의 사본을 Bundle에 내장할 것인지 선택 옵션
- Dynamic Library - Embed
- Static Library - Not Embed
- Embed 특성
- Dynamic Library는 runtime에 연결되고, Static Library는 build time에 연결
- Dynamic Library는 runtime에 코드들을 embed시켜서 사용
- Signing 옵션
- Embed & Sign: 해당 프레임워크에 signing이 필요한 경우
- Embed Without Signing: 이미 해당 프레임워크가 signing이 완료된 프레임워크인 경우
* 참고
https://holyswift.app/frameworks-embed-or-not-embed-thats-the-question
https://developer.apple.com/library/archive/technotes/tn2435/_index.html
'Git, CocoaPods, Xcode, Shell' 카테고리의 다른 글
Comments