iOS-Static-Library-Example
iOS Static Library를 직접 만들어보고 적용해보는 프로젝트입니다.
Custom Button을 Static Library로 만들어보며 학습합니다.
Repository Structure
iOS-Static-Library-Example
├── Library // Static Library
├── StaticApp // App Project
└── StaticLibrary // Static Library Project
1. Create Project
App Project
- Optional
- Use Core Data
- Include Tests
Library Project
2. App Project Setting
Create Library Folder
xcodeproj 파일이 있는 곳에 lib 폴더를 생성
App -> Targets-App -> Build Settings -> Select All, Combined
Search Paths -> Library Search Paths
![]()
$(inherited) $(PROJECT_DIR) $(PROJECT_DIR)/lib
추가
Swift Compiler – Search Paths -> Import Paths
![]()
$(inherited) $(PROJECT_DIR) $(PROJECT_DIR)/lib
추가
3. Coding Custom Button in Library Project
// CustomButton.swift
import SwiftUI
public struct CustomButton<L> : View where L : View {
let role: ButtonRole?
let action: () -> Void
let label: () -> L
public init(role: ButtonRole? = .none, action: @escaping () -> Void, @ViewBuilder label: @escaping () -> L) {
self.role = role
self.action = action
self.label = label
}
public var body: some View {
Button(role: self.role) {
self.action()
} label: {
self.label()
}
}
}
4. Build Simulator & Device
iOS 기기 시뮬레이터 선택 후 빌드(Command + B)
Any iOS Device 또는 실제 Device 선택 후 빌드(Command + B)
5. Find Build File
Product -> Show Build Folder in Finder
Binary File(.a file)과 Swift Module이 생성됐는지 확인한다.
6. Copy Library File
7. Import Library
lib 폴더를 project에 추가
![]() |
![]() |
---|
7. Use Library
import SwiftUI
import StaticLibrary
struct ContentView: View {
var body: some View {
VStack{
Text("Hello, world!")
CustomButton{
print("Custom Button in Library")
} label: {
Text("Static Library Button")
}
}
}
}
8. App Build
9. Error
Library를 M1 CPU에서 만들었기 때문에 x86_64(Intel CPU)에서 빌드될 Simulator에 대한 정보가 없다는 오류
10. Improvement
- Simulator와 Device 동시에 사용가능한 Binary 파일을 만드는 것