From 254735da1c47bab6215c4f8ba958c149645d94ee Mon Sep 17 00:00:00 2001 From: GIancarlo Buenaflor Date: Mon, 10 Feb 2025 17:33:43 +0100 Subject: [PATCH 1/3] add error logging --- .../gradle/DerivedDataPathValueSource.kt | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/sentry-kotlin-multiplatform-gradle-plugin/src/main/java/io/sentry/kotlin/multiplatform/gradle/DerivedDataPathValueSource.kt b/sentry-kotlin-multiplatform-gradle-plugin/src/main/java/io/sentry/kotlin/multiplatform/gradle/DerivedDataPathValueSource.kt index 3269350e..f56b55d8 100644 --- a/sentry-kotlin-multiplatform-gradle-plugin/src/main/java/io/sentry/kotlin/multiplatform/gradle/DerivedDataPathValueSource.kt +++ b/sentry-kotlin-multiplatform-gradle-plugin/src/main/java/io/sentry/kotlin/multiplatform/gradle/DerivedDataPathValueSource.kt @@ -1,5 +1,6 @@ package io.sentry.kotlin.multiplatform.gradle +import io.sentry.kotlin.multiplatform.gradle.SentryPlugin.Companion.logger import org.gradle.api.provider.Property import org.gradle.api.provider.ValueSource import org.gradle.api.provider.ValueSourceParameters @@ -29,7 +30,9 @@ abstract class DerivedDataPathValueSource : override fun obtain(): String? { val buildDirOutput = ByteArrayOutputStream() - execOperations.exec { + val errOutput = ByteArrayOutputStream() + + val execOperations = execOperations.exec { it.commandLine = listOf( "xcodebuild", "-project", @@ -37,13 +40,27 @@ abstract class DerivedDataPathValueSource : "-showBuildSettings" ) it.standardOutput = buildDirOutput + it.errorOutput = errOutput } - val buildSettings = buildDirOutput.toString("UTF-8") - val buildDirMatch = buildDirRegex.find(buildSettings) - val buildDir = buildDirMatch?.groupValues?.get(1) - if (buildDir == null || buildDir.contains("DerivedData").not()) { + + if (execOperations.exitValue == 0) { + val buildSettings = buildDirOutput.toString("UTF-8") + val buildDirMatch = buildDirRegex.find(buildSettings) + val buildDir = buildDirMatch?.groupValues?.get(1) + if (buildDir == null || buildDir.contains("DerivedData").not()) { + return null + } + return buildDir.replace("/Build/Products", "") + } else { + logger.warn( + "Failed to retrieve derived data path. xcodebuild command failed. Error output: ${ + errOutput.toString( + Charsets.UTF_8 + ) + }" + ) return null } - return buildDir.replace("/Build/Products", "") } } + From 9d03d7f809d71b05f52910e79f2c06d298229fa9 Mon Sep 17 00:00:00 2001 From: GIancarlo Buenaflor Date: Mon, 10 Feb 2025 17:38:29 +0100 Subject: [PATCH 2/3] update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28bf4727..867218ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Fixes - [Gradle Plugin]: Architecture folder name missmatch when using SPM and framework path searching ([#320](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/320)) +- [Gradle Plugin]: Check exit value when executing `xcodebuild` command ([#326](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/326)) ### Dependencies From 7aac04c473a0de95f29d6bd2c73adc2fe310a16c Mon Sep 17 00:00:00 2001 From: GIancarlo Buenaflor Date: Mon, 10 Feb 2025 17:49:53 +0100 Subject: [PATCH 3/3] formatting: --- .../multiplatform/gradle/DerivedDataPathValueSource.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sentry-kotlin-multiplatform-gradle-plugin/src/main/java/io/sentry/kotlin/multiplatform/gradle/DerivedDataPathValueSource.kt b/sentry-kotlin-multiplatform-gradle-plugin/src/main/java/io/sentry/kotlin/multiplatform/gradle/DerivedDataPathValueSource.kt index f56b55d8..b1c5aab1 100644 --- a/sentry-kotlin-multiplatform-gradle-plugin/src/main/java/io/sentry/kotlin/multiplatform/gradle/DerivedDataPathValueSource.kt +++ b/sentry-kotlin-multiplatform-gradle-plugin/src/main/java/io/sentry/kotlin/multiplatform/gradle/DerivedDataPathValueSource.kt @@ -54,13 +54,12 @@ abstract class DerivedDataPathValueSource : } else { logger.warn( "Failed to retrieve derived data path. xcodebuild command failed. Error output: ${ - errOutput.toString( - Charsets.UTF_8 - ) + errOutput.toString( + Charsets.UTF_8 + ) }" ) return null } } } -