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

    • PortalCam P1

      • Przegląd produktu
      • Podstawowa obsługa
      • Korzystanie z aplikacji LCC Scan
      • Konserwacja i pielęgnacja
      • FAQ
  • Seria Lixel K

    • Lixel K1

      • Przegląd produktu
      • Podstawowa obsługa
      • Aktywacja i połączenie urządzenia
      • Przebieg skanowania
      • Pozyskiwanie danych chmury punktów ze współrzędnymi bezwzględnymi
      • Fuzja map
      • Zalecenia dotyczące planowania trasy dla typowych scen
      • Środki ostrożności
      • FAQ
    • Lixel K2

      • Przegląd produktu
      • Podstawowa obsługa
      • Aktywacja i połączenie urządzenia
      • Przebieg skanowania
      • Pozyskiwanie danych chmury punktów ze współrzędnymi bezwzględnymi
      • Fuzja map
      • Zalecenia dotyczące planowania trasy dla typowych scen
      • Środki ostrożności
      • FAQ
  • Seria Lixel L

    • Lixel L2 Pro

      • Przegląd produktu
      • Podstawowa obsługa
      • Aktywacja i połączenie urządzenia
      • Proces skanowania
      • Pozyskiwanie danych chmury punktów ze współrzędnymi bezwzględnymi
      • Punkt pomiarowy
      • Dodatek
      • FAQ
    • Lixel L3

      • Przegląd produktu
      • Podstawowe funkcje urządzenia
      • Aktywacja i połączenie urządzenia
      • Przechwytywanie danych
      • Przechwytywanie współrzędnych bezwzględnych
      • Dodatek
  • Akcesoria

    • Stick Light

      • Przewodnik instalacji
      • Podstawowa obsługa
      • Często zadawane pytania
  • Lixel Studio

    • Wersja i prawa autorskie
    • Instalacja i aktywacja
    • Interfejs oprogramowania
    • Operacje na plikach
    • Przetwarzanie projektu
    • Narzędzia
    • Rysowanie 2D
    • Zastosowania
    • Ustawienia
    • Połączenie z urządzeniem
  • 07-plugin-sdk

    • Unity

      • Wprowadzenie do Unity SDK
      • Funkcje techniczne
      • Wymagania środowiska deweloperskiego
      • Przewodnik szybkiego startu dla PC
      • Przewodnik optymalizacji ustawień projektu
      • Przewodnik deweloperski dla Pico 4 Ultra
      • Przewodnik strumieniowania PC dla Pico 4 Ultra
      • Przewodnik deweloperski dla Quest 3
      • Przewodnik strumieniowania PC dla Quest 3
      • Przewodnik deweloperski dla OpenXR
      • Przewodnik Business Streaming dla Pico 4 Ultra
      • Słownik
      • Często zadawane pytania (FAQ)
      • Skontaktuj się z nami
      • Przewodnik programowania funkcji

        • Przewodnik mieszanego renderowania wielu scen
        • Przewodnik odbierania cieni
        • Przewodnik oświetlenia w czasie rzeczywistym
        • Przewodnik renderowania wielokamerowego
        • Przewodnik renderowania obrazów wysokiej rozdzielczości
        • Przewodnik zgodności formatów danych LCC i LCC2
        • Przewodnik efektu ładowania
        • Przewodnik przełączania trybu renderowania Mip
        • Przewodnik przyciągania do krawędzi i narożników
        • Przewodnik dekala projekcyjnego
        • Przewodnik wideo dekala projekcyjnego
        • Przewodnik podświetlania
        • Przewodnik przycinania w czasie rzeczywistym
        • Przewodnik korekcji kolorów
        • Przewodnik pobierania danych siatki sceny
        • Przewodnik trybu edytora
        • Przewodnik konfiguracji parametrów wydajności renderowania
        • Przewodnik współpakowania aplikacji i danych
        • Przewodnik systemu kolizji
        • Przewodnik problemów z uprawnieniami w deweloperstwie na macOS
        • Przewodnik kompilacji i pakowania na urządzenia iOS
      • Dokumentacja API

        • LCCManager
        • Renderer
        • Typy danych
      • Dziennik zmian

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

Przewodnik kompilacji i pakowania na urządzenia iOS

Tło

LCC Unity SDK jest publikowany w formie wstępnie skompilowanych bibliotek DLL. Ponieważ platforma iOS wymaga, aby wtyczki natywne były linkowane jako biblioteki statyczne (__Internal), a nie ładowane dynamicznie (dlopen), przed zbudowaniem aplikacji iOS musisz ukończyć dodatkowe kroki konfiguracyjne opisane w tym dokumencie. Istnieje fundamentalna różnica w mechanizmach ładowania wtyczek natywnych między iOS a innymi platformami; inne platformy (Windows, macOS, Android, Linux) nie wymagają żadnych dodatkowych operacji.

Ten SDK używa "libwebp" jako celu P/Invoke po skompilowaniu do DLL. Wbudowany skrypt SDK Editor/RewriteWebpDllImport.cs automatycznie przepisuje go na "__Internal" podczas kompilacji iOS, zapewniając, że IL2CPP generuje prawidłowe bezpośrednie wywołania symboli.

Uwaga:

Podczas kompilacji aplikacji na urządzenie iOS najpierw zmień nazwę Editor/RewriteWebpDllImport.txt w pakiecie SDK na Editor/RewriteWebpDllImport.cs, aby skrypt zadziałał. Alternatywnie bezpośrednio zmień rozszerzenie skryptu w pakiecie SDK i skopiuj go do katalogu Assets/Editor/ projektu.

Wymagania wstępne

Skrypt RewriteWebpDllImport.cs używa biblioteki przepisywania IL Mono.Cecil podczas kompilacji, więc musisz najpierw dodać ją jako zależność do projektu. Są dwa sposoby; wybierz jeden.

Metoda 1: Dodaj przez Menedżer pakietów (zalecana)

Otwórz pasek menu Unity Okno → Menedżer pakietów, kliknij przycisk + w lewym górnym rogu, wybierz Dodaj pakiet według nazwy..., wpisz nazwę com.unity.nuget.mono-cecil, wpisz wersję 1.11.5, kliknij Dodaj i poczekaj, aż Menedżer pakietów zakończy instalację, jak pokazano poniżej.

Dodaj zależność Mono.Cecil według nazwy w Menedżerze pakietów

Dodaj com.unity.nuget.mono-cecil według nazwy w Menedżerze pakietów

Metoda 2: Ręcznie edytuj manifest.json

Bezpośrednio edytuj Packages/manifest.json projektu i dodaj wiersz pod dependencies:

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

Po zapisaniu przełącz się z powrotem do Unity; Edytor automatycznie rozwiąże i zainstaluje zależność.

Przepływ kompilacji

Po ukończeniu konfiguracji wymagań wstępnych postępuj zgodnie ze standardowym przepływem kompilacji iOS; RewriteWebpDllImport zainterweniuje automatycznie podczas kompilacji.

  1. Zmień nazwę Editor/RewriteWebpDllImport.txt na Editor/RewriteWebpDllImport.cs (jeśli jeszcze nie zmieniono).
  2. Na pasku menu Unity wybierz Plik → Ustawienia kompilacji, wybierz iOS z listy platform i kliknij Przełącz platformę.
  3. Kliknij Kompiluj (lub Kompiluj i uruchom), wybierz katalog wyjściowy i wygeneruj projekt Xcode.
  4. Podczas kompilacji skrypt automatycznie przepisuje wszystkie wpisy DllImport w SDK kierujące na "libwebp" na "__Internal". Po pomyślnej kompilacji Konsola wyświetla dziennik podobny do:
[RewriteWebpDllImport] Rewrote 77 P/Invoke entries from "libwebp" to "__Internal".
  1. Otwórz wygenerowany projekt w Xcode i w sekcji Fazy kompilacji → Połącz pliki binarne z bibliotekami celu potwierdź, że libwebp.a, libwebpdemux.a i libsharpyuv.a są linkowane.
  2. Podłącz urządzenie iOS, podpisz i uruchom w Xcode.

Uwaga:

Jeśli dziennik [RewriteWebpDllImport] nie pojawia się w Konsoli, zwykle oznacza to, że skrypt nie zadziałał — potwierdź, że rozszerzenie pliku zostało zmienione z .txt na .cs i że zależność Mono.Cecil jest poprawnie zainstalowana.

Rozwiązywanie problemów

Komunikat błęduPrzyczynaRozwiązanie
Unable to load DLL 'libwebp'Skrypt nie zadziałał, a DllImport nadal wskazuje nazwę biblioteki dynamicznejPotwierdź, że RewriteWebpDllImport.txt został zmieniony na .cs, przebuduj i sprawdź dziennik Konsoli
Cannot find LCCSDK.dll in staging areaGłówna biblioteka DLL SDK nie została znaleziona podczas kompilacji, a cel przepisywania jest nieobecnyPotwierdź, że SDK jest poprawnie zaimportowany do projektu, a DLL nie jest wykluczony z iOS przez Exclude Platform
Błędy kompilacji związane z Mono.Cecil (nie można znaleźć przestrzeni nazw Mono.Cecil)Niezainstalowane lub niezgodność wersjiDodaj com.unity.nuget.mono-cecil@1.11.5 zgodnie z „Wymaganiami wstępnymi" i poczekaj, aż kompilator ponownie rozwiąże

Uwagi

  • Zaleca się używanie Unity 2022.3 LTS lub nowszego (w tym Unity 6); zgodności z Mono.Cecil i IL2CPP nie można zagwarantować na zbyt starych wersjach.
  • Jeśli musisz uruchamiać na Symulatorze iOS, potwierdź, że linkowana biblioteka statyczna zawiera wycinek architektury arm64-simulator, w przeciwnym razie symulator nie może linkować.
  • Powyższa konfiguracja dotyczy tylko platformy iOS. Przepływy kompilacji Windows, macOS, Android i Linux nie są w ogóle naruszone i nie ma potrzeby zmiany nazwy skryptu ani dodawania zależności Mono.Cecil.