197 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
		
		
			
		
	
	
			197 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| 
								 | 
							
								<?xml version="1.0" encoding="utf-8"?>
							 | 
						||
| 
								 | 
							
								<root xmlns:android="http://schemas.android.com/apk/res/android">
							 | 
						||
| 
								 | 
							
								    <init>
							 | 
						||
| 
								 | 
							
								        <log text="Sentry SDK Android UPL initialization"/>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <setBoolFromProperty result="bUploadSymbolsAutomatically" ini="Engine" section="/Script/Sentry.SentrySettings" property="UploadSymbolsAutomatically" default="false" />
							 | 
						||
| 
								 | 
							
								        <setBoolFromProperty result="bIncludeSources" ini="Engine" section="/Script/Sentry.SentrySettings" property="IncludeSources" default="false" />
							 | 
						||
| 
								 | 
							
								        <setBoolFromProperty result="bUseLegacyGradlePlugin" ini="Engine" section="/Script/Sentry.SentrySettings" property="UseLegacyGradlePlugin" default="false" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <setStringFromProperty result="enabledBuildPlatforms" ini="Engine" section="/Script/Sentry.SentrySettings" property="EnableBuildPlatforms" default=""/>
							 | 
						||
| 
								 | 
							
								        <setStringFromProperty result="enabledBuildConfigurations" ini="Engine" section="/Script/Sentry.SentrySettings" property="EnableBuildConfigurations" default=""/>
							 | 
						||
| 
								 | 
							
								        <setStringFromProperty result="enabledBuildTargetTypes" ini="Engine" section="/Script/Sentry.SentrySettings" property="EnableBuildTargets" default=""/>
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								        <setBoolContains result="bCurrentPlatformDisabled" source="$S(enabledBuildPlatforms)" find="bEnableAndroid=False"/>
							 | 
						||
| 
								 | 
							
								        <setBoolContains result="bCurrentConfigurationDisabled" source="$S(enabledBuildConfigurations)" find="bEnable$S(Configuration)=False"/>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <setBoolOr result="bSkipUpload" arg1="$B(bCurrentPlatformDisabled)" arg2="$B(bCurrentConfigurationDisabled)"/>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <if condition="bSkipUpload">
							 | 
						||
| 
								 | 
							
								            <true>
							 | 
						||
| 
								 | 
							
								                <setBool result="bUploadSymbols" value="false"/>
							 | 
						||
| 
								 | 
							
								            </true>
							 | 
						||
| 
								 | 
							
								            <false>
							 | 
						||
| 
								 | 
							
								                <setBool result="bUploadSymbols" value="$B(bUploadSymbolsAutomatically)"/>
							 | 
						||
| 
								 | 
							
								            </false>
							 | 
						||
| 
								 | 
							
								        </if>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <setBoolIsEqual result="bEngineMajorVersionEqual5" arg1="$I(EngineMajorVersion)" arg2="5" />
							 | 
						||
| 
								 | 
							
								        <setBoolIsGreaterEqual result="bEngineMinorVersionGreaterEqual5" arg1="$I(EngineMinorVersion)" arg2="5" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <!-- In UE 5.5 and newer there's no need to bump the default Gradle version (8.7+) as it's compatible with Sentry gradle plugin anyway -->
							 | 
						||
| 
								 | 
							
								        <setBoolAnd result="bHasModernGradle" arg1="$B(bEngineMajorVersionEqual5)" arg2="$B(bEngineMinorVersionGreaterEqual5)"/>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <if condition="bHasModernGradle">
							 | 
						||
| 
								 | 
							
								            <true>
							 | 
						||
| 
								 | 
							
								                <log text="In UE 5.5 and newer using legacy Sentry gradle plugin in not supported."/>
							 | 
						||
| 
								 | 
							
								                <setBool result="bUseLegacyGradlePlugin" value="false"/>
							 | 
						||
| 
								 | 
							
								            </true>
							 | 
						||
| 
								 | 
							
								        </if>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <setBoolOr result="bSkipGradleOverride" arg1="$B(bUseLegacyGradlePlugin)" arg2="$B(bHasModernGradle)"/>
							 | 
						||
| 
								 | 
							
								    </init>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <prebuildCopies>
							 | 
						||
| 
								 | 
							
								        <copyDir src="$S(PluginDir)/Private/Android/Java" dst="$S(BuildDir)/src/io/sentry/unreal" />
							 | 
						||
| 
								 | 
							
								        <copyFile src="$S(PluginDir)/../ThirdParty/Android/sentry.jar" dst="$S(BuildDir)/gradle/app/libs/sentry.jar" />
							 | 
						||
| 
								 | 
							
								        <copyFile src="$S(PluginDir)/../ThirdParty/Android/sentry-android-core-release.aar" dst="$S(BuildDir)/gradle/app/libs/sentry-android-core-release.aar" />
							 | 
						||
| 
								 | 
							
								        <copyFile src="$S(PluginDir)/../ThirdParty/Android/sentry-android-ndk-release.aar" dst="$S(BuildDir)/gradle/app/libs/sentry-android-ndk-release.aar" />
							 | 
						||
| 
								 | 
							
								        <if condition="bUploadSymbols">
							 | 
						||
| 
								 | 
							
								            <true>
							 | 
						||
| 
								 | 
							
								                <copyFile src="$S(ProjectDir)/sentry.properties" dst="$S(BuildDir)/gradle/sentry.properties" />
							 | 
						||
| 
								 | 
							
								                <copyFile src="$S(ProjectDir)/sentry.properties" dst="$S(BuildDir)/gradle/AFSProject/app/sentry.properties" />
							 | 
						||
| 
								 | 
							
								                <if condition="bSkipGradleOverride">
							 | 
						||
| 
								 | 
							
								                    <false>
							 | 
						||
| 
								 | 
							
								                        <log text="Modifying engine's Gradle version used by replacing gradle-wrapper.properties"/>
							 | 
						||
| 
								 | 
							
								                        <copyFile src="$S(PluginDir)/../../Gradle/gradle-wrapper.properties" dst="$S(BuildDir)/gradle/gradle/wrapper/gradle-wrapper.properties" />
							 | 
						||
| 
								 | 
							
								                    </false>
							 | 
						||
| 
								 | 
							
								                </if>
							 | 
						||
| 
								 | 
							
								            </true>
							 | 
						||
| 
								 | 
							
								        </if>
							 | 
						||
| 
								 | 
							
								    </prebuildCopies>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <androidManifestUpdates>
							 | 
						||
| 
								 | 
							
								        <addElements tag="application">
							 | 
						||
| 
								 | 
							
								            <meta-data android:name="io.sentry.auto-init" android:value="false"/>
							 | 
						||
| 
								 | 
							
								            <meta-data android:name="io.sentry.sdk.name" android:value="sentry.java.android.unreal"/>
							 | 
						||
| 
								 | 
							
								        </addElements>
							 | 
						||
| 
								 | 
							
								    </androidManifestUpdates>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <gradleProperties>
							 | 
						||
| 
								 | 
							
								        <insert>
							 | 
						||
| 
								 | 
							
								            android.useAndroidX=true
							 | 
						||
| 
								 | 
							
								            android.enableJetifier=true
							 | 
						||
| 
								 | 
							
								        </insert>
							 | 
						||
| 
								 | 
							
								    </gradleProperties>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <proguardAdditions>
							 | 
						||
| 
								 | 
							
								        <insert>
							 | 
						||
| 
								 | 
							
								            -dontwarn io.sentry.unreal.**
							 | 
						||
| 
								 | 
							
								            -keep class io.sentry.** { *; }
							 | 
						||
| 
								 | 
							
								            -keep interface io.sentry.** { *; }
							 | 
						||
| 
								 | 
							
								        </insert>
							 | 
						||
| 
								 | 
							
								    </proguardAdditions>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <buildGradleAdditions>
							 | 
						||
| 
								 | 
							
								        <if condition="bUploadSymbols">
							 | 
						||
| 
								 | 
							
								            <true>
							 | 
						||
| 
								 | 
							
								                <insert>
							 | 
						||
| 
								 | 
							
								                    apply plugin: 'io.sentry.android.gradle'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    sentry {
							 | 
						||
| 
								 | 
							
								                        uploadNativeSymbols = true
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                </insert>
							 | 
						||
| 
								 | 
							
								                <if condition="bUseLegacyGradlePlugin">
							 | 
						||
| 
								 | 
							
								                    <false>
							 | 
						||
| 
								 | 
							
								                        <insert>
							 | 
						||
| 
								 | 
							
								                            sentry {
							 | 
						||
| 
								 | 
							
								                                autoInstallation {
							 | 
						||
| 
								 | 
							
								                                    enabled = false
							 | 
						||
| 
								 | 
							
								                                }
							 | 
						||
| 
								 | 
							
								                            }
							 | 
						||
| 
								 | 
							
								                        </insert>
							 | 
						||
| 
								 | 
							
								                    </false>
							 | 
						||
| 
								 | 
							
								                </if>
							 | 
						||
| 
								 | 
							
								                <if condition="bIncludeSources">
							 | 
						||
| 
								 | 
							
								                    <true>
							 | 
						||
| 
								 | 
							
								                        <insert>
							 | 
						||
| 
								 | 
							
								                            sentry {
							 | 
						||
| 
								 | 
							
								                                includeNativeSources = true
							 | 
						||
| 
								 | 
							
								                            }
							 | 
						||
| 
								 | 
							
								                        </insert>
							 | 
						||
| 
								 | 
							
								                    </true>
							 | 
						||
| 
								 | 
							
								                </if>
							 | 
						||
| 
								 | 
							
								            </true>
							 | 
						||
| 
								 | 
							
								        </if>
							 | 
						||
| 
								 | 
							
								    </buildGradleAdditions>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <buildGradleAdditions>
							 | 
						||
| 
								 | 
							
								        <insert>
							 | 
						||
| 
								 | 
							
								            android {
							 | 
						||
| 
								 | 
							
								                compileOptions {
							 | 
						||
| 
								 | 
							
								                    targetCompatibility JavaVersion.VERSION_1_8
							 | 
						||
| 
								 | 
							
								                    sourceCompatibility JavaVersion.VERSION_1_8
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            dependencies {
							 | 
						||
| 
								 | 
							
								                implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'])
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            repositories {
							 | 
						||
| 
								 | 
							
								                mavenCentral()
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        </insert>
							 | 
						||
| 
								 | 
							
								    </buildGradleAdditions>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <baseBuildGradleAdditions>
							 | 
						||
| 
								 | 
							
								        <insert>
							 | 
						||
| 
								 | 
							
								            allprojects {
							 | 
						||
| 
								 | 
							
								                def mappings = [
							 | 
						||
| 
								 | 
							
								                    'android.arch.lifecycle.Lifecycle': 'androidx.lifecycle.Lifecycle',
							 | 
						||
| 
								 | 
							
								                    'android.arch.lifecycle.LifecycleObserver': 'androidx.lifecycle.LifecycleObserver',
							 | 
						||
| 
								 | 
							
								                    'android.arch.lifecycle.OnLifecycleEvent': 'androidx.lifecycle.OnLifecycleEvent',
							 | 
						||
| 
								 | 
							
								                    'android.arch.lifecycle.ProcessLifecycleOwner': 'androidx.lifecycle.ProcessLifecycleOwner',
							 | 
						||
| 
								 | 
							
								                    'android.arch.lifecycle': 'androidx.lifecycle',
							 | 
						||
| 
								 | 
							
								                    'android.support.annotation': 'androidx.annotation',
							 | 
						||
| 
								 | 
							
								                    'android.support.v13.app.FragmentCompat': 'androidx.legacy.app.FragmentCompat',
							 | 
						||
| 
								 | 
							
								                    'android.support.v4.app.ActivityCompat': 'androidx.core.app.ActivityCompat',
							 | 
						||
| 
								 | 
							
								                    'android.support.v4.app.NotificationCompat': 'androidx.core.app.NotificationCompat',
							 | 
						||
| 
								 | 
							
								                    'android.support.v4.app.NotificationManagerCompat': 'androidx.core.app.NotificationManagerCompat',
							 | 
						||
| 
								 | 
							
								                    'android.support.v4.content.ContextCompat': 'androidx.core.content.ContextCompat',
							 | 
						||
| 
								 | 
							
								                    'android.support.v4.content.FileProvider': 'androidx.core.content.FileProvider',
							 | 
						||
| 
								 | 
							
								                ]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                beforeEvaluate { project ->
							 | 
						||
| 
								 | 
							
								                    project.rootProject.projectDir.traverse(type: groovy.io.FileType.FILES, nameFilter: ~/.*\.java$/) { f ->
							 | 
						||
| 
								 | 
							
								                        mappings.each { entry ->
							 | 
						||
| 
								 | 
							
								                            if (f.getText('UTF-8').contains(entry.key)) {
							 | 
						||
| 
								 | 
							
								                                println "Updating ${entry.key} to ${entry.value} in file ${f}"
							 | 
						||
| 
								 | 
							
								                                ant.replace(file: f, token: entry.key, value: entry.value)
							 | 
						||
| 
								 | 
							
								                            }
							 | 
						||
| 
								 | 
							
								                        }
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        </insert>
							 | 
						||
| 
								 | 
							
								    </baseBuildGradleAdditions>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <buildscriptGradleAdditions>
							 | 
						||
| 
								 | 
							
								        <if condition="bUploadSymbols">
							 | 
						||
| 
								 | 
							
								            <true>
							 | 
						||
| 
								 | 
							
								                <if condition="bUseLegacyGradlePlugin">
							 | 
						||
| 
								 | 
							
								                    <true>
							 | 
						||
| 
								 | 
							
								                        <log text="Using legacy Sentry Gradle plugin 2.1.5 for Android debug symbol upload."/>
							 | 
						||
| 
								 | 
							
								                        <insert>
							 | 
						||
| 
								 | 
							
								                            dependencies {
							 | 
						||
| 
								 | 
							
								                                classpath 'com.android.tools.build:gradle:3.5.4'
							 | 
						||
| 
								 | 
							
								                                classpath 'io.sentry:sentry-android-gradle-plugin:2.1.5'
							 | 
						||
| 
								 | 
							
								                            }
							 | 
						||
| 
								 | 
							
								                        </insert>
							 | 
						||
| 
								 | 
							
								                    </true>
							 | 
						||
| 
								 | 
							
								                    <false>
							 | 
						||
| 
								 | 
							
								                        <log text="Using Sentry Gradle plugin 4.11.0 for Android debug symbol upload."/>
							 | 
						||
| 
								 | 
							
								                        <log text="Enable legacy Sentry Gradle plugin in project settings in case current version conflicts with other plugins (for UE 5.4 and older)."/>
							 | 
						||
| 
								 | 
							
								                        <insert>
							 | 
						||
| 
								 | 
							
								                            dependencies {
							 | 
						||
| 
								 | 
							
								                                classpath 'com.android.tools.build:gradle:7.4.2'
							 | 
						||
| 
								 | 
							
								                                classpath 'io.sentry:sentry-android-gradle-plugin:4.11.0'
							 | 
						||
| 
								 | 
							
								                            }
							 | 
						||
| 
								 | 
							
								                        </insert>
							 | 
						||
| 
								 | 
							
								                    </false>
							 | 
						||
| 
								 | 
							
								                </if>
							 | 
						||
| 
								 | 
							
								            </true>
							 | 
						||
| 
								 | 
							
								        </if>
							 | 
						||
| 
								 | 
							
								    </buildscriptGradleAdditions>
							 | 
						||
| 
								 | 
							
								</root>
							 |