react-native-edosoft-arcgis-mapview

ArcGis mapview for React Native

Usage no npm install needed!

<script type="module">
  import reactNativeEdosoftArcgisMapview from 'https://cdn.skypack.dev/react-native-edosoft-arcgis-mapview';
</script>

README

react-native-edosoft-arcgis-mapview

Getting started

$ npm install react-native-edosoft-arcgis-mapview --save

Mostly automatic installation

$ react-native link react-native-edosoft-arcgis-mapview

Usage

import RnEdosoftArcgisMapview from 'react-native-edosoft-arcgis-mapview';

// TODO: What to do with the module?
RnEdosoftArcgisMapview;

Android

Añadir al build.gradel de la raíz del proyecto las siguientes líneas:

// ...

allprojects {

    // ...
    
    repositories {

        // ...

        maven {
            // ArcGIS maps
            url 'https://esri.jfrog.io/artifactory/arcgis'
        }
    }
}

Añadir al build.gradle de la aplicación las siguientas líneas:

android {

    // ...
    
    defaultConfig {
        
        // ...

        ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
        }
    }

    // ...

    packagingOptions {
        pickFirst 'lib/x86/libc++_shared.so'
        pickFirst 'lib/x86_64/libc++_shared.so'
        pickFirst 'lib/armeabi-v7a/libc++_shared.so'
        pickFirst 'lib/arm64-v8a/libc++_shared.so'
    }
}

dependencies {
    // ...
    implementation 'com.esri.arcgisruntime:arcgis-android:100.11.0'
}

iOS

Si el proyecto donde se utiliza como dependencia este paquete, no utiliza swift, debemos abrir dicho proyecto con xcode. Añadimos un nuevo archivo donde queramos, por ejemplo en la carpeta raiz del código fuente dentro de la carpeta ios. Lo llamamos como queramos, pues no es importante. Al crearlo, Xcode nos preguntará si deseamos crear un Bridging Header, le decimos que sí.

Posible errores y sus soluciones:

Si obtenemos un error del tipo:

Undefined symbols for architecture x86_64:
_swift_getTypeByMangledNameInContextInMetadataState", referenced from:

debemos buscar en la carpeta del proyecto y sustituir

LIBRARY_SEARCH_PATHS = (
                
                ...

                "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
                "\"$(inherited)\"",
);

POR

LIBRARY_SEARCH_PATHS = (
                
                ...

                "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.2/$(PLATFORM_NAME)\"",
                "\"$(inherited)\"",
);