javascript - proyecto - XCode Build no actualiza JS y HTML
cordova run ios device (15)
@Ksliman He modificado un poco el código para que funcione en mi sistema y lo haga un poco más genérico.
parte superior del archivo copy-www-build-step.sh
## New Code Begin ###
cd ../../
PATH=${PATH}:/usr/local/bin
cordova prepare ios
## New Code End ###
SRC_DIR="www/"
Estoy usando XCode 5.0.2 y Cordova 3.4.0-0.1.3 - Lo que encuentro es después de crear el proyecto usando la CLI de Cordova y abrir en XCode , no se realizan cambios en el archivo index.html y el archivo index.js Pasa al simulador cuando hago clic en ejecutar. Tengo que abrir el terminal y emitir un comando Cordova Build y luego ejecutar el simulador y funciona
He seguido todas las instrucciones aquí:
Phonegap - desarrollo y lanzamiento de la aplicación en el simulador
xcode 4 + phonegap ... ¿no actualiza JS en la compilación?
¡Y nada de eso funciona! Cualquiera puede tener una solución para esto, porque tener que cambiar de lugar se está convirtiendo en un dolor.
Cada vez que uso cordova build
compilo el contenido de las anulaciones en el archivo www
específico de mi plataforma. Así que en vez de eso uso cordova compile
.
De la ayuda:
compilar <platforms> compila el proyecto de la plataforma sin prepararlo
Es importante simplemente compilar los cambios para no construir proyectos completos, especialmente si creas una aplicación móvil para muchas plataformas y tienes que hacer algunas mejoras específicas de la plataforma.
Descubrí que a veces Cordova se confunde ... necesitas hacer una "plataforma rios rios de cordova" (solo deja tus complementos), y luego hacer una "plataforma cordova para agregar iOS", que reinstalará todos tus complementos en tu plataforma. .. luego intente su construcción de nuevo.
Ejecute " cordova prepare ios
" durante las fases de construcción:
- Abrir Xcode.
- Seleccione su proyecto.
- Ir a "Construir fases".
- Vaya a "+" para agregar una "Nueva fase de secuencia de comandos de ejecución".
- Mueva esta sección antes de "Copiar el directorio www".
- Añade las siguientes líneas (para Mac):
-
cd /Users/*/YOUR_PROJECT_FOLDER
(Cambia la carpeta de tu proyecto) -
/Users/*/.nvm/versions/node/v?.?.?/bin/node node_modules/cordova/bin/cordova prepare ios
(Cambie la ruta a la versión del nodo)
-
Después de "Play", la carpeta www se actualizará automáticamente!
Entonces, después de mucha búsqueda, parece que encontré una solución que funciona, esto es lo que hice. Después de ver otras preguntas de , encontré a alguien que dijo que esto funcionaba para ellos.
Busque el archivo llamado copy-www-build-step.sh.
La mía estaba en [project_folder] /platforms/ios/cordova/lib/copy-www-build-step.sh
En ese archivo, encuentre las líneas que comienzan con rsync -a "...
Agregue -c a las líneas rsync, para que estén listas rsync -a -c "...
Bueno, lo intenté y no funcionó por sí solo. También intenté la respuesta de Ville y eso se acercó pero no había cigarro. Finalmente tomé el comando de Ville y lo puse en el archivo copy-www-build-step.sh
así que mi línea superior es ahora
cd /path/to/your/cordova/project/
cordova prepare
SRC_DIR="www/"
DST_DIR="$BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME/www"
COPY_HIDDEN=
ORIG_IFS=$IFS
IFS=$(echo -en "/n/b")
.....
.....
.....etc etc
Y ahora hago cambios, y hago clic en ejecutar, bam todo está actualizado. Espero que esto ayude a alguien más.
Otras respuestas en este hilo no funcionaron para mí o arruinaron los complementos de Cordova, por ejemplo, InAppBrowser, por lo que finalmente se me ocurrió esto:
Edite el archivo copy-www-build-step.sh y agregue la siguiente fila al principio:
cp -fR ../../www/ www/
por lo que debe verse como
...
cp -fR ../../www/ www/ # new code
SRC_DIR="www/"
...
De esta manera, su código se actualizará correctamente y sus complementos funcionarán.
Para hacer que los archivos de origen se copien automáticamente del directorio de origen www al directorio de plataformas / ios / www cuando haga clic en el botón Ejecutar en XCode:
En XCode, seleccione Producto-> Esquema-> Editar esquema ...
Expandir el triángulo para Construir-> Pre-acciones
Haga clic en el "+" para crear una nueva acción previa
Puede dejar la configuración de "Shell" en blanco.
Establezca "Proporcionar configuración de compilación desde" al proyecto que está construyendo. Esto es importante.
En el área de script ingrese:
cd ${PROJECT_DIR}/../..
echo "--- Start ---" > xcode-prepare-ios-results.txt
echo "Running cordova prepare ios command..."
pwd >> xcode-prepare-ios-results.txt
cordova prepare ios --verbose >> xcode-prepare-ios-results.txt
echo "--- Finished ---" >> xcode-prepare-ios-results.txt
Esto me funciona con XCode 8.2 y Apache Cordova 6.x
Para mí, hubo un error en mi código. Simplemente necesitaba ejecutar npm start
a localizarlo.
Puede agregar un script de acción previa a la compilación de su proyecto XCode. Para hacer esto:
- Seleccione Producto> Esquema> Editar esquema en el menú (o ⌘ <en el teclado)
- Selecciona Construir> Pre-acciones desde la izquierda.
- Haga clic en + y seleccione "Nueva acción Ejecutar secuencia de comandos"
Agrega un script como este:
cd /path/to/your/cordova/project/ cordova prepare ios > xcode-prepare-results.txt
Ahora XCode siempre debe ejecutar Córdova y prepararse antes de construir su proyecto para que no tenga que saltar a la terminal. Puede ver la salida de prepare en el archivo xcode-prepare-results.txt.
Tenga en cuenta que, según la configuración de su ejecutable de cordova y el shell que use, es posible que tenga que cambiar el shell o modificar su PATH para que el script encuentre a cordova.
Si está cambiando directamente html desde Xcode, debe cambiar el código / html de la carpeta de preparación, no la carpeta principal
En la carpeta de pruebas obtendrá la misma estructura que tiene en la carpeta principal, pero se reflejará directamente en la compilación de xcode (iOS)
Carpeta de ensayo
Nota: Los cambios que realizó en xcode se reemplazarán cuando vuelva a compilar desde la compilación / ejecución cordova, así que copie los cambios en la carpeta principal antes de ejecutar los comandos de cordova
Puede obtener más información de esta respuesta: ¿Propósito de la carpeta de clasificación en PhoneGap 3.4? ¿Solo se reconocen los cambios realizados en index.html en esta carpeta?
Esta es la solución correcta tomada de:
Cordova + Xcode 7.3 (html + Javascript) no se modificó ni actualizó al compilar y emular
Soluciones simples es construir la aplicación con cordova usando:
sudo cordova build ios
Luego vaya a xcode> Producto> Limpiar
Luego vaya a xcode> Ejecutar (botón de reproducción)
También edité el archivo copy-www-build-step.sh , sin embargo, no desea utilizar una ruta absoluta desde su carpeta de Usuario. Si está trabajando con otros desarrolladores, tendría que cambiar eso cada vez que compruebe el código.
No es un gran problema, solo cambia:
SRC_DIR="www/"
A:
SRC_DIR="../../www/"
ACTUALIZACIÓN Trabajó para mí en Cordova y Phonegap.
Te sugiero que limpies antes de construir tu proyecto xcode. Y una cosa más, asegúrate de volver a construir tu proyecto usando cordova build, no dentro de xcode porque es totalmente diferente.
cordova build yourproject
Todo lo que tenía que hacer era incluir la ruta src absoluta completa para mi proyecto. Por ejemplo:
- Desde el directorio de su proyecto, plataformas vim / ios / cordova / lib / copy-www-build-step.sh
- cambie SRC_DIR a la ruta absoluta de su www, SRC_DIR = "/ Users / michael / Documents / Development / SampleMobileApp / www /"
- Guarda, construye, y deberías estar listo para salir.
simplemente escriba:
cordova prepare
en su terminal y ejecute su proyecto de nuevo en Xcode