diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 00000000..8d4452e4 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,10 @@ +{ + "enabledPlugins": { + "github@claude-plugins-official": true, + "frontend-design@claude-plugins-official": true, + "claude-md-management@claude-plugins-official": true, + "typescript-lsp@claude-plugins-official": true, + "security-guidance@claude-plugins-official": true, + "claude-code-setup@claude-plugins-official": true + } +} diff --git a/android/app/build.gradle b/android/app/build.gradle index b6cd1bc8..c74064c4 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -121,10 +121,10 @@ android { crunchPngs enablePngCrunchInRelease.toBoolean() } } - packagingOptions { + packaging { jniLibs { def enableLegacyPackaging = findProperty('expo.useLegacyPackaging') ?: 'false' - useLegacyPackaging enableLegacyPackaging.toBoolean() + useLegacyPackaging = enableLegacyPackaging.toBoolean() } } androidResources { @@ -132,10 +132,10 @@ android { } } -// Apply static values from `gradle.properties` to the `android.packagingOptions` +// Apply static values from `gradle.properties` to the `android.packaging` // Accepts values in comma delimited lists, example: // android.packagingOptions.pickFirsts=/LICENSE,**/picasa.ini -["pickFirsts", "excludes", "merges", "doNotStrip"].each { prop -> +["pickFirsts", "excludes", "merges"].each { prop -> // Split option: 'foo,bar' -> ['foo', 'bar'] def options = (findProperty("android.packagingOptions.$prop") ?: "").split(","); // Trim all elements in place. @@ -144,14 +144,25 @@ android { options -= "" if (options.length > 0) { - println "android.packagingOptions.$prop += $options ($options.length)" - // Ex: android.packagingOptions.pickFirsts += '**/SCCS/**' + println "android.packaging.resources.$prop += $options ($options.length)" + // Ex: android.packaging.resources.pickFirsts += '**/SCCS/**' options.each { - android.packagingOptions[prop] += it + android.packaging.resources[prop] += it } } } +// Handle doNotStrip separately (now keepDebugSymbols on jniLibs) +def doNotStripOptions = (findProperty("android.packagingOptions.doNotStrip") ?: "").split(","); +for (i in 0.. 0) { + println "android.packaging.jniLibs.keepDebugSymbols += $doNotStripOptions ($doNotStripOptions.length)" + doNotStripOptions.each { + android.packaging.jniLibs.keepDebugSymbols += it + } +} + dependencies { // The version of react-native is set by the React Native Gradle Plugin implementation("com.facebook.react:react-android") diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar index 1b33c55b..61285a65 100644 Binary files a/android/gradle/wrapper/gradle-wrapper.jar and b/android/gradle/wrapper/gradle-wrapper.jar differ diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index d4081da4..19a6bdeb 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/android/gradlew b/android/gradlew index 7f94d3d4..adff685a 100755 --- a/android/gradlew +++ b/android/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -114,7 +114,6 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -172,7 +171,6 @@ fi # For Cygwin or MSYS, switch paths to Windows format before running java if "$cygwin" || "$msys" ; then APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) JAVACMD=$( cygpath --unix "$JAVACMD" ) @@ -205,14 +203,13 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat old mode 100644 new mode 100755 index 5eed7ee8..e509b2dd --- a/android/gradlew.bat +++ b/android/gradlew.bat @@ -70,11 +70,10 @@ goto fail :execute @rem Setup the command line -set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell