Skip to content

Commit 7010f7a

Browse files
committed
wip: android replay
1 parent 8e520c5 commit 7010f7a

File tree

5 files changed

+29
-4
lines changed

5 files changed

+29
-4
lines changed

Directory.Build.targets

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -187,15 +187,19 @@ Expected to exist:
187187
<Error Condition="!Exists('$(SentryAndroidRoot)')" Text="Couldn't find the Android root at $(SentryAndroidRoot)." />
188188
<Message Importance="High" Text="Building Sentry Android SDK." />
189189

190-
<Exec WorkingDirectory="$(SentryAndroidRoot)" EnvironmentVariables="JAVA_HOME=$(JAVA_HOME_17_X64)" Command="./gradlew -PsentryAndroidSdkName=sentry.native.android.unity :sentry-android-core:assembleRelease :sentry-android-ndk:assembleRelease :sentry:jar --no-daemon --stacktrace --warning-mode none" />
190+
<Exec WorkingDirectory="$(SentryAndroidRoot)" EnvironmentVariables="JAVA_HOME=$(JAVA_HOME_17_X64)" Command="./gradlew -PsentryAndroidSdkName=sentry.native.android.unity :sentry-android-core:assembleRelease :sentry-android-ndk:assembleRelease :sentry-android-replay:assembleRelease :sentry:jar --no-daemon --stacktrace --warning-mode none" />
191191

192192
<ItemGroup>
193193
<AndroidSdkArtifacts Include="$(SentryAndroidRoot)sentry-android-ndk/build/outputs/aar/sentry-android-ndk-release.aar" />
194194
<AndroidSdkArtifacts Include="$(SentryAndroidRoot)sentry-android-core/build/outputs/aar/sentry-android-core-release.aar" />
195+
<AndroidSdkArtifacts Include="$(SentryAndroidRoot)sentry-android-replay/build/outputs/aar/sentry-android-replay-release.aar" />
195196
</ItemGroup>
196-
197197
<Copy SourceFiles="@(AndroidSdkArtifacts)" DestinationFiles="@(AndroidSdkArtifacts->'$(SentryAndroidArtifactsDestination)%(RecursiveDir)%(Filename)%(Extension)')" />
198-
<Exec WorkingDirectory="$(SentryAndroidRoot)" Command="cp sentry/build/libs/sentry*.jar $(SentryAndroidArtifactsDestination)sentry.jar" />
198+
199+
<ItemGroup>
200+
<SentryJarArtifact Include="$(SentryAndroidRoot)/sentry/build/libs/sentry*.jar" />
201+
</ItemGroup>
202+
<Copy SourceFiles="@(SentryJarArtifact)" DestinationFiles="@(SentryJarArtifact->'$(SentryAndroidArtifactsDestination)sentry.jar')" />
199203

200204
<Error Condition="!Exists('$(SentryAndroidArtifactsDestination)')" Text="Failed to build the Android SDK." />
201205
</Target>

package-dev/Plugins/Android/proguard-sentry-unity.pro

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@
77
-keep class io.sentry.Scope { *; }
88
-keep class io.sentry.ScopeCallback { *; }
99
-keep class io.sentry.protocol.** { *; }
10+
11+
# TODO Copy proguard rules from sentry-android-* in msbuild
12+
-keep class io.sentry.** { *; }

src/Sentry.Unity.Editor/Android/AndroidManifestConfiguration.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ internal void ModifyManifest(string basePath)
179179
androidManifest.SetAutoAppLifecycleBreadcrumbs(false);
180180
androidManifest.SetAnr(false);
181181
androidManifest.SetPersistentScopeObserver(false);
182+
androidManifest.SetReplay(1.0, 1.0);
182183

183184
// TODO: All SentryOptions and create specific Android options
184185

@@ -444,6 +445,21 @@ internal void SetNdkScopeSync(bool enableNdkScopeSync)
444445

445446
internal void SetDebug(bool debug) => SetMetaData($"{SentryPrefix}.debug", debug ? "true" : "false");
446447

448+
internal void SetReplay(double? sessionSampleRate, double? errorSampleRate)
449+
{
450+
if (sessionSampleRate != null)
451+
{
452+
// https://github.com/getsentry/sentry-java/issues/3603
453+
// SetMetaData($"{SentryPrefix}.session-replay.session-sample-rate", sessionSampleRate.ToString());
454+
SetMetaData($"{SentryPrefix}.session-replay.session-sample-rate", "1.0");
455+
}
456+
if (errorSampleRate != null)
457+
{
458+
// SetMetaData($"{SentryPrefix}.session-replay.error-sample-rate", errorSampleRate.ToString());
459+
SetMetaData($"{SentryPrefix}.session-replay.error-sample-rate", "1.0");
460+
}
461+
}
462+
447463
// https://github.com/getsentry/sentry-java/blob/db4dfc92f202b1cefc48d019fdabe24d487db923/sentry/src/main/java/io/sentry/SentryLevel.java#L4-L9
448464
internal void SetLevel(SentryLevel level) =>
449465
SetMetaData($"{SentryPrefix}.debug.level", level switch

src/Sentry.Unity.Editor/Android/GradleSetup.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ internal class GradleSetup
1313

1414
public const string SdkDependencies = @"dependencies {
1515
implementation(name: 'sentry-android-ndk-release', ext:'aar')
16-
implementation(name: 'sentry-android-core-release', ext:'aar')";
16+
implementation(name: 'sentry-android-core-release', ext:'aar')
17+
implementation(name: 'sentry-android-replay-release', ext:'aar')";
1718
public const string DependenciesAddedMessage = "The Sentry Gradle dependencies have already been added.";
1819
private readonly string _unityLibraryGradle;
1920

test/Scripts.Tests/package-release.zip.snapshot

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ Plugins/Android/proguard-sentry-unity.pro
220220
Plugins/Android/proguard-sentry-unity.pro.meta
221221
Plugins/Android/Sentry~/sentry-android-core-release.aar
222222
Plugins/Android/Sentry~/sentry-android-ndk-release.aar
223+
Plugins/Android/Sentry~/sentry-android-replay-release.aar
223224
Plugins/Android/Sentry~/sentry.jar
224225
Plugins/Windows/Sentry.meta
225226
Plugins/Windows/Sentry/crashpad_handler.exe

0 commit comments

Comments
 (0)