From bb305403ed2d776a0d746a01f638b20c3d3f3d5b Mon Sep 17 00:00:00 2001 From: tung_tung Date: Thu, 10 Jul 2025 10:28:59 +0700 Subject: [PATCH 1/3] COR-5706: update unity example on android --- .../Plugins/Android/AndroidManifest.xml | 26 ++---- .../Android/baseProjectTemplate.gradle | 4 +- .../Plugins/Android/launcherTemplate.gradle | 41 +++++++--- .../Plugins/Android/mainTemplate.gradle | 80 +++++++++++++------ 4 files changed, 91 insertions(+), 60 deletions(-) diff --git a/unity/Assets/Plugins/Android/AndroidManifest.xml b/unity/Assets/Plugins/Android/AndroidManifest.xml index 89f3b76..87d1616 100644 --- a/unity/Assets/Plugins/Android/AndroidManifest.xml +++ b/unity/Assets/Plugins/Android/AndroidManifest.xml @@ -1,8 +1,7 @@ + xmlns:tools="http://schemas.android.com/tools"> - - + - - - - - - - - - - - - \ No newline at end of file + + diff --git a/unity/Assets/Plugins/Android/baseProjectTemplate.gradle b/unity/Assets/Plugins/Android/baseProjectTemplate.gradle index 51cd761..b4e5aa8 100644 --- a/unity/Assets/Plugins/Android/baseProjectTemplate.gradle +++ b/unity/Assets/Plugins/Android/baseProjectTemplate.gradle @@ -3,8 +3,8 @@ plugins { // See which Gradle version is preinstalled with Unity here https://docs.unity3d.com/Manual/android-gradle-overview.html // See official Gradle and Android Gradle Plugin compatibility table here https://developer.android.com/studio/releases/gradle-plugin#updating-gradle // To specify a custom Gradle version in Unity, go do "Preferences > External Tools", uncheck "Gradle Installed with Unity (recommended)" and specify a path to a custom Gradle version - id 'com.android.application' version '7.3.1' apply false - id 'com.android.library' version '7.3.1' apply false + id 'com.android.application' version '8.3.0' apply false + id 'com.android.library' version '8.3.0' apply false **BUILD_SCRIPT_DEPS** } diff --git a/unity/Assets/Plugins/Android/launcherTemplate.gradle b/unity/Assets/Plugins/Android/launcherTemplate.gradle index 69d2e9a..e8c78f3 100644 --- a/unity/Assets/Plugins/Android/launcherTemplate.gradle +++ b/unity/Assets/Plugins/Android/launcherTemplate.gradle @@ -1,14 +1,17 @@ apply plugin: 'com.android.application' +apply from: 'setupSymbols.gradle' +apply from: '../shared/keepUnitySymbols.gradle' dependencies { implementation project(':unityLibrary') } android { + ndkVersion "**NDKVERSION**" ndkPath "**NDKPATH**" namespace "**NAMESPACE**" - compileSdkVersion **APIVERSION** + compileSdk **APIVERSION** buildToolsVersion '**BUILDTOOLS**' compileOptions { @@ -17,37 +20,49 @@ android { } defaultConfig { - minSdkVersion 24 - targetSdkVersion **TARGETSDKVERSION** + minSdk 24 + targetSdk **TARGETSDK** applicationId '**APPLICATIONID**' ndk { + debugSymbolLevel **DEBUGSYMBOLLEVEL** abiFilters **ABIFILTERS** } - versionCode **VERSIONCODE** - versionName '**VERSIONNAME**' + + String env_versionCode = System.getenv("VERSION_CODE") + String env_versionName = System.getenv("VERSION_NUMBER") + if(env_versionCode == null || env_versionName == null) + { + versionCode 1 + versionName "1.0" + } + else + { + versionCode Integer.parseInt(env_versionCode) + versionName env_versionName + } } - aaptOptions { + androidResources { noCompress = **BUILTIN_NOCOMPRESS** + unityStreamingAssets.tokenize(', ') ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~" - }**SIGN** + } - lintOptions { + lint { abortOnError false } buildTypes { debug { minifyEnabled **MINIFY_DEBUG** - proguardFiles getDefaultProguardFile('proguard-android.txt')**SIGNCONFIG** + proguardFiles getDefaultProguardFile('proguard-android.txt') jniDebuggable true } release { minifyEnabled **MINIFY_RELEASE** - proguardFiles getDefaultProguardFile('proguard-android.txt')**SIGNCONFIG** + proguardFiles getDefaultProguardFile('proguard-android.txt') } } - packagingOptions { + packaging { exclude 'META-INF/kotlinx_coroutines_core.version' exclude 'META-INF/androidx.lifecycle_lifecycle-livedata-core.version' exclude 'kotlin/internal/internal.kotlin_builtins' @@ -60,7 +75,7 @@ android { exclude 'kotlin/**/*.kotlin_builtins' exclude 'kotlin/*.kotlin_builtins' } - **PACKAGING_OPTIONS****PLAY_ASSET_PACKS****SPLITS** + **PACKAGING****PLAY_ASSET_PACKS****SPLITS** **BUILT_APK_LOCATION** bundle { language { @@ -77,5 +92,5 @@ android { } } - **GOOGLE_PLAY_DEPENDENCIES** + **GOOGLE_PLAY_DEPENDENCIES** }**SPLITS_VERSION_CODE****LAUNCHER_SOURCE_BUILD_SETUP** diff --git a/unity/Assets/Plugins/Android/mainTemplate.gradle b/unity/Assets/Plugins/Android/mainTemplate.gradle index 63b050e..74732a6 100644 --- a/unity/Assets/Plugins/Android/mainTemplate.gradle +++ b/unity/Assets/Plugins/Android/mainTemplate.gradle @@ -1,10 +1,12 @@ apply plugin: 'com.android.library' +apply from: '../shared/keepUnitySymbols.gradle' +**APPLY_PLUGINS** dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.5.1' - **DEPS** -} + implementation(name: 'EmotivCortexLib', ext:'aar') +**DEPS**} buildscript { repositories { @@ -13,11 +15,17 @@ buildscript { } } +repositories { + google() + mavenCentral() +} + android { + ndkVersion "**NDKVERSION**" ndkPath "**NDKPATH**" namespace "com.unity3d.player" - compileSdkVersion **APIVERSION** + compileSdk **APIVERSION** buildToolsVersion '**BUILDTOOLS**' compileOptions { @@ -26,37 +34,59 @@ android { } defaultConfig { - minSdkVersion 24 - targetSdkVersion **TARGETSDKVERSION** + minSdk 24 + targetSdk **TARGETSDK** ndk { + debugSymbolLevel **DEBUGSYMBOLLEVEL** abiFilters **ABIFILTERS** } versionCode **VERSIONCODE** versionName '**VERSIONNAME**' - String client_id = "your_client_id_here" // Replace with your actual client_id - if (client_id.isEmpty()) { - System.err << "You need to config value for client_id" - } else { - String value = client_id.md5() - manifestPlaceholders = [ - 'customScheme': 'emotiv-' + value - ] - } + consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD** +**DEFAULT_CONFIG_SETUP** + } - consumerProguardFiles 'proguard-unity.txt' **USER_PROGUARD** - **DEFAULT_CONFIG_SETUP** + buildTypes { + debug { + // Set client_id for development environment + String client_id = "put-your-client-id-for-dev-here" + if (client_id.isEmpty()) { + System.err << "You need to config value for client_id" + } + else { + String value = client_id.md5() + manifestPlaceholders = [ + 'customScheme': 'emotiv-' + value, + "appAuthRedirectScheme": "" + ] + } + } + release { + // Set client_id for production environment + String client_id = "put-your-client-id-for-prod-here" + if (client_id.isEmpty()) { + System.err << "You need to config value for client_id" + } + else { + String value = client_id.md5() + manifestPlaceholders = [ + 'customScheme': 'emotiv-' + value, + "appAuthRedirectScheme": "" + ] + } + minifyEnabled true + } } - lintOptions { + lint { abortOnError false } - aaptOptions { - noCompress = **BUILTIN_NOCOMPRESS** + unityStreamingAssets.tokenize(', ') // Unity will replace this placeholder with no-compress settings. + androidResources { + noCompress = **BUILTIN_NOCOMPRESS** + unityStreamingAssets.tokenize(', ') ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~" } - - packagingOptions { + packaging { exclude 'META-INF/kotlinx_coroutines_core.version' exclude 'META-INF/androidx.lifecycle_lifecycle-livedata-core.version' exclude 'kotlin/internal/internal.kotlin_builtins' @@ -68,9 +98,9 @@ android { exclude 'kotlin/collections/*.kotlin_builtins' exclude 'kotlin/**/*.kotlin_builtins' exclude 'kotlin/*.kotlin_builtins' - **PACKAGING_OPTIONS** } - **IL_CPP_BUILD_SETUP** - **SOURCE_BUILD_SETUP** - **EXTERNAL_SOURCES** + **PACKAGING** } +**IL_CPP_BUILD_SETUP** +**SOURCE_BUILD_SETUP** +**EXTERNAL_SOURCES** From 351bd7f6b70d1734bad9682c7e9eaa292b217468 Mon Sep 17 00:00:00 2001 From: tung_tung Date: Mon, 14 Jul 2025 16:45:46 +0700 Subject: [PATCH 2/3] COR-5706: update latest uniwebview --- .../Android/baseProjectTemplate.gradle | 4 +-- .../Plugins/Android/launcherTemplate.gradle | 20 ++--------- .../Plugins/Android/mainTemplate.gradle | 33 +++---------------- unity/Assets/Plugins/Emotiv-Unity-Plugin | 2 +- 4 files changed, 10 insertions(+), 49 deletions(-) diff --git a/unity/Assets/Plugins/Android/baseProjectTemplate.gradle b/unity/Assets/Plugins/Android/baseProjectTemplate.gradle index b4e5aa8..fd43460 100644 --- a/unity/Assets/Plugins/Android/baseProjectTemplate.gradle +++ b/unity/Assets/Plugins/Android/baseProjectTemplate.gradle @@ -3,8 +3,8 @@ plugins { // See which Gradle version is preinstalled with Unity here https://docs.unity3d.com/Manual/android-gradle-overview.html // See official Gradle and Android Gradle Plugin compatibility table here https://developer.android.com/studio/releases/gradle-plugin#updating-gradle // To specify a custom Gradle version in Unity, go do "Preferences > External Tools", uncheck "Gradle Installed with Unity (recommended)" and specify a path to a custom Gradle version - id 'com.android.application' version '8.3.0' apply false - id 'com.android.library' version '8.3.0' apply false + id 'com.android.application' version '7.4.2' apply false + id 'com.android.library' version '7.4.2' apply false **BUILD_SCRIPT_DEPS** } diff --git a/unity/Assets/Plugins/Android/launcherTemplate.gradle b/unity/Assets/Plugins/Android/launcherTemplate.gradle index e8c78f3..3b9b3de 100644 --- a/unity/Assets/Plugins/Android/launcherTemplate.gradle +++ b/unity/Assets/Plugins/Android/launcherTemplate.gradle @@ -1,6 +1,4 @@ apply plugin: 'com.android.application' -apply from: 'setupSymbols.gradle' -apply from: '../shared/keepUnitySymbols.gradle' dependencies { implementation project(':unityLibrary') @@ -27,27 +25,13 @@ android { debugSymbolLevel **DEBUGSYMBOLLEVEL** abiFilters **ABIFILTERS** } - - String env_versionCode = System.getenv("VERSION_CODE") - String env_versionName = System.getenv("VERSION_NUMBER") - if(env_versionCode == null || env_versionName == null) - { - versionCode 1 - versionName "1.0" - } - else - { - versionCode Integer.parseInt(env_versionCode) - versionName env_versionName - } } androidResources { noCompress = **BUILTIN_NOCOMPRESS** + unityStreamingAssets.tokenize(', ') ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~" } - - lint { + lintOptions { abortOnError false } @@ -62,7 +46,7 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt') } } - packaging { + packagingOptions { exclude 'META-INF/kotlinx_coroutines_core.version' exclude 'META-INF/androidx.lifecycle_lifecycle-livedata-core.version' exclude 'kotlin/internal/internal.kotlin_builtins' diff --git a/unity/Assets/Plugins/Android/mainTemplate.gradle b/unity/Assets/Plugins/Android/mainTemplate.gradle index 74732a6..49f5d5d 100644 --- a/unity/Assets/Plugins/Android/mainTemplate.gradle +++ b/unity/Assets/Plugins/Android/mainTemplate.gradle @@ -1,6 +1,4 @@ apply plugin: 'com.android.library' -apply from: '../shared/keepUnitySymbols.gradle' -**APPLY_PLUGINS** dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) @@ -42,28 +40,7 @@ android { } versionCode **VERSIONCODE** versionName '**VERSIONNAME**' - consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD** -**DEFAULT_CONFIG_SETUP** - } - - buildTypes { - debug { - // Set client_id for development environment - String client_id = "put-your-client-id-for-dev-here" - if (client_id.isEmpty()) { - System.err << "You need to config value for client_id" - } - else { - String value = client_id.md5() - manifestPlaceholders = [ - 'customScheme': 'emotiv-' + value, - "appAuthRedirectScheme": "" - ] - } - } - release { - // Set client_id for production environment - String client_id = "put-your-client-id-for-prod-here" + String client_id = "put_your_application_client_id_for_here" if (client_id.isEmpty()) { System.err << "You need to config value for client_id" } @@ -74,11 +51,11 @@ android { "appAuthRedirectScheme": "" ] } - minifyEnabled true - } + consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD** +**DEFAULT_CONFIG_SETUP** } - lint { + lintOptions { abortOnError false } @@ -86,7 +63,7 @@ android { noCompress = **BUILTIN_NOCOMPRESS** + unityStreamingAssets.tokenize(', ') ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~" } - packaging { + packagingOptions { exclude 'META-INF/kotlinx_coroutines_core.version' exclude 'META-INF/androidx.lifecycle_lifecycle-livedata-core.version' exclude 'kotlin/internal/internal.kotlin_builtins' diff --git a/unity/Assets/Plugins/Emotiv-Unity-Plugin b/unity/Assets/Plugins/Emotiv-Unity-Plugin index 5dd8321..5fe94eb 160000 --- a/unity/Assets/Plugins/Emotiv-Unity-Plugin +++ b/unity/Assets/Plugins/Emotiv-Unity-Plugin @@ -1 +1 @@ -Subproject commit 5dd8321eb86e253935249b68e91aa27d464ce494 +Subproject commit 5fe94eb5ebae11920df1837f8c5de668f733337d From 294b61a1dd31873d2d2b6281cd50408bdb8b93d5 Mon Sep 17 00:00:00 2001 From: tung_tung Date: Mon, 14 Jul 2025 18:04:22 +0700 Subject: [PATCH 3/3] COR-5706: update manifest to remove unused package --- unity/Packages/manifest.json | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/unity/Packages/manifest.json b/unity/Packages/manifest.json index e9c998f..afbd3ee 100644 --- a/unity/Packages/manifest.json +++ b/unity/Packages/manifest.json @@ -4,17 +4,14 @@ "com.unity.2d.sprite": "1.0.0", "com.unity.2d.tilemap": "1.0.0", "com.unity.ads": "4.4.2", - "com.unity.ai.navigation": "2.0.0", "com.unity.analytics": "3.8.1", - "com.unity.ide.rider": "3.0.28", - "com.unity.ide.visualstudio": "2.0.22", + "com.unity.ide.rider": "3.0.36", + "com.unity.ide.visualstudio": "2.0.23", "com.unity.ide.vscode": "1.2.5", "com.unity.mobile.android-logcat": "1.4.2", - "com.unity.test-framework": "1.3.9", "com.unity.timeline": "1.8.6", "com.unity.ugui": "2.0.0", - "com.unity.xr.legacyinputhelpers": "2.1.10", - "com.unity.modules.accessibility": "1.0.0", + "com.unity.xr.legacyinputhelpers": "2.1.12", "com.unity.modules.ai": "1.0.0", "com.unity.modules.androidjni": "1.0.0", "com.unity.modules.animation": "1.0.0",