Mi empresa realiza la administración de dispositivos móviles con Microsoft Intune. Implementamos con éxito una aplicación interna de iOS (mediante el programa Apple Developer Enterprise).
Con los ajustes de configuración de Intunes, intentamos que el correo electrónico individual de cada usuario esté disponible para la aplicación móvil. https://docs.microsoft.com/en-us/mem/intune/apps/app-configuration-policies-use-ios
¿Cómo accede normalmente a este tipo de configuraciones en una aplicación? Encontré esta biblioteca pero necesitaría expulsar de Expo, lo cual no es ideal para mí: https://github.com/robinpowered/react-native-mdm
Como MDM tiene dependencias nativas, no podrá hacerlo con Expo. Los proyectos de Expo están escritos solo en JavaScript y no admiten paquetes que contengan Objective-C o Java (código nativo/dependencias).
Expo proporciona un SDK avanzado llamado ExpoKit para cuando sea absolutamente necesario usar código nativo personalizado. Sin embargo, hay algunos casos en los que los desarrolladores necesitan capacidades nativas fuera de lo que Expo ofrece directamente. La situación más común es cuando un proyecto requiere un módulo nativo específico (como MDM) que no es compatible con React Native Core o Expo SDK . Deberá desconectar el proyecto Expo para crear proyectos de Xcode y Android Studio que contengan ExpoKit. Este paso generará directorios de proyectos de android e ios . Luego, agregaría Objective-C o Java personalizado de la misma manera que con cualquier otro proyecto de Xcode o Android Studio.
Los documentos de Expo advierten sobre algunas de las desventajas de escribir código nativo personalizado y desalientan a la mayoría de nuestros desarrolladores a tomar esta ruta, ya que el motivo de Expo es que casi todo lo que necesita hacer se logra mejor de una manera multiplataforma con JS. Escribir en JS le permite aprovechar mejor la implementación de Code Aster y beneficiarse de las actualizaciones continuas y el soporte de Expo. Solo debe hacer esto si tiene una demanda particular del código nativo que Expo no hará un buen trabajo de soporte, como (por ejemplo) procesamiento de video intensivo de CPU especializado que debe ocurrir localmente en el dispositivo, bibliotecas nativas personalizadas.
Aquí hay solo dos opciones para admitir el MDM, expulsar el proyecto o crear un proyecto react-native-cli y migrar su proyecto a uno recién creado.
Puede agregar soporte de exposición en react-native-mdm mediante la bifurcación react-native-mdm y usar complementos de configuración
aquí está el PR para agregar soporte de exposición en el paquete nativo https://github.com/Shobbak/react-native-compressor/pull/62
Después de agregar soporte solo tienes que hacer
yarn install react-native-mdm_from_your_fork Agregue el complemento react-native-mdm a su configuración de Expo ( app.json , app.config.json o app.config.js ):
{ "name": "my app", "plugins": ["react-native-mdm"] }Finalmente, compila los mods:
expo prebuildPara aplicar los cambios, cree un nuevo binario con EAS:
eas build