XGRIDS文档
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 灵视 P 系列

    • 灵视 P1

      • 产品概述
      • 设备基本操作
      • 使用 LCC Scan App
      • 维护及保养
      • 常见问题
  • 灵光 K 系列

    • 灵光 K1

      • 产品概述
      • 设备基本操作
      • 设备激活与连接
      • 设备采集
      • 获取绝对坐标点云数据
      • 地图融合
      • 典型场景路线规划建议
      • 注意事项
      • 常见问题
    • 灵光 K2

      • 产品概述
      • 设备基本操作
      • 设备激活与连接
      • 设备采集
      • 获取绝对坐标点云数据
      • 地图融合
      • 典型场景路线规划建议
      • 注意事项
      • 常见问题
  • 灵光 L 系列

    • 灵光 L2 Pro

      • 产品概述
      • 设备基本操作
      • 设备激活与连接
      • 设备采集
      • 获取绝对坐标点云数据
      • 实时测量功能
      • 附录
      • 常见问题
    • 灵光 L3

      • 产品概述
      • 设备基本功能
      • 设备激活与连接
      • 设备采集
      • 获取绝对坐标点云数据操作流程
      • 附录
  • 配件

    • 补光灯

      • 安装指导
      • 基本操作
      • 常见问题
  • Lixel Studio

    • 版权
    • 安装与激活
    • 界面说明
    • 文件
    • 工程处理
    • 工具
    • 平面绘制
    • 行业应用
    • 设置
    • 设备感知
    • 常见问题 / FAQ
  • Lixel CyberColor

    • LCC Studio

      • 入门
      • 版本与更新
      • 下载与安装
      • 界面概览与导航
      • 重建前工作
      • 模型重建
      • 单模型重建
      • 地图融合
      • 空地融合
      • 航拍重建
      • 我的模型
      • 其他功能
      • 设置与账号
      • 转换工具
      • 视频重建
      • 常见问题 / FAQ
    • LCC Scene Editor

      • 版本与更新
      • 账号与登录
      • 产品概览与主页
      • 编辑器界面介绍
      • 三种场景漫游快捷操作
      • 文件
      • 设置
      • 编辑操作
      • 窗口
      • 视图工具栏
      • 资产与属性
      • 左侧工具栏
      • 视点
      • 跳转点
      • 天空盒
      • 标注
      • 测量
      • 场景漫游
      • 场景报告
      • 智能户型图(3D Layout)
      • 小地图
      • 预览模式(Viewer)
      • 帮助
      • 常见问题 / FAQ
      • 出生点
    • LCC Model Editor

      • 版本与更新
      • 新手指引
      • 概览与界面
      • 文件操作
      • 选择器
      • 编辑操作
      • 测量
      • 调色
      • 资产管理
      • 设置与帮助
      • 常见问题 / FAQ
    • 采集指南

      • 概述
      • 采集设备总览
      • 通用采集原则
      • 室内场景采集
      • 室外场景采集
      • 大场景采集(地图融合)
      • 空地融合采集
      • 物体采集
      • 人物采集
      • 视频重建采集
      • 高清补拍
      • 控制点(灵视 P1)
      • 常见问题与排查
    • LCC Studio Linux

      • 产品概要说明
      • 基本架构说明书
      • 安装部署说明书
      • 容器启动参数说明书
      • CodeMeter离线授权部署说明书
      • API指令集说明书
      • 附录-开发者数据说明书
      • 附录-错误码列表
      • 单机多卡集群部署QuickStart
    • 使用技巧

      • 多个大型 3DGS 模型融合工作流
    • 历史版本
  • Plugin & SDK

    • Unreal

      • 介绍
      • 快速入门 - Windows
      • 快速入门 - Linux
      • 快速入门 - Quest3
      • 版本与授权
      • 渲染
      • Tiled 光栅化(实验性)
      • 画面调节
      • 法线与光照
      • 场景编辑
      • 性能参数说明
      • 性能优化指南
      • 第三方与引擎插件集成
      • 代理网格
      • 加载动画
      • 碰撞
      • 寻路系统支持
      • 单层水支持
      • 本地化
      • 常见问题
      • 故障排查
      • 日志与诊断
      • 联系我们
      • 最佳实践

        • 用 LixelStudio 网格为 3DGS 重打光
      • API 参考

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • SOG / SPZ / PLY Actors
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • 更新日志

        • v3.4.0
        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1
    • Unity

      • Unity SDK 简介
      • 技术特性
      • 开发环境要求
      • PC 快速开发入门指南
      • 工程设置优化指南
      • Pico 4 Ultra 开发指南
      • Pico 4 Ultra PC 串流指南
      • Quest 3 开发指南
      • Quest 3 PC 串流指南
      • OpenXR 开发指南
      • Pico 4 Ultra 企业串流指南
      • 术语表
      • 常见问题
      • 联系我们
      • 功能开发指南

        • 多场景混合渲染开发指南
        • 阴影接收开发指南
        • 实时光照开发指南
        • 多相机渲染开发指南
        • 高清图像渲染开发指南
        • LCC 与 LCC2 数据格式兼容开发指南
        • 加载特效开发指南
        • Mip 渲染模式切换开发指南
        • 边角点吸附开发指南
        • 投影贴花开发指南
        • 视频流投影开发指南
        • 高亮显示开发指南
        • 实时裁剪开发指南
        • 调色开发指南
        • 获取场景 Mesh 数据开发指南
        • 编辑器模式开发指南
        • 渲染性能参数设置指南
        • 应用与数据协同打包开发指南
        • 碰撞系统开发指南
        • macOS 开发权限问题操作指南
        • iOS 设备编译打包开发指南
      • API 参考

        • LCCManager
        • Renderer
        • 数据类型
      • 更新日志

        • v2.3.0
        • v2.2.10
        • v2.2.0
        • v2.1.19
        • v2.0.14
    • X-Brain

      • 产品概述
      • 硬件接口
      • 快速开始
      • 核心概念
      • 集成指南
      • API 参考
      • 数据类型
      • ROS2 桥接
      • 示例程序
      • 部署与网络
      • 排障与 FAQ
      • 版本与发布
    • Web

      • 介绍
      • 渲染性能优化指南
      • 显卡配置
      • 常见开发问题
      • API参考

        • LCCRender::clearIndexDB
        • LCCRender::dispose
        • LCCRender::load
        • LCCRender::setCamera
        • LCCRender::unload
        • LCCRender::update
        • LCCObject::checkRenderNextFrame
        • LCCObject::clearRenderNextFrame
        • LCCObject::ecef2Prj
        • LCCObject::getBounds
        • LCCObject::getEnvInstancedMesh
        • LCCObject::getInstancedMesh
        • LCCObject::getLodInfos
        • LCCObject::getOriginPosition
        • LCCObject::getProjectionCoordinateSystemInfos
        • LCCObject::hasCollision
        • LCCObject::hasEnvironment
        • LCCObject::hasShcoef
        • LCCObject::intersectsCapsule
        • LCCObject::intersectsRayExt
        • LCCObject::intersectsRayFromOriginExt
        • LCCObject::intersectsSphere
        • LCCObject::lowerToBottom
        • LCCObject::prj2Ecef
        • LCCObject::raiseToTop
        • LCCObject::raycast
        • LCCObject::raycastFromOrigin
        • LCCObject::setAlpha
        • LCCObject::setClipBox
        • LCCObject::setClipPlane
        • LCCObject::setEndLod
        • LCCObject::setLodAutoLevelUp
        • LCCObject::setMaxDistance
        • LCCObject::setMaxNodeSplats
        • LCCObject::setMaxSplats
        • LCCObject::setOriginPosition
        • LCCObject::setPointsColor
        • LCCObject::setRenderState
        • LCCObject::setRotation
        • LCCObject::setScale
        • LCCObject::setSemantic
        • LCCObject::setSemanticColor
        • LCCObject::setSmooth
        • LCCObject::setStartLod
        • LCCObject::setTranslation
        • LCCObject::setVisible
        • LCCObject::togglePointsDisplayMode
        • LCCObject::useEnvironment
        • LCCObject::useShcoef
      • 更新日志

        • v0.6.3
        • v0.6.2
        • v0.6.1
        • v0.6.0
        • v0.5.5
        • v0.5.4
        • v0.5.3
        • v0.5.2
        • v0.5.1
        • v0.5.0
        • v0.4.1
        • v0.4.0
        • v0.3.1
        • v0.3.0
        • v0.2.0
    • Lixel OpenAPI

      • 概述
      • 连接与鉴权
      • 消息模型与编解码
      • 接口清单
      • 实时数据
      • 项目文件访问
      • 错误码
      • Python

        • 快速开始
        • 客户端封装与工具
        • 常见问题
      • C++

        • 快速开始
        • 客户端与示例
        • 常见问题

macOS 开发权限问题操作指南

由于 LCC Unity SDK 中使用了第三方 webP 解码库,在 macOS 上使用 SDK 时,可能遇到「未能打开 xxx.bundle」的报错。这是 macOS 安全机制(Gatekeeper)阻止未认证的第三方插件运行,与 Unity 或 SDK 本身无关。

本指南分两部分:

  • 第一部分:开发环境中临时解决第三方库权限问题。
  • 第二部分:打包应用时的正式解决方案(对外发行)。

第一部分:开发环境中临时解决第三方库权限问题

以下方法适用于开发阶段快速解除 bundle 限制,按优先级依次尝试。

方法一:系统设置直接允许(最快)

步骤操作说明
1打开 Mac 系统设置,在左侧找到 隐私与安全性
2向下滑动,找到「安全性」区域
3找到提示「xxx.bundle 已被阻止使用」,点击旁边的 允许 按钮
4重启 Unity,重新导入或运行 SDK

方法二:终端移除隔离标记(最彻底)

macOS 会对从网络下载的文件打上 com.apple.quarantine 隔离标记,用终端命令可直接移除。

步骤操作说明
1打开 启动台 → 其他 → 终端(Terminal)
2输入命令(末尾保留一个空格):sudo xattr -rd com.apple.quarantine
3将报错的 xxx.bundle 文件直接拖入终端窗口,自动补全路径
4按回车,输入 Mac 开机密码(输入时不显示,属正常现象)
5执行完成后重启 Unity

提示:

此命令需要管理员权限(sudo),输入密码时屏幕不会有任何显示,直接输完回车即可。

方法三:添加可执行权限(补充)

如果方法一、方法二仍未生效,给 bundle 补充执行权限:

chmod -R 755 /path/to/xxx.bundle

同样可以将 bundle 文件拖入终端自动补全路径,回车执行后重启 Unity。

方法四:检查 Unity 插件平台设置

步骤操作说明
1在 Unity Project 窗口找到 xxx.bundle 文件
2选中后查看 Inspector 窗口
3Platform Settings 中勾选 Any Platform,或单独勾选 Standalone / macOS
4确认没有勾选 Exclude Platform(排除平台)
在 Unity Inspector 中检查 bundle 的插件平台设置

在 Inspector 的 Platform Settings 中勾选 Any Platform 或 macOS

方法五:临时关闭 Gatekeeper(终极方案)

警告:

此方法会降低系统安全性,仅建议在开发机上临时使用,开发完成后务必重新开启。

如果以上方法均无效,可临时关闭系统安全校验:

sudo spctl --master-disable

验证是否关闭:

spctl --status
# 显示 assessments disabled 即为关闭成功

开发完成后重新开启安全保护:

sudo spctl --master-enable

第二部分:打包应用解决第三方库权限问题

要让最终用户无感知地使用包含第三方 SDK 的应用,必须在开发者侧完成「代码深度签名 + Apple 公证 + Staple 票据绑定」。这是 macOS 上唯一合规且用户零操作的标准方案。

前置条件(缺一不可)

序号条件说明
1Apple Developer Program99 美元/年,用于获取 Developer ID Application 证书
2开启 Hardened RuntimeUnity Player Settings → Other Settings → Mac 勾选 Use Hardened Runtime
3配置唯一 Bundle ID与开发者后台保持一致
4关闭 Unity 自动签名打包后使用终端手动深度签名

完整签名与公证流程

Step 1:清除扩展属性

xattr -cr "YourApp.app"

Step 2:深度递归签名

--deep 参数会自动遍历内部所有 .bundle、.dylib、.framework 并统一签名,彻底解决第三方 bundle 未签名被拦截的问题。

codesign --force --deep --options runtime --sign "Developer ID Application: YourCompany (TeamID)" "YourApp.app"

关键点:

将 YourCompany (TeamID) 替换为你的开发者 ID 全称。使用 --deep 确保内部所有第三方 bundle 都被签名——这是 90% 的「签名后仍报错」的根本原因。

Step 3:打包标准 zip 用于公证

必须使用 ditto 命令打包,不能用系统右键压缩(否则公证校验会失败)。

ditto -c -k --sequesterRsrc --keepParent "YourApp.app" build.zip

Step 4:上传 Apple 公证

使用 notarytool(官方新版工具)提交公证,苹果后台会自动扫描恶意代码:

xcrun notarytool submit build.zip --apple-id your@apple.com --password 应用专用密码 --team-id TeamID --wait

等待返回 Accepted 即为公证通过。

Step 5:将公证票据钉入 App

Staple 后,用户离线打开也能通过校验:

xcrun stapler staple "YourApp.app"
# 校验是否成功
xcrun stapler validate "YourApp.app"

内部测试 / 企业内网分发(备选方案)

如果暂无 Apple 开发者账号,可用以下方式在内网分发:

步骤操作说明
1Unity 打包出 .app
2在打包机上执行:xattr -rd com.apple.quarantine "YourApp.app"
3通过内网工具分发(scp、企业网盘、U 盘),不要用浏览器下载

局限性:

此方案仅适用于内网传输。浏览器下载会重新添加隔离标记,导致 bundle 报错重现,不适合公网分发。

常见避坑点

常见错误正确做法
只签名主程序,没加 --deep必须使用 --deep 递归签名所有内部 bundle / dylib
没开启 Hardened RuntimeUnity 打包前在 Player Settings 勾选,否则公证直接失败
公证后忘记 staple 票据必须执行 xcrun stapler staple,否则离线打开仍弹窗
签名前未清理扩展属性先执行 xattr -cr 清除所有 bundle 残留属性再签名
用系统右键压缩而非 ditto必须使用 ditto -c -k 标准打包,否则公证校验失败

总结

对外发行的唯一标准方案 = Apple 开发者 ID + 深度 codesign + notarytool 公证 + stapler 票据。完成后用户下载即用,无任何安全弹窗,完全无感知。