Compilación cruzada para iOS
Esta página sirve como una breve introducción para construir V8 para objetivos iOS.
Requisitos
- Una máquina con macOS (OS X) con Xcode instalado.
- Un dispositivo iOS de 64 bits (los dispositivos iOS de 32 bits no son compatibles).
- V8 v7.5 o una versión más reciente.
- jitless es un requisito fundamental para iOS (desde diciembre de 2020). Por lo tanto, por favor, utilice las banderas '--expose_gc --jitless'
Configuración inicial
Siga las instrucciones para construir V8.
Obtenga herramientas adicionales necesarias para la compilación cruzada de iOS agregando target_os
en su archivo de configuración .gclient
, ubicado en el directorio padre del directorio fuente de v8
:
# [... otros contenidos de .gclient como la variable 'solutions' ...]
target_os = ['ios']
Después de actualizar .gclient
, ejecute gclient sync
para descargar las herramientas adicionales.
Construcción manual
Esta sección muestra cómo construir una versión monolítica de V8 para su uso en un dispositivo iOS físico o en el simulador de iOS de Xcode. El resultado de esta compilación es un archivo libv8_monolith.a
que contiene todas las bibliotecas de V8 y el snapshot de V8.
Configure los archivos de construcción GN ejecutando gn args out/release-ios
e insertando las siguientes claves:
ios_deployment_target = 10
is_component_build = false
is_debug = false
target_cpu = "arm64" # "x64" para una compilación en el simulador.
target_os = "ios"
use_custom_libcxx = false # Usa la libcxx de Xcode.
v8_enable_i18n_support = false # Produce un binario más pequeño.
v8_monolithic = true # Activa el objetivo v8_monolith.
v8_use_external_startup_data = false # El snapshot está incluido en el binario.
v8_enable_pointer_compression = false # No es compatible con iOS.
Ahora construya:
ninja -C out/release-ios v8_monolith
Finalmente, agregue el archivo generado libv8_monolith.a
a su proyecto de Xcode como una biblioteca estática. Para más documentación sobre cómo integrar V8 en su aplicación, consulte Primeros pasos para integrar V8.