如何在Mac OS上基于osquery开源代码构建osquery.app
构建Mac OS版osquery.app的完整步骤
官方默认构建流程只会生成osqueryd等二进制文件,要生成osquery.app bundle,需要在构建阶段启用打包配置,以下是完整步骤:
前置准备
确保你已经完成官方文档中的基础依赖安装(Xcode、Homebrew相关依赖),并且克隆了osquery源码仓库、拉取了所有子模块。
具体构建步骤
- 清理并初始化构建目录
进入osquery源码根目录,清理旧构建缓存并创建新的构建目录:
rm -rf build && mkdir build && cd build
- 配置CMake构建参数
运行CMake时添加打包相关参数,指定生成.app bundle:
cmake .. -G Xcode -DOSQUERY_BUILD_PACKAGES=ON -DOSQUERY_BUILD_DMG=OFF -DCMAKE_BUILD_TYPE=Release
参数说明:
DOSQUERY_BUILD_PACKAGES=ON:启用打包流程,触发.app的生成DOSQUERY_BUILD_DMG=OFF:关闭DMG镜像生成,仅输出.app文件(如果需要DMG可改为ON)CMAKE_BUILD_TYPE=Release:构建发布版本,优化性能与体积
- 执行构建
可以选择以下两种方式之一执行构建:
- 使用Xcodebuild构建指定目标:
xcodebuild -project osquery.xcodeproj -target osquery -configuration Release build - 使用CMake命令构建:
cmake --build . --target osquery --config Release
- 获取生成的.app文件
构建完成后,osquery.app会生成在以下路径:
build/osquery/Release/osquery.app
可选:代码签名(用于分发)
如果需要将.app分发给其他用户,必须进行代码签名:
codesign --deep --force --sign "你的Apple开发者证书名称" build/osquery/Release/osquery.app
注意事项
- 确保Xcode命令行工具已正确配置:
xcode-select --switch /Applications/Xcode.app/Contents/Developer - 如果构建时出现依赖缺失,检查子模块是否拉取完整:
git submodule update --init --recursive - 若遇到SDK版本相关错误,可在CMake命令中指定对应SDK路径,例如:
cmake .. -G Xcode -DOSQUERY_BUILD_PACKAGES=ON -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.sdk -DCMAKE_BUILD_TYPE=Release
内容的提问来源于stack exchange,提问作者User0987
相关产品推荐
相关产品推荐

