[swift] Swift AcknowList를 사용하여 라이선스 정보 페이지에서 특정 라이선스 종류의 라이선스 정보를 추가하는 방법을 알려주세요.

AcknowList는 Swift 언어로 작성된 오픈 소스 라이브러리로, 앱의 라이선스 정보를 관리하는 데 도움을 줍니다. 라이선스 정보 페이지에 특정 라이선스 종류의 라이선스 정보를 추가하는 방법은 다음과 같습니다.

1. AcknowList 설치하기

먼저, 해당 프로젝트에 AcknowList를 설치해야 합니다. 이를 위해서는 CocoaPods를 사용하거나 수동으로 라이브러리 파일을 추가할 수 있습니다.

2. AcknowList 사용하기

2.1 AcknowList에서 사용할 라이선스 정보 파일 생성하기

AcknowList는 프로젝트 루트 디렉토리에 Acknowledgements라는 이름의 폴더를 생성하고, 그 안에 Acknowledgements.plist 파일을 추가하여 사용하는 라이선스 정보를 관리합니다.

  1. 프로젝트 루트 디렉토리에서 Acknowledgements 폴더를 생성합니다.
  2. Acknowledgements 폴더 안에 Acknowledgements.plist 파일을 생성합니다.

2.2 라이선스 정보 추가하기

Acknowledgements.plist 파일을 열고, 다음과 같은 내용을 추가합니다.

<plist version="1.0">
<dict>
    <key>PreferenceSpecifiers</key>
    <array>
        <dict>
            <key>Type</key>
            <string>PSGroupSpecifier</string>
            <key>Title</key>
            <string>라이선스</string>
        </dict>
        ...
        <!-- 이곳에 라이선스 정보를 추가하세요 -->
        ...
    </array>
</dict>
</plist>

위의 코드에서 <array> 태그 안에 <dict> 태그를 사용하여 추가할 라이선스 정보를 작성합니다. 라이선스 정보는 다음과 같은 형식으로 작성할 수 있습니다:

<dict>
    <key>Type</key>
    <string>PSChildPaneSpecifier</string>
    <key>Title</key>
    <string>라이선스 종류</string>
    <key>File</key>
    <string>라이선스 파일 이름</string>
</dict>

위에서 작성한 내용을 통해 필요한 라이선스 정보를 추가한 후 저장하세요.

3. AcknowList를 사용한 라이선스 정보 페이지 표시하기

프로젝트에서 라이선스 정보를 표시하기 위해 Settings.bundle을 추가해야 합니다.

  1. 프로젝트 탐색기에서 타겟을 선택하고, Build Phases 탭을 엽니다.
  2. Link Binary With Libraries 섹션에서 Settings.bundle을 추가합니다.

프로젝트에 Settings.bundle을 추가한 후, 다음 단계를 따라 라이선스 정보를 표시합니다:

  1. AppDelegate.swift 파일을 열고, application(_:didFinishLaunchingWithOptions:) 메서드 내에 아래의 코드를 추가합니다.

    AcknowList.globalAcknowledgementsFileURL = Bundle.main.url(forResource: "Acknowledgements", withExtension: "plist")
    

    이 코드는 앱이 시작될 때 AcknowList가 사용할 라이선스 정보 파일 URL을 설정하는 역할을 합니다.

  2. Settings.bundle 폴더 안에 Root.plist 파일을 열고, 다음과 같이 수정합니다:

    <key>PreferenceSpecifiers</key>
    <array>
        <dict>
            <key>Type</key>
            <string>PSGroupSpecifier</string>
            <key>Title</key>
            <string>Settings</string>
        </dict>
        ...
        <dict>
           <key>Type</key>
           <string>PSChildPaneSpecifier</string>
           <key>Title</key>
           <string>Acknowledgements</string>
           <key>File</key>
           <string>AcknowListViewController</string>
        </dict>
    </array>
    

    위의 코드에서 <dict> 태그 안에 <dict> 태그를 사용하여 라이선스 정보를 추가합니다. <string>AcknowListViewController</string> 부분은 AcknowList에서 제공하는 라이선스 정보를 표시하는 뷰 컨트롤러를 사용한다는 것을 나타냅니다.

이제 앱을 빌드하고 실행하면, 설정 화면에서 “Acknowledgements”를 터치하면 해당 라이선스 정보를 볼 수 있는 페이지가 표시됩니다.

참고 자료