Cambiar la ruta del archivo de entrada de android y ios en el proyecto reactivo-nativo
Después de iniciar un nuevo proyecto con react-native init awesomeProject , intento reestructurar mi proyecto, poniendo index.ios.js e index.android.ios dentro de una carpeta común llamada src .
Cuando ejecuto reaccionar-nativo run-android , consigo el siguiente error:
- Sobre la actualización de aire con React Native
- Cómo subir Image on server using ReactNative
- No se puede ejecutar "ANY" reaccionar proyecto ejemplo nativo
- React Native: fallo de la solicitud de búsqueda con error - TypeError: Error en la solicitud de red (...)
- ¿Cómo puedo abrir el menú de dev en el dispositivo real?
Error en el dispositivo Android
¿Dónde debo cambiar para reaccionar-búsqueda nativa de archivos de entrada en el camino correcto?
- ¿Cuál es la causa de este problema "No se puede convertir el argumento de la clase de tipo org.json.JSONArray" en reaccionar-androide nativo?
- ¿Cómo puedo crear un borde diagonal en React Native?
- React-Native ListView renderRow emite pases de paso. El camino correcto o el camino equivocado
- Reaccione la caja nativa de Flex no usando todo el espacio disponible
- Variable Global / Constante en Reactivo Nativo
- Cajón de navegación en React-Native
- No se puede agregar un nodo que no tenga un nodo CSS a un nodo sin una función de medida
- Siga la ubicación del usuario en React Native AirBnb MapView
He utilizado los siguientes pasos en react-native 0.35
Para el desarrollo es necesario abrir un archivo
MyProject/android/app/src/main/java/com/MyProject/MainApplication.java
y anular un método de ReactNativeHost
llamado getJSMainModuleName
:
package com.MyProject; // ... public class MainApplication extends Application implements ReactApplication { private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { // ... // ADD THE LINES BELOW @Override protected String getJSMainModuleName() { return "src/index.android"; } // ADD THE LINES ABOVE }; // ... }
De esta manera, la aplicación sabrá dónde recoger el módulo desde un servidor empaquetador.
Para la producción, cuando usted construye su APK usando cd android && ./gradlew assembleRelease
tendrá que modificar un archivo
MyProject/android/app/build.gradle
y agregar opciones de compilación personalizadas, asegúrese de colocarlas antes de apply from: "../../node_modules/react-native/react.gradle"
línea:
apply plugin: "com.android.application" import com.android.build.OutputFile // ... // ADD THE LINES BELOW project.ext.react = [ // the entry file for bundle generation entryFile: "src/index.android.js", ] // ADD THE LINES ABOVE // ... apply from: "../../node_modules/react-native/react.gradle"
Lamentablemente no tengo configuración de iOS en este momento, no puedo ayudarte con eso todavía.
Gracias por la información de Michael! Hice el caso de iOS y hacer la respuesta completa para Android e iOS.
Como lo mismo que Android, las respuestas para el desarrollo y la producción son diferentes.
-
Para el desarrollo (modo de depuración)
ir a
AppDelegate.m
establezca el parámetro
jsBundleURLForBundleRoot
como la ruta del archivo de entrada ymoduleName
como el componente registrado en RN js. Por ejemplo, si quiero cambiar el archivo js de entrada a js / screen / LoginScreen.js y el componente a LoginScreen, haga lo siguiente:jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"js/screen/LoginScreen" fallbackResource:nil]; rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"LoginScreen" initialProperties:nil launchOptions:launchOptions];
-
Para la producción (modo de liberación)
para el modo de producción, Xcode genera un archivo jsbundle mientras se construye. Además de lo que hicimos para el modo de depuración, necesitamos decirle a Xcode el archivo de entrada de jsbundle.
vaya a la pestaña " Fases de construcción " del destino actual. en la fase " Reagir código nativo e imágenes ", agregue su archivo de entrada al final de la shell
Información sobre cómo ejecutar el modo de desarrollo / producción en iOS aquí
- Importación de actionbarsherlock en Android Studio 0.8.9
- ¿Cómo hacer un groupOwner de dispositivo en WifiDirect?