XGRIDSDocumentation
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • Lixel CyberColor

    • LCC Studio

      • Prise en main
      • Version et mises à jour
      • Téléchargement et installation
      • Aperçu de l’interface et navigation
      • Avant la reconstruction
      • Reconstruction du modèle
      • Reconstruction d’un modèle unique
      • Fusion cartographique
      • Fusion aérienne-terrestre
      • Reconstruction aérienne
      • Mes modèles
      • Autres fonctionnalités
      • Paramètres et compte
      • Convertisseur
      • Reconstruction vidéo
      • Questions fréquentes
    • LCC Scene Editor

      • Version et mises à jour
      • Compte et connexion
      • Présentation du produit et accueil
      • Interface de l’éditeur
      • Modes de navigation de scène
      • Fichier
      • Paramètres
      • Opérations d’édition
      • Fenêtre
      • Barre d’outils globale
      • Ressources et propriétés
      • Barre d’outils gauche
      • Points de vue
      • Portail
      • Skybox
      • Annotations
      • Mesure
      • Parcours
      • Rapport de scène
      • 3D Layout
      • Mini-carte
      • Mode Prévisualisation, Viewer
      • Aide
      • FAQ
      • Point d’apparition
    • LCC Model Editor

      • Version et mises à jour
      • Guide de l’utilisateur
      • Aperçu et interface
      • Opérations sur les fichiers
      • Sélecteurs
      • Modification des modèles
      • Mesure
      • Réglage des couleurs
      • Gestion des ressources
      • Paramètres et aide
      • Questions fréquentes
    • Bonnes Pratiques

      • Fusion de plusieurs modèles 3DGS de grande taille
  • Plugin & SDK

    • Unreal

      • Introduction
      • Démarrage rapide - Windows
      • Démarrage rapide - Linux
      • Démarrage rapide - Quest3
      • Éditions et licences
      • Rendu
      • Rastérisation Tiled (expérimental)
      • Réglages visuels
      • Normales et éclairage
      • Édition de scène
      • Paramètres de performance
      • Guide d'optimisation des performances
      • Intégration avec les plugins tiers et moteur
      • Maillage proxy
      • Animation de chargement
      • Collision
      • Prise en charge du système de navigation
      • Prise en charge de l'eau à couche unique
      • Localisation
      • Questions fréquentes
      • Dépannage
      • Journaux et diagnostics
      • Nous contacter
      • Bonnes pratiques

        • Rééclairer un 3DGS avec un maillage LixelStudio
      • Référence API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actors SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • Journal des modifications

        • 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

      • Introduction au SDK Unity
      • Fonctionnalités techniques
      • Exigences de l'environnement de développement
      • Guide de démarrage rapide PC
      • Guide d'optimisation des paramètres de projet
      • Guide de développement Pico 4 Ultra
      • Guide de streaming PC du Pico 4 Ultra
      • Guide de développement Quest 3
      • Guide de streaming PC du Quest 3
      • Guide de développement OpenXR
      • Guide Business Streaming du Pico 4 Ultra
      • Glossaire
      • FAQ
      • Nous contacter
      • Guide de développement des fonctionnalités

        • Guide de développement du rendu mixte multi-scènes
        • Guide de développement de la réception des ombres
        • Guide de développement de l'éclairage en temps réel
        • Guide de développement du rendu multi-caméras
        • Guide de développement du rendu d'images haute résolution
        • Guide de développement de la compatibilité des formats de données LCC et LCC2
        • Guide de développement de l'effet de chargement
        • Guide de développement du basculement du mode de rendu Mip
        • Guide de développement de l'accrochage aux arêtes et aux coins
        • Guide de développement du décalque projeté
        • Guide de développement du décalque projeté vidéo
        • Guide de développement du surlignage
        • Guide de développement de la découpe en temps réel
        • Guide de développement du réglage des couleurs
        • Guide de développement de l'obtention des données Mesh de la scène
        • Guide de développement du mode éditeur
        • Guide de configuration des paramètres de performance de rendu
        • Guide de développement du co-packageage de l'application et des données
        • Guide de développement du système de collision
        • Guide des problèmes d'autorisation de développement macOS
        • Guide de développement de la compilation et du packageage sur appareil iOS
      • Référence de l'API

        • LCCManager
        • Renderer
        • Types de données
      • Journal des modifications

        • v2.3.0
        • v2.2.10
        • v2.2.0
        • v2.1.19
        • v2.0.14

Guide des problèmes d'autorisation de développement macOS

Comme le LCC Unity SDK utilise une bibliothèque de décodage webP tierce, vous pouvez rencontrer l'erreur « Failed to open xxx.bundle » lors de l'utilisation du SDK sur macOS. Il s'agit du mécanisme de sécurité de macOS (Gatekeeper) qui bloque l'exécution de plugins tiers non certifiés, et cela n'a rien à voir avec Unity ou le SDK lui-même.

Ce guide comporte deux parties :

  • Partie 1 : Résoudre temporairement les problèmes d'autorisation des bibliothèques tierces dans l'environnement de développement.
  • Partie 2 : La solution formelle lors du packageage d'une application (pour la distribution publique).

Partie 1 : Résoudre temporairement les problèmes d'autorisation des bibliothèques tierces dans l'environnement de développement

Les méthodes suivantes s'appliquent pour supprimer rapidement la restriction du bundle pendant le développement ; essayez-les par ordre de priorité.

Méthode 1 : Autoriser directement dans les réglages système (la plus rapide)

ÉtapeOpération
1Ouvrez les Réglages système du Mac, et trouvez Confidentialité et sécurité à gauche
2Faites défiler vers le bas pour trouver la section « Sécurité »
3Trouvez l'invite « xxx.bundle a été bloqué », et cliquez sur le bouton Autoriser adjacent
4Redémarrez Unity, puis réimportez ou exécutez le SDK

Méthode 2 : Supprimer l'attribut de quarantaine via le Terminal (la plus complète)

macOS ajoute l'attribut de quarantaine com.apple.quarantine aux fichiers téléchargés depuis le réseau ; vous pouvez le supprimer directement avec une commande du Terminal.

ÉtapeOpération
1Ouvrez Launchpad → Autres → Terminal
2Saisissez la commande (gardez un espace final) : sudo xattr -rd com.apple.quarantine
3Faites glisser le fichier xxx.bundle qui a signalé l'erreur directement dans la fenêtre du Terminal pour compléter automatiquement le chemin
4Appuyez sur Entrée, et saisissez le mot de passe de connexion du Mac (non affiché pendant la frappe, ce qui est normal)
5Redémarrez Unity après la fin de la commande

Conseil :

Cette commande nécessite des privilèges administrateur (sudo). L'écran n'affichera rien pendant que vous tapez le mot de passe ; terminez simplement de taper et appuyez sur Entrée.

Méthode 3 : Ajouter des autorisations d'exécution (complémentaire)

Si les méthodes 1 et 2 ne fonctionnent toujours pas, ajoutez des autorisations d'exécution au bundle :

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

Vous pouvez également faire glisser le fichier bundle dans le Terminal pour compléter automatiquement le chemin, appuyer sur Entrée et redémarrer Unity.

Méthode 4 : Vérifier les paramètres de plateforme du plugin Unity

ÉtapeOpération
1Trouvez le fichier xxx.bundle dans la fenêtre Projet de Unity
2Sélectionnez-le et regardez la fenêtre Inspecteur
3Dans Platform Settings, cochez Any Platform, ou cochez séparément Standalone / macOS
4Assurez-vous que Exclude Platform n'est pas coché
Vérifier les paramètres de plateforme du plugin du bundle dans l'Inspecteur de Unity

Cocher Any Platform ou macOS dans Platform Settings dans l'Inspecteur

Méthode 5 : Désactiver temporairement Gatekeeper (dernier recours)

Avertissement :

Cette méthode réduit la sécurité du système. Elle n'est recommandée que pour une utilisation temporaire sur une machine de développement ; assurez-vous de le réactiver une fois le développement terminé.

Si aucune des méthodes ci-dessus ne fonctionne, vous pouvez désactiver temporairement la vérification de sécurité du système :

sudo spctl --master-disable

Vérifiez s'il est désactivé :

spctl --status
# assessments disabled s'affiche lorsqu'il est désactivé avec succès

Réactivez la protection de sécurité une fois le développement terminé :

sudo spctl --master-enable

Partie 2 : Résoudre les problèmes d'autorisation des bibliothèques tierces lors du packageage d'une application

Pour permettre aux utilisateurs finaux d'utiliser une application contenant un SDK tiers sans percevoir le problème, vous devez effectuer « signature profonde du code + notarisation Apple + liaison du ticket Staple » côté développeur. C'est la seule solution standard conforme sur macOS avec zéro opération utilisateur.

Prérequis (tous requis)

N°ConditionDescription
1Apple Developer Program99 USD/an, utilisé pour obtenir le certificat Developer ID Application
2Activer Hardened RuntimeDans Unity Player Settings → Other Settings → Mac, cochez Use Hardened Runtime
3Configurer un Bundle ID uniqueGardez-le cohérent avec le portail développeur
4Désactiver la signature automatique UnityUtilisez le Terminal pour signer manuellement en profondeur après le packageage

Flux de travail complet de signature et de notarisation

Étape 1 : Effacer les attributs étendus

xattr -cr "YourApp.app"

Étape 2 : Signature récursive profonde

Le paramètre --deep parcourt automatiquement tous les fichiers internes .bundle, .dylib et .framework et les signe uniformément, résolvant complètement le problème des bundles tiers bloqués pour être non signés.

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

Point clé :

Remplacez YourCompany (TeamID) par votre Developer ID complet. L'utilisation de --deep garantit que tous les bundles tiers internes sont signés — c'est la cause racine de 90 % des problèmes « erreurs toujours après signature ».

Étape 3 : Packager un zip standard pour la notarisation

Vous devez utiliser la commande ditto pour packager ; n'utilisez pas la compression par clic droit du système (sinon la vérification de notarisation échouera).

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

Étape 4 : Téléverser vers Apple pour la notarisation

Utilisez notarytool (le nouvel outil officiel) pour soumettre à la notarisation ; le backend d'Apple analyse automatiquement le code malveillant :

xcrun notarytool submit build.zip --apple-id your@apple.com --password app-specific-password --team-id TeamID --wait

Attendez que Accepted soit retourné, ce qui signifie que la notarisation a réussi.

Étape 5 : Agrafer le ticket de notarisation dans l'App

Après l'agrafage, les utilisateurs peuvent passer la vérification même en s'ouvrant hors ligne :

xcrun stapler staple "YourApp.app"
# Vérifier s'il a réussi
xcrun stapler validate "YourApp.app"

Tests internes / distribution intranet d'entreprise (alternative)

Si vous n'avez pas encore de compte développeur Apple, vous pouvez distribuer au sein de l'intranet en utilisant l'approche suivante :

ÉtapeOpération
1Unity package le .app
2Sur la machine de build, exécutez : xattr -rd com.apple.quarantine "YourApp.app"
3Distribuez via des outils intranet (scp, cloud d'entreprise, clé USB), ne téléchargez pas via un navigateur

Limitation :

Cette approche ne s'applique qu'au transfert intranet. Les téléchargements par navigateur ajouteront à nouveau l'attribut de quarantaine, provoquant la réapparition de l'erreur de bundle, et n'est pas adaptée à la distribution publique.

Pièges courants

Erreur couranteApproche correcte
A signé uniquement le programme principal, sans --deepDoit utiliser --deep pour signer récursivement tous les bundles / dylibs internes
N'a pas activé Hardened RuntimeCochez-le dans Player Settings avant le packageage Unity, sinon la notarisation échoue directement
A oublié d'agrafer le ticket après la notarisationDoit exécuter xcrun stapler staple, sinon l'ouverture hors ligne affiche toujours la boîte de dialogue
N'a pas effacé les attributs étendus avant la signatureExécutez d'abord xattr -cr pour effacer les attributs résiduels de tous les bundles, puis signez
A utilisé la compression par clic droit du système au lieu de dittoDoit utiliser le packageage standard ditto -c -k, sinon la vérification de notarisation échoue

Résumé

La seule solution standard pour la distribution publique = Apple Developer ID + codesign profond + notarisation notarytool + ticket stapler. Une fois terminé, les utilisateurs téléchargent et utilisent immédiatement, sans boîte de dialogue de sécurité et sans perception du problème.