오픈소스 고지 포함

Google Play 서비스는 오픈소스 라이브러리를 포함하거나 이에 종속되는 경우가 있습니다. 오픈소스 라이브러리의 라이선스 요구사항을 준수하려면 개발자가 앱에서 사용하는 오픈소스 라이브러리의 알림을 적절하게 표시해야 합니다.

Google Play 서비스에는 개발자가 앱에서 사용하는 라이브러리의 오픈소스 소프트웨어 알림을 더 쉽게 표현할 수 있도록 설계된 도구 모음이 포함되어 있습니다. 이러한 도구 중 하나는 POM 파일에 선언된 대로 포함된 라이브러리에서 라이선스 약관을 수집하고 이러한 약관을 표시하는 데 사용할 수 있는 활동을 만드는 Gradle 플러그인입니다. 도구가 라이선스 정보를 찾아 패키징하는 방법을 자세히 알아보세요.

Gradle 플러그인 추가

루트 수준 빌드 파일에서 다음을 실행합니다.

  1. Google Maven 저장소를 포함합니다.
  2. 종속 항목에 oss-licenses 플러그인을 추가합니다.

다음 코드 스니펫은 이러한 단계를 보여줍니다.

Kotlin DSL

build.gradle.kts

buildscript {
  repositories {
    ...
    google()  // maven { url("https://maven.google.com") } for Gradle <= 3
  }
  dependencies {
    ...
    classpath("com.google.android.gms:oss-licenses-plugin:0.10.6")
  }
}

Groovy DSL

build.gradle

buildscript {
  repositories {
    ...
    google()  // maven { url "https://maven.google.com" } for Gradle <= 3
  }
  dependencies {
    ...
    classpath 'com.google.android.gms:oss-licenses-plugin:0.10.6'
  }
}

앱 수준 빌드 파일에서 파일 상단의 기존 com.android.application 플러그인 선언 아래에 다음 줄을 추가하여 플러그인을 적용합니다.

Kotlin DSL

app/build.gradle.kts

plugins {
    id("com.android.application")
    id("com.google.android.gms.oss-licenses-plugin")
}

Groovy DSL

app/build.gradle

plugins {
    id 'com.android.application'
    id 'com.google.android.gms.oss-licenses-plugin'
}

GitHub에서 이 플러그인의 코드를 확인할 수 있습니다.

앱에 라이브러리 추가

앱 수준 빌드 파일의 dependencies 섹션에서 oss-licenses 라이브러리의 종속 항목을 추가합니다.

Kotlin DSL

build.gradle.kts

implementation("com.google.android.gms:play-services-oss-licenses:17.1.0")

Groovy DSL

build.gradle

implementation 'com.google.android.gms:play-services-oss-licenses:17.1.0'

라이선스 정보 표시

앱이 빌드되면 Gradle 플러그인이 라이선스를 처리하고 앱의 리소스에 추가합니다. 라이선스를 쉽게 표시하려면 다음 코드 스니펫과 같이 앱의 적절한 지점에서 play-services-oss-licenses 라이브러리에서 제공하는 활동을 실행하면 됩니다.

Kotlin

import com.google.android.gms.oss.licenses.OssLicensesMenuActivity
...

// When the user selects an option to see the licenses:
startActivity(Intent(this, OssLicensesMenuActivity::class.java))

자바

import com.google.android.gms.oss.licenses.OssLicensesMenuActivity;
...

// When the user selects an option to see the licenses:
startActivity(new Intent(this, OssLicensesMenuActivity.class));

이 활동은 실행 시 그림 1과 같이 Google Play 서비스의 일부인 라이브러리를 포함하여 앱에 컴파일된 오픈소스 라이브러리의 목록을 표시합니다. 사용자는 라이브러리 이름을 탭하여 해당 라이브러리의 추가 라이선스 정보를 볼 수 있습니다.

오픈소스 라이브러리의 이름이 포함된 각 요소가 있는 목록 뷰

그림 1. 라이선스 메뉴 활동에는 앱에서 사용하는 오픈소스 라이브러리의 선택 가능한 목록이 표시됩니다.

활동 제목 설정

기본적으로 표시되는 활동의 제목은 '오픈소스 라이선스'입니다. 다음 코드 스니펫과 같이 setActivityTitle()를 호출하여 활동의 제목을 맞춤설정할 수 있습니다.

Kotlin

OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))

자바

OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));

활동에 테마 적용

활동에 테마를 적용하여 앱의 다른 활동에 사용된 테마와 일치시킬 수 있습니다. 이렇게 하려면 다음 코드 스니펫과 같이 앱의 매니페스트 파일 내 <activity> 요소에 오픈소스 라이선스 활동을 포함합니다.

<application android:theme="@style/AppTheme" ...>
    <activity
        android:name="com.google.android.gms.oss.licenses.OssLicensesMenuActivity"
        android:theme="@style/AppTheme" />
    <activity
        android:name="com.google.android.gms.oss.licenses.OssLicensesActivity"
        android:theme="@style/AppTheme" />
</application>

라이선스 목록이 결정되는 방식

컴파일 시간에 Gradle 플러그인은 앱 프로젝트의 POM 종속 항목을 검사합니다. 앱의 직접 종속 항목에 Maven POM이 있으면 플러그인이 각 <licenses> 요소를 처리하고 각 라이선스의 링크와 제목을 앱에 포함된 Android 애셋에 삽입합니다.