为 iOS 交叉编译

此页面简要介绍了为 iOS 目标构建 V8 的方法。

要求 #

初始设置 #

遵循 构建 V8 的说明

通过在 v8 源目录的父目录中找到的 .gclient 配置文件中添加 target_os,获取 iOS 交叉编译所需的额外工具。

# [... other contents of .gclient such as the 'solutions' variable ...]
target_os = ['ios']

更新 .gclient 后,运行 gclient sync 下载额外的工具。

手动构建 #

本节介绍如何构建一个单片 V8 版本,用于物理 iOS 设备或 Xcode iOS 模拟器。此构建的输出是一个 libv8_monolith.a 文件,其中包含所有 V8 库以及 V8 快照。

通过运行 gn args out/release-ios 并插入以下键来设置 GN 构建文件

ios_deployment_target = 10
is_component_build = false
is_debug = false
target_cpu = "arm64" # "x64" for a simulator build.
target_os = "ios"
use_custom_libcxx = false # Use Xcode's libcxx.
v8_enable_i18n_support = false # Produces a smaller binary.
v8_monolithic = true # Enable the v8_monolith target.
v8_use_external_startup_data = false # The snaphot is included in the binary.
v8_enable_pointer_compression = false # Unsupported on iOS.

现在构建

ninja -C out/release-ios v8_monolith

最后,将生成的 libv8_monolith.a 文件作为静态库添加到您的 Xcode 项目中。有关在应用程序中嵌入 V8 的更多文档,请参阅 V8 嵌入入门