
오픈 소스 라이브러리를 사용하는 프로젝트에서는 사용된 라이브러리의 라이선스를 명시하는 것이 중요하다. 이를 위해 AcknowList 라이브러리를 활용하면 손쉽게 라이선스 정보를 표시할 수 있다. 본 글에서는 AcknowList 라이브러리를 프로젝트에 적용하는 방법을 단계별로 소개한다.
AcknowList는 CocoaPods 및 Swift Package Manager를 통해 관리되는 의존성의 라이선스 정보를 화면에 표시할 수 있는 간단한 라이브러리이다. 다양한 기능과 커스터마이징 옵션을 제공하여 사용자에게 깔끔한 라이선스 정보를 제공할 수 있다.
CocoaPods가 생성한 Pods-#target#-acknowledgements.plist 파일을 메인 타겟에 추가한다.
Pods/Target Support Files/Pods-#target#/ 폴더에서 파일을 드래그 앤 드롭하여 Xcode 프로젝트에 추가한다. 이때 Copy items if needed 옵션은 체크하지 않는다.

생성된 Package.resolved 파일을 메인 타겟에 추가한다. 패키지 보기를 통해 파일을 보면 된다.
파일은 다음 경로에 위치한다:
- 단일 Xcode 프로젝트: [appName].xcodeproj/project.xcworkspace/xcshareddata/swiftpm/
- Xcode 워크스페이스 (예: CocoaPods 사용 시): [appName].xcworkspace/xcshareddata/swiftpm/

AcknowList를 사용하기 위해서는 AcknowListViewController를 UINavigationController에 푸시(push)하여 표시할 수 있다. 아래는 실제 나의 앱에서 사용 예제이다.
import UIKit
import AcknowList
class OpenSourceViewController: AcknowListViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 사용자 인터페이스 스타일을 라이트 모드로 고정
overrideUserInterfaceStyle = .light
title = "OpenSourceLicenses"
view.backgroundColor = .DawnPink
tableView.backgroundColor = .DawnPink
}
override func tableView(
_ tableView: UITableView,
cellForRowAt indexPath: IndexPath
) -> UITableViewCell {
let cell = super.tableView(tableView, cellForRowAt: indexPath)
cell.backgroundColor = .DawnPink
// 선택된 셀의 배경색 설정
let selectedBackgroundView = UIView()
selectedBackgroundView.backgroundColor = .Spindle // 원하는 색상으로 변경
cell.selectedBackgroundView = selectedBackgroundView
return cell
}
}
위 코드에서는 AcknowListViewController를 상속받은 OpenSourceViewController를 생성한다. viewDidLoad 메서드에서 인터페이스 스타일을 라이트 모드로 고정하고, 배경색을 설정한다. 또한 tableView(_:cellForRowAt:) 메서드를 오버라이드하여 셀의 배경색과 선택 시 배경색을 커스터마이징하였다.
라이선스 상세 내용을 보여주는 페이지에서 폰트와 배경을 변경 하면 왜 인지 텍스트가 안보인다... 일단 라이트 모드로 강제....
AcknowList는 다양한 커스터마이징 옵션을 제공한다. 예를 들어, 헤더와 푸터 텍스트를 직접 설정하거나, 테이블 뷰의 스타일을 변경할 수 있다.
let viewController = AcknowListViewController()
viewController.headerText = "우리는 오픈 소스 소프트웨어를 사랑합니다."
viewController.footerText = "CocoaPods 및 SPM으로 구동됩니다."
또한, 테이블 뷰의 스타일을 변경하고자 할 경우 초기화 시 스타일을 지정할 수 있다.
let viewController = AcknowListViewController(plistFileURL: url, style: .plain)
AcknowList는 SwiftUI 인터페이스도 지원한다. SwiftUI를 사용하여 라이선스 정보를 표시하고자 할 경우, AcknowListSwiftUIView를 인스턴스화하여 NavigationView 내에서 사용할 수 있다.
import SwiftUI
import AcknowList
struct ContentView: View {
var body: some View {
NavigationView {
AcknowListSwiftUIView(plistFileURL: Bundle.main.url(forResource: "Pods-YourApp-acknowledgements", withExtension: "plist"))
.navigationTitle("오픈 소스 라이선스")
}
}
}
AcknowList는 프로젝트에 오픈 소스 라이선스 정보를 손쉽게 추가할 수 있는 강력한 도구이다. 다양한 설치 옵션과 커스터마이징 가능성을 통해 개발자는 사용자에게 깔끔하고 일관된 라이선스 정보를 제공할 수 있다. 위에서 소개한 방법을 참고하여 AcknowList를 프로젝트에 적용해 보길 권장한다.
AcknowList는 Vincent Tourraine에 의해 제작되었으며, 다양한 기여자들의 도움으로 지속적으로 발전하고 있다. 프로젝트는 MIT 라이선스 하에 공개되어 있으므로 자유롭게 사용하고 수정할 수 있다.
더 자세한 정보는 AcknowList GitHub 페이지를 참고한다.