From a96be4142524734ac6b34dc231691300550b4b06 Mon Sep 17 00:00:00 2001 From: Yu Jin Date: Wed, 4 Mar 2026 14:53:48 +0900 Subject: [PATCH 1/6] =?UTF-8?q?OSS=20=EB=9D=BC=EC=9D=B4=EC=84=A0=EC=8A=A4?= =?UTF-8?q?=20=EB=A6=AC=EC=86=8C=EC=8A=A4=20=EB=88=84=EB=9D=BD=20=EC=8B=9C?= =?UTF-8?q?=20=EC=A7=84=EC=9E=85=20=EC=B0=A8=EB=8B=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/mypage/MyPageFragment.kt | 22 ++++++++++++++++++- app/src/main/res/raw/keep.xml | 3 +++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/raw/keep.xml diff --git a/app/src/main/java/com/eatssu/android/presentation/mypage/MyPageFragment.kt b/app/src/main/java/com/eatssu/android/presentation/mypage/MyPageFragment.kt index dd3c4361..2b320540 100644 --- a/app/src/main/java/com/eatssu/android/presentation/mypage/MyPageFragment.kt +++ b/app/src/main/java/com/eatssu/android/presentation/mypage/MyPageFragment.kt @@ -234,8 +234,28 @@ class MyPageFragment : BaseFragment(ScreenId.MYPAGE_MAIN) } private fun moveToOss() { + val context = requireContext() try { - startActivity(Intent(requireContext(), OssLicensesMenuActivity::class.java)) + val licensesId = context.resources.getIdentifier("third_party_licenses", "raw", context.packageName) + val metadataId = context.resources.getIdentifier( + "third_party_license_metadata", + "raw", + context.packageName + ) + if (licensesId == 0 || metadataId == 0) { + showErrorToast(getString(R.string.toast_oss_load_fail)) + Timber.e( + "OSS raw resource missing. third_party_licenses=%s third_party_license_metadata=%s", + licensesId, + metadataId + ) + return + } + + startActivity( + Intent(context, OssLicensesMenuActivity::class.java) + .addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY) + ) } catch (e: Exception) { showErrorToast(getString(R.string.toast_oss_load_fail)) Timber.e("Error opening OSS Licenses: ${e.message}") diff --git a/app/src/main/res/raw/keep.xml b/app/src/main/res/raw/keep.xml new file mode 100644 index 00000000..69bd6ce6 --- /dev/null +++ b/app/src/main/res/raw/keep.xml @@ -0,0 +1,3 @@ + + From d29852466e5d7103d30389b017a7d979a0960d52 Mon Sep 17 00:00:00 2001 From: Yu Jin Date: Wed, 4 Mar 2026 14:53:51 +0900 Subject: [PATCH 2/6] =?UTF-8?q?play-services-oss-licenses=20=EC=97=85?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=8A=B8=20=EB=B0=8F=20Activity=20=EC=95=88?= =?UTF-8?q?=EC=A0=95=ED=99=94=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 17 ++++++++++++++++- gradle/libs.versions.toml | 4 ++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 424817ce..599a78f3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -57,11 +57,26 @@ + + + + + @@ -232,4 +247,4 @@ - \ No newline at end of file + diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ddcb8252..684c6c83 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -53,8 +53,8 @@ google-services = "4.4.2" timber = "5.0.1" kotlin-android = "2.0.21" ksp = "2.0.21-1.0.28" -ossLicenses = "17.3.0" -ossLicensesPlugin = "0.10.6" +ossLicenses = "17.4.0" +ossLicensesPlugin = "0.10.10" glanceAppwidget = "1.1.1" glanceAppwidgetPreview = "1.1.1" glancePreview = "1.1.1" From 7ee0054d7232e776cebef829e816302189dcd3b6 Mon Sep 17 00:00:00 2001 From: Yu Jin Date: Wed, 4 Mar 2026 15:06:16 +0900 Subject: [PATCH 3/6] chore: change log --- .../com/eatssu/android/presentation/mypage/MyPageFragment.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/java/com/eatssu/android/presentation/mypage/MyPageFragment.kt b/app/src/main/java/com/eatssu/android/presentation/mypage/MyPageFragment.kt index 2b320540..a62fe52c 100644 --- a/app/src/main/java/com/eatssu/android/presentation/mypage/MyPageFragment.kt +++ b/app/src/main/java/com/eatssu/android/presentation/mypage/MyPageFragment.kt @@ -245,9 +245,7 @@ class MyPageFragment : BaseFragment(ScreenId.MYPAGE_MAIN) if (licensesId == 0 || metadataId == 0) { showErrorToast(getString(R.string.toast_oss_load_fail)) Timber.e( - "OSS raw resource missing. third_party_licenses=%s third_party_license_metadata=%s", - licensesId, - metadataId + "OSS raw resource missing. third_party_licenses=$licensesId third_party_license_metadata=$metadataId" ) return } From f0a2970e5157bbcd507f94d2e9ed4ada07952b35 Mon Sep 17 00:00:00 2001 From: Yu Jin Date: Wed, 4 Mar 2026 15:12:16 +0900 Subject: [PATCH 4/6] =?UTF-8?q?AGP=208.9.1=20=EB=B0=8F=20compileSdk=2036?= =?UTF-8?q?=EB=A1=9C=20=EC=97=85=EA=B7=B8=EB=A0=88=EC=9D=B4=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 2 +- core/common/build.gradle.kts | 4 ++-- core/design-system/build.gradle.kts | 4 ++-- gradle/libs.versions.toml | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5fb1be42..b705aadf 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,7 +15,7 @@ plugins { android { namespace = "com.eatssu.android" - compileSdk = 35 + compileSdk = 36 /** * 현재 팀 내 안드로이드 OS 버전 diff --git a/core/common/build.gradle.kts b/core/common/build.gradle.kts index a2a0fe9d..c597f9c6 100644 --- a/core/common/build.gradle.kts +++ b/core/common/build.gradle.kts @@ -7,7 +7,7 @@ plugins { android { namespace = "com.eatssu.common" - compileSdk = 35 + compileSdk = 36 defaultConfig { minSdk = 23 @@ -47,4 +47,4 @@ dependencies { implementation(libs.firebase.analytics) implementation(libs.kotlinx.serialization.json) -} \ No newline at end of file +} diff --git a/core/design-system/build.gradle.kts b/core/design-system/build.gradle.kts index 88ddcd2f..04f6cefb 100644 --- a/core/design-system/build.gradle.kts +++ b/core/design-system/build.gradle.kts @@ -6,7 +6,7 @@ plugins { android { namespace = "com.eatssu.design_system" - compileSdk = 35 + compileSdk = 36 defaultConfig { minSdk = 28 @@ -60,4 +60,4 @@ dependencies { //coil: 이미지 로딩 implementation(libs.coil.compose) -} \ No newline at end of file +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 684c6c83..531552c0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] accompanistAppcompatTheme = "0.16.0" activityCompose = "1.9.2" -android = "8.6.1" +android = "8.9.1" androidx-core = "1.7.0" androidx-appcompat = "1.6.1" hiltAndroidCompiler = "2.42" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 00064a0b..b9ea6bde 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Fri Feb 17 11:26:14 KST 2023 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME From 784d7d68c55096d26992fe10dd3ff16480d26e67 Mon Sep 17 00:00:00 2001 From: Yu Jin Date: Thu, 5 Mar 2026 09:18:41 +0900 Subject: [PATCH 5/6] chore: change date --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b9ea6bde..0537d762 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,4 +1,4 @@ -#Fri Feb 17 11:26:14 KST 2023 +#Wed Mar 04 15:19:02 KST 2026 distributionBase=GRADLE_USER_HOME distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip distributionPath=wrapper/dists From 2d8a016495b3305adfec1d6144dc52c9b46f1be9 Mon Sep 17 00:00:00 2001 From: Yu Jin Date: Thu, 5 Mar 2026 10:47:15 +0900 Subject: [PATCH 6/6] fix: stabilize build toolchain and CI --- .github/workflows/debug.yml | 9 ++++- .github/workflows/release.yml | 8 +++++ core/common/build.gradle.kts | 3 +- core/design-system/build.gradle.kts | 2 +- gradle/libs.versions.toml | 6 ++-- gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 45 ++++++++++++++++++++++++ 7 files changed, 67 insertions(+), 8 deletions(-) diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml index f0e89a5d..30fcc273 100644 --- a/.github/workflows/debug.yml +++ b/.github/workflows/debug.yml @@ -36,6 +36,14 @@ jobs: distribution: 'temurin' cache: gradle + - name: Set up Android SDK + uses: android-actions/setup-android@v3 + + - name: Install Android SDK (API 35) + run: | + sdkmanager --install "platform-tools" "platforms;android-35" "build-tools;35.0.0" + yes | sdkmanager --licenses + - name: Create Local Properties run: touch local.properties @@ -170,4 +178,3 @@ jobs: } env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_APP_DISTRIBUTION_WEBHOOK_URL }} - diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 81b85496..d5b0c048 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -91,6 +91,14 @@ jobs: distribution: 'temurin' cache: gradle + - name: Set up Android SDK + uses: android-actions/setup-android@v3 + + - name: Install Android SDK (API 35) + run: | + sdkmanager --install "platform-tools" "platforms;android-35" "build-tools;35.0.0" + yes | sdkmanager --licenses + - name: Grant execute permission for gradlew run: chmod +x gradlew diff --git a/core/common/build.gradle.kts b/core/common/build.gradle.kts index c597f9c6..a3d37fbc 100644 --- a/core/common/build.gradle.kts +++ b/core/common/build.gradle.kts @@ -2,12 +2,11 @@ plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.serialization) - alias(libs.plugins.google.services) } android { namespace = "com.eatssu.common" - compileSdk = 36 + compileSdk = 35 defaultConfig { minSdk = 23 diff --git a/core/design-system/build.gradle.kts b/core/design-system/build.gradle.kts index 04f6cefb..dff6b982 100644 --- a/core/design-system/build.gradle.kts +++ b/core/design-system/build.gradle.kts @@ -6,7 +6,7 @@ plugins { android { namespace = "com.eatssu.design_system" - compileSdk = 36 + compileSdk = 35 defaultConfig { minSdk = 28 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 531552c0..ddcb8252 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] accompanistAppcompatTheme = "0.16.0" activityCompose = "1.9.2" -android = "8.9.1" +android = "8.6.1" androidx-core = "1.7.0" androidx-appcompat = "1.6.1" hiltAndroidCompiler = "2.42" @@ -53,8 +53,8 @@ google-services = "4.4.2" timber = "5.0.1" kotlin-android = "2.0.21" ksp = "2.0.21-1.0.28" -ossLicenses = "17.4.0" -ossLicensesPlugin = "0.10.10" +ossLicenses = "17.3.0" +ossLicensesPlugin = "0.10.6" glanceAppwidget = "1.1.1" glanceAppwidgetPreview = "1.1.1" glancePreview = "1.1.1" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0537d762..1c9518b6 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Wed Mar 04 15:19:02 KST 2026 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 4f906e0c..6e768841 100755 --- a/gradlew +++ b/gradlew @@ -80,6 +80,51 @@ case "`uname`" in ;; esac +# Workaround: AGP's JdkImageTransform runs `jlink` and can fail on some +# GraalVM Community builds (e.g., missing `jdk.internal.vm.ci`). +# If we're on macOS and currently using GraalVM, prefer a non-Graal JDK 17 +# installation if one is available. +if [ "$darwin" = "true" ] ; then + _opencode_java_cmd="java" + if [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ] ; then + _opencode_java_cmd="$JAVA_HOME/bin/java" + fi + + "$_opencode_java_cmd" -version 2>&1 | grep -qi "GraalVM" >/dev/null 2>&1 + if [ $? -eq 0 ] ; then + _opencode_found_java_home="" + for _opencode_base in "$HOME/Library/Java/JavaVirtualMachines" "/Library/Java/JavaVirtualMachines" ; do + if [ -d "$_opencode_base" ] ; then + for _opencode_home in "$_opencode_base"/*/Contents/Home ; do + if [ -x "$_opencode_home/bin/java" ] ; then + "$_opencode_home/bin/java" -version 2>&1 | grep -qi "GraalVM" >/dev/null 2>&1 && continue + "$_opencode_home/bin/java" -version 2>&1 | grep -q '"17\.' >/dev/null 2>&1 || continue + _opencode_found_java_home="$_opencode_home" + break + fi + done + fi + [ -n "$_opencode_found_java_home" ] && break + done + + if [ -z "$_opencode_found_java_home" ] ; then + for _opencode_home in "/Applications/Android Studio.app/Contents/jbr/Contents/Home" ; do + if [ -x "$_opencode_home/bin/java" ] ; then + "$_opencode_home/bin/java" -version 2>&1 | grep -qi "GraalVM" >/dev/null 2>&1 && continue + "$_opencode_home/bin/java" -version 2>&1 | grep -q '"17\.' >/dev/null 2>&1 || continue + _opencode_found_java_home="$_opencode_home" + break + fi + done + fi + + if [ -n "$_opencode_found_java_home" ] ; then + JAVA_HOME="$_opencode_found_java_home" + export JAVA_HOME + fi + fi +fi + CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar