AcknowList는 iOS 앱에 사용된 오픈 소스 라이브러리의 라이선스 정보를 자동으로 생성해주는 도구입니다. AcknowList를 사용하면 앱 설정에서 라이선스 정보 페이지를 보여줄 수 있고, 사용된 라이브러리의 라이선스 정보를 복사할 수도 있습니다.
아래는 AcknowList를 사용하여 라이선스 정보 페이지에서 특정 라이선스 종류를 복사하는 방법입니다.
- 프로젝트에 AcknowList 추가하기
먼저, 프로젝트에 AcknowList를 추가해야 합니다. 프로젝트의 Podfile에 아래와 같이 AcknowList를 추가한 후, pod install
을 실행하여 라이브러리를 설치합니다.
pod 'AcknowList'
- AcknowList 설정하기
AcknowList를 사용하려면, 라이선스 정보를 정의한 plist 파일과 AcknowListViewController 파일을 추가해야 합니다.
-
먼저, 앱의 번들에 추가할 License 정보 plist 파일을 생성합니다. 파일의 이름은
Pods-<프로젝트명>-acknowledgements.plist
로 작성합니다. -
AcknowListViewController.swift 파일을 생성하여 앱 번들 내에 추가합니다.
- 라이선스 정보 페이지 보여주기
AcknowList를 사용하여 라이선스 정보 페이지를 보여주기 위해서는, 앱 설정에서 해당 페이지를 띄울 수 있어야 합니다. AppDelegate.swift 파일에 아래와 같은 코드를 추가하여 라이선스 정보 버튼을 생성합니다.
import UIKit
import AcknowList
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let licenseButtonItem = UIBarButtonItem(title: "라이선스 정보", style: .plain, target: self, action: #selector(showLicense))
self.window?.rootViewController?.navigationItem.rightBarButtonItem = licenseButtonItem
return true
}
@objc func showLicense() {
let viewController = AcknowListViewController()
let navigationController = UINavigationController(rootViewController: viewController)
self.window?.rootViewController?.present(navigationController, animated: true, completion: nil)
}
}
- 특정 라이선스 종류 복사하기
AcknowList를 사용하여 특정 라이선스 종류를 복사하려면, AcknowListViewController 파일 내에서 해당 라이선스를 특정해야 합니다. AcknowListViewController.swift 파일을 열고 tableView(_:cellForRowAt:)
메서드 내에 아래 코드를 추가합니다.
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = ...
let license = AcknowList.sharedInstance().acknowledgements[indexPath.row]
let copyButton = UIButton(type: .system)
copyButton.setTitle("복사", for: .normal)
copyButton.addTarget(self, action: #selector(copyLicense(_:)), for: .touchUpInside)
// 특정 라이선스만 복사하도록 설정
if license.title == "특정라이선스" {
cell.accessoryView = copyButton
} else {
cell.accessoryView = nil
}
return cell
}
@objc func copyLicense(_ sender: UIButton) {
let cell = sender.superview?.superview as! UITableViewCell
let indexPath = self.tableView.indexPath(for: cell)
let license = AcknowList.sharedInstance().acknowledgements[indexPath.row]
UIPasteboard.general.string = license.body
// 라이선스가 복사되었다는 알림을 사용자에게 보여줄 수도 있음
print("라이선스가 복사되었습니다.")
// 라이선스가 복사되었음을 콘솔에 출력
}
위 코드에서 license.title
을 적절한 값으로 변경하여 특정 라이선스를 선택할 수 있습니다. 해당 라이선스의 “복사” 버튼을 누르면 해당 라이선스의 내용이 복사됩니다.
위의 방법을 따라하면 Swift AcknowList를 사용하여 라이선스 정보 페이지에서 특정 라이선스 종류를 복사할 수 있습니다.