Module
- νλμ μ½λ λ°°ν¬λ¨μ ex) framework or application
- Xcodeμμ νλ μμν¬λ μ± λ²λ€κ°μ λΉλνμΌλ€μ κ°κ° λͺ¨λμ΄λ€
- κ° λͺ¨λμ κ°μμ λ€μμ€νμ΄μ€ λ° μ‘μΈμ€ 컨νΈλ‘€ κ°μ§κ³ μμΌλ©° λ€λ₯Έ λͺ¨λμμ μν¬νΈλμ΄ μ¬μ¬μ© λ μ μλ€
Bundle
- λ΄λΆμ μλ νμΌ λλ ν 리μ΄λ€.
- iOS μμ λ²λ€μ μ±μ κ΄λ ¨λ νμΌμ νλμ ν¨ν€μ§λ‘ μ 곡
Object code
- object code λ 보ν΅, μ»΄νμΌλ¬λ₯Ό ν΅ν΄ μμ°λ κ²°κ³Όλ¬Ό
Object file
- object code λ₯Ό ν¬ν¨νκ³ μλ νμΌμ΄λ€.
Library
- Libraryλ νκ²μμ μ¬μ©λ ν¨ν€μ§λ Object νμΌλ€μ λͺ¨μ
- νκ²μ μ΄λ»κ² λ§νΉνλκ°μ λ°λΌ 2 νμ
μΌλ‘ λλλ€
- Static Library (.a) : μ»΄νμΌ μμ μ νκ²μ μ°κ²°(λ§νΉ)
- Dynamic Library (.dylib) : λ°νμ μμ μ νκ²μ μ°κ²°(λ§νΉ)
Static Library
- μ»΄νμΌλ λ μ¬μ©ν μ½λλ€μ Execute fileμ 볡μ¬νμ¬ μ¬μ©
- .a νμΌ μ΅μ€ν μ μ κ°μ§κ³ μλ€
- Execute fileμ λͺΈμ§μ΄ 컀μ§κ³ μ± μμ μκ°μ΄ κΈΈμ΄μ§λ€
Dynamic Library
- μ»΄νμΌ μμ μ executable file μ 볡μ¬λμ§ μλλ€. Linkerλ λΌμ΄λΈλ¬λ¦¬μ referenceλ§ μ μ₯
- .dylib μ΅μ€ν μ μ κ°μ§κ³ μλ€
- νμν μμ μ λμ μΌλ‘ λ‘λλμ μ¬μ©νλ―λ‘ λ§€λ² μ»΄νμΌ ν νμ μλ€
- μ± μ»΄νμΌ μμ μ λ©λͺ¨λ¦¬μ λ‘λν΄ λμ§ μμκΈ° λλ¬Έμ, μλμ μΌλ‘ Static Library 보λ€λ μ½λ μ κ·Ό μλκ° λ리μ§λ§ μ± μμ μκ°μ΄ 짧λ€
Framework
- λΌμ΄λΈλ¬λ¦¬ ν€λνμΌ, localizableνμΌ, 리μμ€κΉμ§ μ΄ λͺ¨λ κ²μ νλμ Bundleλ‘ λ¬Άμ΄λμ κ²
- μ±μμ Framework μ μ¬μ©ν λλ μ± ν΄λΉ νλ μμν¬λ₯Ό μ± λ²λ€μμ ν¬ν¨ μμΌμΌ νλ€.
Static Framework
- Source File + Static Library + Static Linker
- Static Linkerλ₯Ό ν΅ν΄ Static Library μ½λκ° Execute file(= appliccation file) λ΄λ‘ λ€μ΄κ° Heap λ©λͺ¨λ¦¬μ μμ£Ό
- λ°νμ μλκ° λΉ λ₯΄μ§λ§ λ©λͺ¨λ¦¬κ° λ§μ΄ μ¬μ©λκ³ μ»΄νμΌ μλκ° μ€λ κ±Έλ¦°λ€
Dynamic Framework
- Source File + Dynamic Library References + Dynamic Library + Static Linker
- νμΌμ΄ μλ μ£Όμλ₯Ό execute file (= application file)μ μ μ₯νκ³ , Static Linkerλ₯Ό ν΅ν΄μ StackμΌλ‘ νμν λΌμ΄λΈλ¬λ¦¬λ€μ λΆλ¬μμ μ¬μ©νλ νν
- μ£Όμ μ 보λ€μ Heapμ μμ£Ό
- μ»΄νμΌ μλκ° μ κ² κ±Έλ¦¬κ³ μ¬μ©λλ λ©λͺ¨λ¦¬ ν¬κΈ°κ° μ μ§λ§ λ°νμ μλκ° λ리λ€
XCFramework
- iOS, macOS, tvOS, and watchOS λ©ν°νλ«νΌλ₯Ό μ§μνκΈ° μν΄ Xcodeκ° λ§λ€μ΄λ΄λ λ°μ΄λ리 ν¨ν€μ§
- XCFrameworkλ μ¬λ¬ νλ μμν¬λ€μ ν¬ν¨ν μ μμ
- XCFrameworkλ Static Frameworkμ΄κ±°λ Dynamic Framework λ λ€ κ°λ₯
- μ¬λ¬ κ°μ architecture μ© framework λ€μ λ¬Άμ΄ νλμ xcframework μ λ§λ€μ΄μ£Όλ©΄, λΉλμν©μ λ§λ framework μ λ³λλ‘ μ€μ ν΄ μ€ νμμμ΄ νλμ xcframework λ§ κ°μ§κ³ μ¬μ©ν μ μκΈ° λλ¬Έμ λ§€μ° νΈλ¦¬.
XCFramework λ§λλ λ²
- νλ μμν¬λ‘ λ§λ€ νλ‘μ νΈμμ μ¬λ¬ λλ°μ΄μ€ νκ²μΌλ‘ μ€μ (XCFrameworkλ λ©ν°νλ«νΌμ μ§μ)
- Archivingμ νμ¬ λ°μ΄λ리 νμΌ(.xarchive)λ‘ μμ± (νκ²μ΄ μ¬λ¬κ°μ΄λ―λ‘ λ°μ΄λ리 νμΌλ μ¬λ¬κ°κ° μμ±)
- μμμ λμ¨ λ°μ΄λ리 νμΌλ€μ XCFrameworkλ‘ λ¬Άμ (μλ£)
μ°Έκ³
https://showcove.medium.com/library-framework-%EA%B7%B8%EB%A6%AC%EA%B3%A0-xcframework-15387031964b
https://ios-development.tistory.com/1004
https://docs.swift.org/swift-book/LanguageGuide/AccessControl.html
https://www.swift.org/package-manager/
.
'iOS π > iOS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
async/await, continuation, Actor (0) | 2023.02.01 |
---|---|
Concurrency1 : GCD, Operation (0) | 2023.01.27 |
PNG transparency bug report (0) | 2022.12.23 |
Sign in with Apple νμ€ν(iOS + Node.js) κ°λ° λ ΈνΈ (0) | 2022.10.12 |
Unable to locate the App Tracking Transparency permission request when reviewed on iOS 15.4.1. (0) | 2022.05.13 |