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

    • PortalCam P1

      • Productoverzicht
      • Basisbediening
      • De LCC Scan App gebruiken
      • Onderhoud en verzorging
      • Veelgestelde vragen
  • Lixel K-serie

    • Lixel K1

      • Productoverzicht
      • Basisbediening
      • Apparaat activeren en verbinden
      • Scanworkflow
      • Puntenwolkgegevens met absolute coördinaten verkrijgen
      • Kaartfusie
      • Suggesties voor routeplanning bij typische scènes
      • Voorzorgsmaatregelen
      • FAQ
    • Lixel K2

      • Productoverzicht
      • Basisbediening
      • Apparaat activeren en verbinden
      • Scanworkflow
      • Puntenwolkgegevens met absolute coördinaten verkrijgen
      • Kaartfusie
      • Suggesties voor routeplanning bij typische scènes
      • Voorzorgsmaatregelen
      • FAQ
  • Lixel L-serie

    • Lixel L2 Pro

      • Productoverzicht
      • Basisbediening
      • Apparaatactivering en -verbinding
      • Scanworkflow
      • Puntenwolkgegevens met absolute coördinaten opnemen
      • Meetpunt
      • Appendix
      • FAQ
    • Lixel L3

      • Productoverzicht
      • Basisfuncties van het apparaat
      • Apparaatactivering en -verbinding
      • Gegevensopname
      • Absolute coördinaten opnemen
      • Appendix
  • Accessoires

    • Stick Light

      • Installatiegids
      • Basisbediening
      • FAQ
  • Lixel Studio

    • Versie en copyright
    • Installatie en activering
    • Software-interface
    • Bestandsbewerkingen
    • Projectverwerking
    • Gereedschappen
    • 2D-tekenen
    • Toepassingen
    • Instellingen
    • Apparaatverbinding
  • 07-plugin-sdk

    • Unity

      • LCC Unity SDK Introductie
      • Technische functies
      • Vereisten voor de ontwikkelomgeving
      • Snelstartgids voor pc
      • Optimalisatiegids voor projectinstellingen
      • Ontwikkelgids voor Pico 4 Ultra
      • Pc-streaminggids voor Pico 4 Ultra
      • Ontwikkelgids voor Quest 3
      • Pc-streaminggids voor Quest 3
      • Ontwikkelgids voor OpenXR
      • Business Streaming-gids voor Pico 4 Ultra
      • Woordenlijst
      • Veelgestelde vragen
      • Contact opnemen
      • Ontwikkelingshandleiding voor functies

        • Ontwikkelgids voor gemengde rendering van meerdere scènes
        • Ontwikkelgids voor het ontvangen van schaduwen
        • Ontwikkelgids voor realtime belichting
        • Ontwikkelgids voor multi-camera rendering
        • Ontwikkelgids voor het renderen van afbeeldingen met hoge resolutie
        • Ontwikkelgids voor compatibiliteit van de gegevensformaten LCC en LCC2
        • Ontwikkelgids voor laadeffecten
        • Ontwikkelgids voor het schakelen tussen Mip-renderingmodi
        • Ontwikkelgids voor rand- en hoeksnapping
        • Ontwikkelgids voor geprojecteerde decal
        • Ontwikkelgids voor video-geprojecteerde decal
        • Ontwikkelgids voor markeren
        • Ontwikkelgids voor realtime knippen
        • Ontwikkelgids voor kleuraanpassing
        • Ontwikkelgids voor het ophalen van scène-Meshgegevens
        • Ontwikkelgids voor de Editor-modus
        • Configuratiegids voor renderprestatieparameters
        • Ontwikkelgids voor het samen verpakken van de applicatie en de gegevens
        • Ontwikkelgids voor het botsingssysteem
        • Gids voor macOS-ontwikkelingsmachtigingsproblemen
        • Ontwikkelgids voor compilatie en verpakking voor iOS-apparaten
      • API-referentie

        • LCCManager
        • Renderer
        • Gegevenstypen
      • Wijzigingslogboek

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

Ontwikkelgids voor compilatie en verpakking voor iOS-apparaten

Achtergrond

De LCC Unity SDK wordt gepubliceerd in de vorm van voorgecompileerde DLL's. Omdat het iOS-platform vereist dat native plug-ins als statische bibliotheken (__Internal) worden gekoppeld in plaats van dynamisch te worden geladen (dlopen), moet je de extra configuratiestappen in dit document voltooien voordat je een iOS-applicatie bouwt. Er is een fundamenteel verschil in het laadmechanisme van native plug-ins tussen iOS en andere platformen; andere platformen (Windows, macOS, Android, Linux) vereisen geen extra bewerkingen.

Deze SDK gebruikt "libwebp" als P/Invoke-doel wanneer deze tot een DLL wordt gecompileerd. Het ingebouwde Editor/RewriteWebpDllImport.cs-script van de SDK herschrijft dit automatisch naar "__Internal" tijdens iOS-builds, zodat IL2CPP de juiste directe symboolaanroepen genereert.

Opmerking:

Hernoem bij het compileren van een iOS-apparaatapplicatie eerst Editor/RewriteWebpDllImport.txt in het SDK-pakket naar Editor/RewriteWebpDllImport.cs zodat het script van kracht wordt. Je kunt ook rechtstreeks de bestandsextensie van het script in het SDK-pakket wijzigen en het naar de map Assets/Editor/ van het project kopiëren.

Vereisten

Het RewriteWebpDllImport.cs-script gebruikt tijdens het bouwen de IL-herschrijfbibliotheek Mono.Cecil, dus je moet deze eerst als afhankelijkheid aan het project toevoegen. Er zijn twee manieren; kies er één.

Methode 1: Toevoegen via Package Manager (aanbevolen)

Open de Unity-menubalk Venster → Package Manager, klik op de knop + in de linkerbovenhoek, kies Pakket toevoegen op naam..., voer de naam com.unity.nuget.mono-cecil in, voer de versie 1.11.5 in, klik op Toevoegen en wacht tot de Package Manager de installatie heeft voltooid, zoals hieronder wordt weergegeven.

Voeg de Mono.Cecil-afhankelijkheid op naam toe in de Package Manager

Voeg com.unity.nuget.mono-cecil op naam toe in de Package Manager

Methode 2: manifest.json handmatig bewerken

Bewerk de Packages/manifest.json van het project rechtstreeks en voeg een regel toe onder dependencies:

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

Schakel na het opslaan terug naar Unity; de Editor lost de afhankelijkheid automatisch op en installeert deze.

Buildworkflow

Volg na het voltooien van de vereiste configuratie de standaard iOS-buildworkflow; RewriteWebpDllImport grijpt tijdens het bouwen automatisch in.

  1. Hernoem Editor/RewriteWebpDllImport.txt naar Editor/RewriteWebpDllImport.cs (als dit nog niet is gebeurd).
  2. Selecteer in de Unity-menubalk Bestand → Buildinstellingen, selecteer iOS in de platformlijst en klik op Platform wisselen.
  3. Klik op Build (of Build And Run), selecteer een uitvoermap en genereer het Xcode-project.
  4. Tijdens het bouwen herschrijft het script automatisch alle DllImport-vermeldingen in de SDK die gericht zijn op "libwebp" naar "__Internal". Na een succesvolle build geeft de Console een log weer die lijkt op:
[RewriteWebpDllImport] Rewrote 77 P/Invoke entries from "libwebp" to "__Internal".
  1. Open het gegenereerde project met Xcode en controleer bij Build Phases → Link Binary With Libraries van het target dat libwebp.a, libwebpdemux.a en libsharpyuv.a zijn gekoppeld.
  2. Sluit het iOS-apparaat aan, onderteken en voer uit in Xcode.

Opmerking:

Als de [RewriteWebpDllImport]-log niet in de Console verschijnt, betekent dit meestal dat het script niet van kracht is geworden — controleer of de bestandsextensie is gewijzigd van .txt naar .cs en of de Mono.Cecil-afhankelijkheid correct is geïnstalleerd.

Probleemoplossing

FoutmeldingOorzaakOplossing
Unable to load DLL 'libwebp'Het script is niet van kracht geworden en DllImport verwijst nog steeds naar de naam van de dynamische bibliotheekControleer of RewriteWebpDllImport.txt is hernoemd naar .cs, bouw opnieuw en controleer de Console-log
Cannot find LCCSDK.dll in staging areaDe hoofd-DLL van de SDK is tijdens het bouwen niet gevonden en het herschrijfdoel ontbreektControleer of de SDK correct in het project is geïmporteerd en of de DLL niet voor iOS is uitgesloten via Exclude Platform
Compilatiefouten gerelateerd aan Mono.Cecil (de naamruimte Mono.Cecil kan niet worden gevonden)Niet geïnstalleerd of de versie komt niet overeenVoeg com.unity.nuget.mono-cecil@1.11.5 toe volgens "Vereisten" en wacht tot de compiler opnieuw heeft opgelost

Opmerkingen

  • Het wordt aanbevolen om Unity 2022.3 LTS of hoger te gebruiken (inclusief Unity 6); compatibiliteit met Mono.Cecil en IL2CPP kan op te oude versies niet worden gegarandeerd.
  • Als je op de iOS-simulator moet draaien, controleer dan of de gekoppelde statische bibliotheek de arm64-simulator-architectuurslice bevat, anders kan de simulator niet koppelen.
  • De bovenstaande configuratie heeft alleen invloed op het iOS-platform. De buildworkflows van Windows, macOS, Android en Linux worden helemaal niet beïnvloed en het is niet nodig om het script te hernoemen of de Mono.Cecil-afhankelijkheid toe te voegen.