From 36ae15a21911256e7ee140ca18f8af32022beaf1 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 13 Feb 2025 03:04:02 +0000 Subject: [PATCH 01/11] chore: update modules/sentry-java to 8.2.0 --- CHANGELOG.md | 3 +++ modules/sentry-java | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 87b170416..b9df88052 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,9 @@ - Bump .NET SDK from v5.0.1 to v5.1.0 ([#2005](https://github.com/getsentry/sentry-unity/pull/2005)) - [changelog](https://github.com/getsentry/sentry-dotnet/blob/main/CHANGELOG.md#510) - [diff](https://github.com/getsentry/sentry-dotnet/compare/5.0.1...5.1.0) +- Bump Java SDK from v7.20.0 to v8.2.0 ([#2014](https://github.com/getsentry/sentry-unity/pull/2014)) + - [changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#820) + - [diff](https://github.com/getsentry/sentry-java/compare/7.20.0...8.2.0) ## 3.0.0-beta.1 diff --git a/modules/sentry-java b/modules/sentry-java index 2de45ebb0..f2910984a 160000 --- a/modules/sentry-java +++ b/modules/sentry-java @@ -1 +1 @@ -Subproject commit 2de45ebb088ed5802dcac00781cbaca7e54ed9d9 +Subproject commit f2910984ad5905276410aac83fc78a311dc8f28c From d40f1991afcba3ba7048edce6829efefc6d38939 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Thu, 13 Feb 2025 16:56:20 +0100 Subject: [PATCH 02/11] fixed fetching sentry-native-ndk --- Directory.Build.targets | 49 ++++++++++++++++++- .../Android/GradleSetup.cs | 3 +- 2 files changed, 49 insertions(+), 3 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index e3e5b1f4c..97f7c4d33 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -16,6 +16,7 @@ $(SentryArtifactsDestination)iOS/Sentry.xcframework~/ $(SentryArtifactsDestination)macOS/Sentry/ + $(RepoRoot)modules/sentry-java-cache/ $(RepoRoot)modules/sentry-java/ $(SentryArtifactsDestination)Android/Sentry~/ @@ -183,8 +184,10 @@ Expected to exist: - + @@ -198,6 +201,48 @@ Expected to exist: + + + + $([System.IO.File]::ReadAllText("$(RepoRoot)modules/sentry-java/buildSrc/src/main/java/Config.kt")) + $([System.Text.RegularExpressions.Regex]::Match($(PropertiesContent), 'sentryNativeNdk\s*=\s*"[^"]+:([0-9]+\.[0-9]+\.[0-9]+)"').Groups[1].Value) + + + + + + + + + + + + + + + + + + + + + + + + + + $([System.IO.File]::ReadAllText("$(RepoRoot)modules/sentry-java/buildSrc/src/main/java/Config.kt")) + $([System.Text.RegularExpressions.Regex]::Match($(PropertiesContent), 'sentryNativeNdk\s*=\s*"[^"]+:([0-9]+\.[0-9]+\.[0-9]+)"').Groups[1].Value) + + + + diff --git a/src/Sentry.Unity.Editor/Android/GradleSetup.cs b/src/Sentry.Unity.Editor/Android/GradleSetup.cs index cfee30120..53a7cd5fa 100644 --- a/src/Sentry.Unity.Editor/Android/GradleSetup.cs +++ b/src/Sentry.Unity.Editor/Android/GradleSetup.cs @@ -13,7 +13,8 @@ internal class GradleSetup public const string SdkDependencies = @"dependencies { implementation(name: 'sentry-android-ndk-release', ext:'aar') - implementation(name: 'sentry-android-core-release', ext:'aar')"; + implementation(name: 'sentry-android-core-release', ext:'aar') + implementation(name: 'sentry-native-ndk-release', ext:'aar')"; public const string DependenciesAddedMessage = "The Sentry Gradle dependencies have already been added."; private readonly string _unityLibraryGradle; From 6f2d1aca9d3d0d7bcba760fb110cc9da54962129 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Fri, 14 Feb 2025 10:04:00 +0100 Subject: [PATCH 03/11] finalizing pulling native ndk from releases --- .craft.yml | 4 ---- .github/workflows/build.yml | 8 -------- .github/workflows/sdk.yml | 9 --------- .gitignore | 3 ++- Directory.Build.targets | 18 +++++++++--------- test/Scripts.Tests/test-pack-contents.ps1 | 6 ------ 6 files changed, 11 insertions(+), 37 deletions(-) diff --git a/.craft.yml b/.craft.yml index 1b1d08956..6caa218c4 100644 --- a/.craft.yml +++ b/.craft.yml @@ -1,10 +1,6 @@ minVersion: 0.24.0 changelogPolicy: auto targets: - - name: symbol-collector - includeNames: /libsentry(-android)?\.so/ - batchType: android - bundleIdPrefix: sentry-unity-android-ndk- - name: upm releaseRepoOwner: getsentry releaseRepoName: unity diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c06c876df..8ed847a80 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,13 +72,6 @@ jobs: path: package-dev/Plugins/Android wait-timeout: 3600 - - name: Download Android Libraries - uses: vaind/download-artifact@e7141b6a94ef28aa3d828b52830cfa1f406a1848 - with: - name: Android-libraries - path: modules/sentry-java/sentry-android-ndk/build/intermediates/merged_native_libs/release/out/lib - wait-timeout: 3600 - - name: Download Linux SDK uses: vaind/download-artifact@e7141b6a94ef28aa3d828b52830cfa1f406a1848 with: @@ -119,7 +112,6 @@ jobs: if-no-files-found: error path: | package-release.zip - modules/sentry-java/sentry-android-ndk/build/intermediates/merged_native_libs/release/out/lib/* - name: Run Unity tests (playmode) run: | diff --git a/.github/workflows/sdk.yml b/.github/workflows/sdk.yml index 14b419a42..a63d11880 100644 --- a/.github/workflows/sdk.yml +++ b/.github/workflows/sdk.yml @@ -47,7 +47,6 @@ jobs: # hash of package/package.json for cache busting on release builds (version bump) path: | package-dev/Plugins - modules/sentry-java/sentry-android-ndk/build/intermediates/merged_native_libs/release/out/lib key: sdk=${{ inputs.target }}-${{ hashFiles('submodules-status', 'package/package.json', 'Directory.Build.targets', 'sdk-static/**') }} - name: Installing Linux Dependencies @@ -76,11 +75,3 @@ jobs: path: package-dev/Plugins/${{ inputs.target }} # Lower retention period - we only need this to retry CI. retention-days: 14 - - - uses: actions/upload-artifact@v4 - if: ${{ inputs.target == 'Android' }} - with: - name: ${{ inputs.target }}-libraries - path: modules/sentry-java/sentry-android-ndk/build/intermediates/merged_native_libs/release/out/lib/* - # Lower retention period - we only need this to retry CI. - retention-days: 14 diff --git a/.gitignore b/.gitignore index a026d41a8..f21b282c6 100644 --- a/.gitignore +++ b/.gitignore @@ -31,8 +31,9 @@ package-dev/**/TestSentryOptions.json package-dev/Tests/Editor/TestFiles/ package-dev/Plugins/*/Sentry/crashpad_handler* -# Download cache for Cocoa SDK +# Download cache for native SDKs modules/sentry-cocoa +modules/sentry-native-ndk # Adding .meta to control target platforms for all of our DLLs !package-dev/**/Sentry*.dll.meta diff --git a/Directory.Build.targets b/Directory.Build.targets index 97f7c4d33..3af8fd969 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -16,7 +16,7 @@ $(SentryArtifactsDestination)iOS/Sentry.xcframework~/ $(SentryArtifactsDestination)macOS/Sentry/ - $(RepoRoot)modules/sentry-java-cache/ + $(RepoRoot)modules/sentry-native-ndk/ $(RepoRoot)modules/sentry-java/ $(SentryArtifactsDestination)Android/Sentry~/ @@ -210,24 +210,24 @@ Expected to exist: + Condition="!Exists('$(SentryNativeNdkCache)sentry-native-ndk-$(NativeVersion).zip')" + Directories="$(SentryNativeNdkCache)" /> - + + Condition="!Exists('$(SentryNativeNdkCache)sentry-native-ndk-$(NativeVersion).zip')" + Command="curl -L https://github.com/getsentry/sentry-native/releases/download/$(NativeVersion)/sentry-native-ndk-$(NativeVersion).zip -o $(SentryNativeNdkCache)sentry-native-ndk-$(NativeVersion).zip" /> + Condition="!Exists('$(SentryNativeNdkCache)sentry-native-ndk-$(NativeVersion)')" + Command="unzip -o $(SentryNativeNdkCache)sentry-native-ndk-$(NativeVersion).zip -d $(SentryNativeNdkCache)" /> - + diff --git a/test/Scripts.Tests/test-pack-contents.ps1 b/test/Scripts.Tests/test-pack-contents.ps1 index 44b91bea4..321220b28 100755 --- a/test/Scripts.Tests/test-pack-contents.ps1 +++ b/test/Scripts.Tests/test-pack-contents.ps1 @@ -57,12 +57,6 @@ try { $zip.Dispose() } -$androidLibsDir = "$projectRoot/modules/sentry-java/sentry-android-ndk/build/intermediates/merged_native_libs/release/out/lib/" -if (-not(Test-Path -Path $androidLibsDir)) { - Write-Host "Android native libs not found in: '$androidLibsDir'" - exit 1 -} - $androidLibs = Get-ChildItem -Recurse $androidLibsDir | ForEach-Object {$_.Directory.Name + "/" + $_.Name} $result = Compare-Object $androidLibs (Get-Content "$PSScriptRoot/android-libs.snapshot") if ($result.count -eq 0) { From 0d3d66e8fc498aaf8a2fa4dab4cec2ea0cf32b41 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Fri, 14 Feb 2025 10:46:28 +0100 Subject: [PATCH 04/11] updated snapshot --- test/Scripts.Tests/package-release.zip.snapshot | 1 + 1 file changed, 1 insertion(+) diff --git a/test/Scripts.Tests/package-release.zip.snapshot b/test/Scripts.Tests/package-release.zip.snapshot index f0aa97492..82155f4ee 100644 --- a/test/Scripts.Tests/package-release.zip.snapshot +++ b/test/Scripts.Tests/package-release.zip.snapshot @@ -1483,6 +1483,7 @@ Plugins/Android/proguard-sentry-unity.pro Plugins/Android/proguard-sentry-unity.pro.meta Plugins/Android/Sentry~/sentry-android-core-release.aar Plugins/Android/Sentry~/sentry-android-ndk-release.aar +Plugins/Android/Sentry~/sentry-native-ndk-release.aar Plugins/Android/Sentry~/sentry.jar Plugins/Windows/Sentry.meta Plugins/Windows/Sentry/crashpad_handler.exe From ba387e4207b8d85973ab7fe0b1689579594ec85b Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Fri, 14 Feb 2025 11:29:43 +0100 Subject: [PATCH 05/11] test --- .../Android/InsertIntoScope/build.gradle_test_1_expected.txt | 1 + .../Android/InsertIntoScope/build.gradle_test_2_expected.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/test/Sentry.Unity.Editor.Tests/TestFiles/Android/InsertIntoScope/build.gradle_test_1_expected.txt b/test/Sentry.Unity.Editor.Tests/TestFiles/Android/InsertIntoScope/build.gradle_test_1_expected.txt index 897812767..eecbc1dbe 100644 --- a/test/Sentry.Unity.Editor.Tests/TestFiles/Android/InsertIntoScope/build.gradle_test_1_expected.txt +++ b/test/Sentry.Unity.Editor.Tests/TestFiles/Android/InsertIntoScope/build.gradle_test_1_expected.txt @@ -13,6 +13,7 @@ repositories { dependencies { implementation(name: 'sentry-android-ndk-release', ext:'aar') implementation(name: 'sentry-android-core-release', ext:'aar') + implementation(name: 'sentry-native-ndk-release', ext:'aar') } android { diff --git a/test/Sentry.Unity.Editor.Tests/TestFiles/Android/InsertIntoScope/build.gradle_test_2_expected.txt b/test/Sentry.Unity.Editor.Tests/TestFiles/Android/InsertIntoScope/build.gradle_test_2_expected.txt index 52d56e6ca..b733de034 100644 --- a/test/Sentry.Unity.Editor.Tests/TestFiles/Android/InsertIntoScope/build.gradle_test_2_expected.txt +++ b/test/Sentry.Unity.Editor.Tests/TestFiles/Android/InsertIntoScope/build.gradle_test_2_expected.txt @@ -35,6 +35,7 @@ dependencies { dependencies { implementation(name: 'sentry-android-ndk-release', ext:'aar') implementation(name: 'sentry-android-core-release', ext:'aar') + implementation(name: 'sentry-native-ndk-release', ext:'aar') } android { From 4288ef43be347aeae21eec6b9054e1578df0c805 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Fri, 14 Feb 2025 11:47:50 +0100 Subject: [PATCH 06/11] . --- src/Sentry.Unity.Editor/Android/AndroidManifestConfiguration.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Sentry.Unity.Editor/Android/AndroidManifestConfiguration.cs b/src/Sentry.Unity.Editor/Android/AndroidManifestConfiguration.cs index 19b5bbfaf..508cce412 100644 --- a/src/Sentry.Unity.Editor/Android/AndroidManifestConfiguration.cs +++ b/src/Sentry.Unity.Editor/Android/AndroidManifestConfiguration.cs @@ -199,6 +199,7 @@ internal void ModifyManifest(string basePath) // // androidManifest.SetSendDefaultPii(options.SendDefaultPii); // Note: doesn't work - produces a blank (white) screenshot + // _logger.LogDebug("Setting AttachScreenshot: {0}", _options.AttachScreenshot); // androidManifest.SetAttachScreenshot(_options.AttachScreenshot); androidManifest.SetAttachScreenshot(false); From 9909f0d207f7d1a23138652fbc3675a46779cde8 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Fri, 14 Feb 2025 11:48:07 +0100 Subject: [PATCH 07/11] .. --- src/Sentry.Unity.Editor/Android/AndroidManifestConfiguration.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Sentry.Unity.Editor/Android/AndroidManifestConfiguration.cs b/src/Sentry.Unity.Editor/Android/AndroidManifestConfiguration.cs index 508cce412..19b5bbfaf 100644 --- a/src/Sentry.Unity.Editor/Android/AndroidManifestConfiguration.cs +++ b/src/Sentry.Unity.Editor/Android/AndroidManifestConfiguration.cs @@ -199,7 +199,6 @@ internal void ModifyManifest(string basePath) // // androidManifest.SetSendDefaultPii(options.SendDefaultPii); // Note: doesn't work - produces a blank (white) screenshot - // _logger.LogDebug("Setting AttachScreenshot: {0}", _options.AttachScreenshot); // androidManifest.SetAttachScreenshot(_options.AttachScreenshot); androidManifest.SetAttachScreenshot(false); From 6c6180ae2453848790ac9f8ac1dc9bc8dd6725f4 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Fri, 14 Feb 2025 13:05:11 +0100 Subject: [PATCH 08/11] put min sdk version workaround in builder --- test/Scripts.Integration.Test/Editor/Builder.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/Scripts.Integration.Test/Editor/Builder.cs b/test/Scripts.Integration.Test/Editor/Builder.cs index dcd79f599..5d870f3eb 100644 --- a/test/Scripts.Integration.Test/Editor/Builder.cs +++ b/test/Scripts.Integration.Test/Editor/Builder.cs @@ -78,6 +78,11 @@ public static void BuildIl2CPPPlayer(BuildTarget target, BuildTargetGroup group, Debug.Log($"Builder: Creating output directory at '{outputDir}'"); Directory.CreateDirectory(outputDir); +#if !UNITY_2020_1_OR_NEWER + Debug.Log("Builder: Raising the minSdkVersion to 21"); + PlayerSettings.Android.minSdkVersion = AndroidSdkVersions.AndroidApiLevel21; +#endif + Debug.Log("Builder: Enabling minify"); #if UNITY_2020_1_OR_NEWER PlayerSettings.Android.minifyDebug = PlayerSettings.Android.minifyRelease = true; From 109c43cac64c6f14528a2e5c31594a03ee9c457d Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Fri, 14 Feb 2025 13:05:23 +0100 Subject: [PATCH 09/11] added workaround to samples --- .../Assets/Editor/GradleProjectUpdater.cs | 17 +++++++++++++++++ .../Assets/Editor/GradleProjectUpdater.cs.meta | 11 +++++++++++ 2 files changed, 28 insertions(+) create mode 100644 samples/unity-of-bugs/Assets/Editor/GradleProjectUpdater.cs create mode 100644 samples/unity-of-bugs/Assets/Editor/GradleProjectUpdater.cs.meta diff --git a/samples/unity-of-bugs/Assets/Editor/GradleProjectUpdater.cs b/samples/unity-of-bugs/Assets/Editor/GradleProjectUpdater.cs new file mode 100644 index 000000000..4fbbfbbc8 --- /dev/null +++ b/samples/unity-of-bugs/Assets/Editor/GradleProjectUpdater.cs @@ -0,0 +1,17 @@ +#if UNITY_ANDROID && !UNITY_2020_1_OR_NEWER +using UnityEditor; +using UnityEditor.Callbacks; +using UnityEngine; + +namespace Editor +{ + public class GradleProjectUpdater : MonoBehaviour + { + [PostProcessBuild] + public static void OnPostProcessBuild(BuildTarget target, string pathToBuildProject) + { + PlayerSettings.Android.minSdkVersion = AndroidSdkVersions.AndroidApiLevel21; + } + } +} +#endif diff --git a/samples/unity-of-bugs/Assets/Editor/GradleProjectUpdater.cs.meta b/samples/unity-of-bugs/Assets/Editor/GradleProjectUpdater.cs.meta new file mode 100644 index 000000000..8671a3c80 --- /dev/null +++ b/samples/unity-of-bugs/Assets/Editor/GradleProjectUpdater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3a7a819ab7bd44d38a48c5d084a6aee0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From e9108501d61423abef538a3d11ad7507b3d1d2fb Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Fri, 14 Feb 2025 13:06:20 +0100 Subject: [PATCH 10/11] added explainer --- samples/unity-of-bugs/Assets/Editor/GradleProjectUpdater.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/samples/unity-of-bugs/Assets/Editor/GradleProjectUpdater.cs b/samples/unity-of-bugs/Assets/Editor/GradleProjectUpdater.cs index 4fbbfbbc8..97a821eeb 100644 --- a/samples/unity-of-bugs/Assets/Editor/GradleProjectUpdater.cs +++ b/samples/unity-of-bugs/Assets/Editor/GradleProjectUpdater.cs @@ -5,6 +5,10 @@ namespace Editor { + /// + /// With version v8 of the sentry-java SDK the min-sdk-version got raised to 21 + /// The default min-version for Unity 2019 builds is 19 + /// public class GradleProjectUpdater : MonoBehaviour { [PostProcessBuild] From 91b5f6e473b7d9524a74995a09f06cea67028df4 Mon Sep 17 00:00:00 2001 From: Stefan Jandl Date: Fri, 14 Feb 2025 15:19:52 +0100 Subject: [PATCH 11/11] Apply suggestions from code review Co-authored-by: Ivan Dlugos <6349682+vaind@users.noreply.github.com> --- Directory.Build.targets | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Directory.Build.targets b/Directory.Build.targets index 3af8fd969..f97df596b 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -205,7 +205,7 @@ Expected to exist: $([System.IO.File]::ReadAllText("$(RepoRoot)modules/sentry-java/buildSrc/src/main/java/Config.kt")) - $([System.Text.RegularExpressions.Regex]::Match($(PropertiesContent), 'sentryNativeNdk\s*=\s*"[^"]+:([0-9]+\.[0-9]+\.[0-9]+)"').Groups[1].Value) + $([System.Text.RegularExpressions.Regex]::Match($(PropertiesContent), 'sentryNativeNdk\s*=\s*"[^"]+:([^"]+)"').Groups[1].Value) @@ -238,7 +238,7 @@ Expected to exist: $([System.IO.File]::ReadAllText("$(RepoRoot)modules/sentry-java/buildSrc/src/main/java/Config.kt")) - $([System.Text.RegularExpressions.Regex]::Match($(PropertiesContent), 'sentryNativeNdk\s*=\s*"[^"]+:([0-9]+\.[0-9]+\.[0-9]+)"').Groups[1].Value) + $([System.Text.RegularExpressions.Regex]::Match($(PropertiesContent), 'sentryNativeNdk\s*=\s*"[^"]+:([^"]+)"').Groups[1].Value)