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 de développement de la compilation et du packageage sur appareil iOS

Contexte

Le LCC Unity SDK est publié sous forme de DLL précompilées. Comme la plateforme iOS exige que les plugins natifs soient liés en tant que bibliothèques statiques (__Internal) plutôt que chargés dynamiquement (dlopen), vous devez effectuer les étapes de configuration supplémentaires décrites dans ce document avant de compiler une application iOS. Il existe une différence fondamentale dans les mécanismes de chargement des plugins natifs entre iOS et les autres plateformes ; les autres plateformes (Windows, macOS, Android, Linux) ne nécessitent aucune opération supplémentaire.

Ce SDK utilise "libwebp" comme cible P/Invoke lorsqu'il est compilé en DLL. Le script intégré Editor/RewriteWebpDllImport.cs du SDK le réécrit automatiquement en "__Internal" lors des compilations iOS, garantissant qu'IL2CPP génère les bons appels de symbole directs.

Remarque :

Lors de la compilation d'une application pour appareil iOS, renommez d'abord Editor/RewriteWebpDllImport.txt dans le package SDK en Editor/RewriteWebpDllImport.cs pour que le script prenne effet. Vous pouvez également modifier directement le suffixe du script dans le package SDK et le copier dans le répertoire Assets/Editor/ du projet.

Prérequis

Le script RewriteWebpDllImport.cs utilise la bibliothèque de réécriture IL Mono.Cecil pendant la compilation, vous devez donc d'abord l'ajouter comme dépendance au projet. Il existe deux façons ; choisissez l'une ou l'autre.

Méthode 1 : Ajouter via le Package Manager (recommandé)

Ouvrez la barre de menus Unity Fenêtre → Package Manager, cliquez sur le bouton + dans le coin supérieur gauche, choisissez Add package by name..., saisissez le nom com.unity.nuget.mono-cecil, saisissez la version 1.11.5, cliquez sur Ajouter, et attendez que le Package Manager finisse l'installation, comme illustré ci-dessous.

Ajouter la dépendance Mono.Cecil par nom dans le Package Manager

Ajouter com.unity.nuget.mono-cecil par nom dans le Package Manager

Méthode 2 : Modifier manuellement manifest.json

Modifiez directement le Packages/manifest.json du projet et ajoutez une ligne sous dependencies :

{
  "dependencies": {
    "com.unity.nuget.mono-cecil": "1.11.5"
  }
}

Après l'enregistrement, revenez à Unity ; l'éditeur résoudra et installera automatiquement la dépendance.

Flux de travail de compilation

Après avoir terminé la configuration préalable, suivez le flux de travail de compilation iOS standard ; RewriteWebpDllImport interviendra automatiquement pendant la compilation.

  1. Renommez Editor/RewriteWebpDllImport.txt en Editor/RewriteWebpDllImport.cs (si ce n'est pas déjà fait).
  2. Dans la barre de menus Unity, sélectionnez Fichier → Paramètres de build, sélectionnez iOS dans la liste des plateformes, et cliquez sur Switch Platform.
  3. Cliquez sur Build (ou Build And Run), sélectionnez un répertoire de sortie, et générez le projet Xcode.
  4. Pendant la compilation, le script réécrit automatiquement toutes les entrées DllImport du SDK ciblant "libwebp" en "__Internal". Après une compilation réussie, la Console affiche un journal similaire à :
[RewriteWebpDllImport] Rewrote 77 P/Invoke entries from "libwebp" to "__Internal".
  1. Ouvrez le projet généré avec Xcode, et dans Build Phases → Link Binary With Libraries de la cible, confirmez que libwebp.a, libwebpdemux.a et libsharpyuv.a sont liés.
  2. Connectez l'appareil iOS, signez et exécutez dans Xcode.

Remarque :

Si le journal [RewriteWebpDllImport] n'apparaît pas dans la Console, cela signifie généralement que le script n'a pas pris effet — confirmez que le suffixe du fichier a été changé de .txt en .cs et que la dépendance Mono.Cecil est correctement installée.

Dépannage

Message d'erreurCauseSolution
Unable to load DLL 'libwebp'Le script n'a pas pris effet, et DllImport pointe toujours vers le nom de bibliothèque dynamiqueConfirmez que RewriteWebpDllImport.txt a été renommé en .cs, recompilez et vérifiez le journal de la Console
Cannot find LCCSDK.dll in staging areaLa DLL principale du SDK n'a pas été trouvée pendant la compilation, et la cible de réécriture est manquanteConfirmez que le SDK est correctement importé dans le projet et que la DLL n'est pas exclue d'iOS par Exclude Platform
Erreurs de compilation liées à Mono.Cecil (espace de noms Mono.Cecil introuvable)Non installé ou version incompatibleAjoutez com.unity.nuget.mono-cecil@1.11.5 selon les « Prérequis » et attendez que le compilateur résolve à nouveau

Remarques

  • Il est recommandé d'utiliser Unity 2022.3 LTS ou supérieur (y compris Unity 6) ; la compatibilité avec Mono.Cecil et IL2CPP ne peut pas être garantie sur des versions trop anciennes.
  • Si vous devez exécuter sur le simulateur iOS, confirmez que la bibliothèque statique liée contient la tranche d'architecture arm64-simulator, sinon le simulateur ne peut pas lier.
  • La configuration ci-dessus n'affecte que la plateforme iOS. Les flux de travail de compilation de Windows, macOS, Android et Linux ne sont pas du tout affectés, et il n'est pas nécessaire de renommer le script ni d'ajouter la dépendance Mono.Cecil.