diff --git a/android/app/build.gradle b/android/app/build.gradle index 86cb289..d2fc80f 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -185,14 +185,15 @@ configurations.all { exclude group: "com.huawei.hms.LocationLiteSdk", module: "core" // Exclude Fresco native pipeline and webp natives to drop 0x1000 .so files exclude group: "com.facebook.fresco", module: "imagepipeline-native" - exclude group: "com.facebook.fresco", module: "static-webp" - exclude group: "com.facebook.fresco", module: "nativeimagetranscoder" } dependencies { // The version of react-native is set by the React Native Gradle Plugin implementation("com.facebook.react:react-android") + // Ensure Fresco core API available for app-level initialization (MainApplication) + implementation("com.facebook.fresco:fresco:3.6.0") + def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true"; def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true"; def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true"; diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index dc7f7ed..3ba4165 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -78,5 +78,8 @@ + - \ No newline at end of file + diff --git a/android/app/src/main/java/com/alertesecours/MainApplication.kt b/android/app/src/main/java/com/alertesecours/MainApplication.kt index 324c64b..8e395f0 100644 --- a/android/app/src/main/java/com/alertesecours/MainApplication.kt +++ b/android/app/src/main/java/com/alertesecours/MainApplication.kt @@ -12,6 +12,8 @@ import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load import com.facebook.react.defaults.DefaultReactNativeHost import com.facebook.react.soloader.OpenSourceMergedSoMapping import com.facebook.soloader.SoLoader +import com.facebook.drawee.backends.pipeline.Fresco +import com.facebook.imagepipeline.core.ImagePipelineConfig import expo.modules.ApplicationLifecycleDispatcher import expo.modules.ReactNativeHostWrapper @@ -42,6 +44,13 @@ class MainApplication : Application(), ReactApplication { override fun onCreate() { super.onCreate() SoLoader.init(this, OpenSourceMergedSoMapping) + + // Initialize Fresco to avoid native memory chunk (no libimagepipeline.so load) + val builder = ImagePipelineConfig.newBuilder(this) + builder.experiment().setNativeCodeDisabled(true) + val frescoConfig = builder.build() + Fresco.initialize(this, frescoConfig) + if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { // If you opted-in for the New Architecture, we load the native entry point for this app. load() diff --git a/android/gradle.properties b/android/gradle.properties index ce11150..a4c0f7e 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -63,8 +63,9 @@ android.enableProguardInReleaseBuilds=true # fix notifee + expo-update crash, see https://github.com/expo/expo/issues/15298 EX_UPDATES_ANDROID_DELAY_LOAD_APP=false -# Whether the app is configured to use edge-to-edge via the app config or `react-native-edge-to-edge` plugin -expo.edgeToEdgeEnabled=false # Ensure we always pick the NDK r27 libc++_shared.so we vendor in jniLibs android.packagingOptions.pickFirsts=**/libc++_shared.so + +# Whether the app is configured to use edge-to-edge via the app config or `react-native-edge-to-edge` plugin +expo.edgeToEdgeEnabled=false \ No newline at end of file diff --git a/ios/AlerteSecours.xcodeproj/project.pbxproj b/ios/AlerteSecours.xcodeproj/project.pbxproj index 24a9a00..58c9e4a 100644 --- a/ios/AlerteSecours.xcodeproj/project.pbxproj +++ b/ios/AlerteSecours.xcodeproj/project.pbxproj @@ -178,7 +178,8 @@ B743D4A39B4E461798D118B9 /* Fix Xcode 15 Bug */, D8ED2FC173D1461F87CDF597 /* Fix Xcode 15 Bug */, F3F5A8D7A73545D78A4D8467 /* Fix Xcode 15 Bug */, - 55D701B4073A47A48401F014 /* Remove signature files (Xcode workaround) */, + BC7FCBEF8C354C749AB11067 /* Fix Xcode 15 Bug */, + FA5F247997BA4DDBB06F01B8 /* Remove signature files (Xcode workaround) */, ); buildRules = ( ); @@ -1101,6 +1102,40 @@ fi"; shellScript = " echo \"Remove signature files (Xcode workaround)\"; rm -rf \"$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature\"; + "; + }; + BC7FCBEF8C354C749AB11067 /* Fix Xcode 15 Bug */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + name = "Fix Xcode 15 Bug"; + inputPaths = ( + ); + outputPaths = ( + ); + shellPath = /bin/sh; + shellScript = "if [ \"$XCODE_VERSION_MAJOR\" = \"1500\" ]; then + echo \"Remove signature files (Xcode 15 workaround)\" + find \"$BUILD_DIR/${CONFIGURATION}-iphoneos\" -name \"*.signature\" -type f | xargs -r rm +fi"; + }; + FA5F247997BA4DDBB06F01B8 /* Remove signature files (Xcode workaround) */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + name = "Remove signature files (Xcode workaround)"; + inputPaths = ( + ); + outputPaths = ( + ); + shellPath = /bin/sh; + shellScript = " + echo \"Remove signature files (Xcode workaround)\"; + rm -rf \"$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature\"; "; }; /* End PBXShellScriptBuildPhase section */