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

      • 入門
      • 版本與更新
      • 下載及安裝
      • 介面概覽及導覽
      • 重建前準備
      • 模型重建
      • 單模型重建
      • 地圖融合
      • 空地融合
      • 航拍重建
      • 我的模型
      • 其他功能
      • 設定與帳戶
      • 設置與賬號
      • Converter
      • 影片重建
      • 視頻重建
      • 常見問題
    • 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
    • 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

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 票據。完成後用戶下載即用,無任何安全彈窗,完全無感知。