5.Chromium指纹浏览器开发教程之编译发布版本
编译发布版本
调试版本编译出来的Chromium浏览器运行速度是非常缓慢的,因此其中存在着大量的调试符号。如果要编译发布版本,只需要更改is_debug参数即可,另外,如果不在GN构建参数的时候指定Google API密钥,会导致Chromium的部分功能无法使用,因此推荐在发布版中设置此类参数。
本书编译发布版本使用的GN构建参数如下所示:
is_debug=falseenable_nacl=falsetarget_cpu="x86"is_component_build=falseproprietary_codecs=trueffmpeg_branding="Chrome"is_official_build=truegoogle_api_key="xxx"google_default_client_id="xxx"google_default_client_secret="xxx"
申请谷歌API,需要到网址https://cloud.google.com/console,选择左侧的APIs & Services选项当中的Credentials,如图1-27所示。
之后在当前页面中选择CREATE CREDENTIALS创建凭证,类型为API密钥,这里生成的字符即为google_api_key所需要的值。继续创建凭证,类型为“OAuth client ID”,应用类型选择“Desktop app”,其中生成的客户端ID为google_default_client_id的值,二生成的客户端密钥为google_default_client_secret需要的值。
使用上述参数编译出来的Chromium浏览器即发布版本,运行速度和正常Chrome浏览器并无差异。如果要把编译出来的浏览器当做安装包发布给其他人使用,在编译可执行文件的时候,可以在命令行键入以下命令:
>autoninja -C out/release mini_installer
这个时候,就会在out/release目录下生成mini_installer可执行文件,运行后会自动安装发布版的chrome.exe。
可能的编译错误
在编译过程中可能会出现以下错误:
src\mojo\public\tools\bindings\generators\mojom_ts_generator.py",in _GetJsModuleImportsos.path.relpath(File "<frozen ntpath>", line 766, in relpathValueError: path is on mount '\\\\tab_group_types.mojom-webui.js', start on mount 'd:'...
要修复该错误,需要到以下Chromium文件当中进行修改:
src\mojo\public\tools\bindings\generators\mojom_ts_generator.py
修改内容如下所示:
# Existing code in that functionpath = module.metadata.get('webui_module_path')# Add the below linesif path == '':path = '/'if path is None or path == '/':return path
接着保存文件,并且继续进行Chromium浏览器编译即可。