Krótkie wprowadzenie do kotwic w chmurze w iOS

Interfejs API Cloud Anchor ARCore, czyli usługa Cloud Anchor ARCore, zapewnia funkcje kotwicy chmury dla aplikacji na iOS, dzięki czemu użytkownicy urządzeń z iOS i Androidem mogą udostępniać treści AR.

Z tego przewodnika dowiesz się, jak:

  • Konfigurowanie środowiska programistycznego do pracy z Cloud Anchors
  • Testowanie hostowania i rozwiązywania kotwic w przykładowej aplikacji

Wymagania wstępne

  • Xcode w wersji 13.0 lub nowszej
  • Cocoapods w wersji 1.4.0 lub nowszej (jeśli używasz Cocoapods).
  • Urządzenie Apple z ARKit w wersji 12.0 lub nowszej (wymagany jest cel wdrożenia w wersji iOS 12.0 lub nowszej)

Korzystanie z Cloud Anchors

W tych czynnościach używamy przykładowej aplikacji Cloud Anchors, aby pokazać najważniejsze zadania związane z konfigurowaniem i tworzeniem aplikacji obsługującej stałe punkty ARCore w chmurze.

Pobieranie przykładowej aplikacji Cloud Anchors

  1. Aby uzyskać przykładowy kod aplikacji, skopiuj lub pobierz ARCore SDK na iOS z GitHuba.

  2. Otwórz okno terminala lub Findera i otwórz folder, w którym skopiowano lub pobierano pakiet SDK.

  3. Przykładowy kod aplikacji znajdziesz w 
    /arcore-ios-sdk-master/Examples/CloudAnchorExample.

    Przykładowy kod aplikacji trwałych punktów zakotwiczenia w chmurze znajduje się w pliku
    ./arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample.

Konfiguracja sesji

Podczas konfigurowania sesji przykładowa aplikacja wykonuje te ważne zadania:

Konfigurowanie udostępniania identyfikatora Cloud Anchor ID

Przykładowa aplikacja Cloud Anchors używa Firebase do udostępniania identyfikatorów Cloud Anchor między urządzeniami. W swoich aplikacjach możesz użyć innego rozwiązania.

Aby skonfigurować bazę danych Firebase w przykładowej aplikacji:

  1. Postępuj zgodnie z instrukcjami Firebase dotyczącymi dodawania Firebase do aplikacji.
  2. Pobierz plik GoogleService-Info.plist wygenerowany w ramach dodawania Firebase do aplikacji.
  3. Włącz pamięć Firebase dla próbki:
    • Otwórz konsolę Firebase i wybierz projekt skonfigurowany dla przykładowej aplikacji.
    • Wybierz panel Database.
    • W przypadku opcji Realtime Database kliknij Get Started.
    • Otworzy się menu Security rules for Realtime Database.
      • Aby uruchomić próbkę, wybierz Start in test mode.
      • Pamiętaj, że jeśli używasz Firebase w przypadku aplikacji, którą zamierzasz opublikować, musisz zastosować bardziej restrykcyjne reguły bezpieczeństwa.
  4. W Xcode dodaj plik GoogleService-Info.plist do aplikacji obok Info.plist.

Konfigurowanie interfejsu ARCore API

Aby korzystać z Cloud Anchors, musisz najpierw skonfigurować interfejs ARCore API w swojej aplikacji.

Aktualizacja podprocesu

Aplikacja CloudAnchorExample jest dostarczana z Podfile skonfigurowanymi pakietami SDK ARCore i iOS, których potrzebujesz. Aby zainstalować te zależności:

  1. Otwórz okno Terminala i w folderze, w którym znajduje się projekt Xcode, uruchom polecenie pod update.
    W ten sposób wygenerujesz plik .xcworkspace, którego użyjesz później do skompilowania i uruchomienia aplikacji.

Szczegółowe informacje o konfigurowaniu pakietu Podfile w swoich aplikacjach znajdziesz w artykule Dodawanie pakietu ARCore SDK do aplikacji.

  1. Otwórz plik .xcworkspace projektu w Xcode.

    Aby uniknąć błędów kompilacji, upewnij się, że kompilujesz na podstawie pliku .xcworkspace, a nie pliku .xcodeproj.

Zmień identyfikator pakietu aplikacji

W Xcode zmień identyfikator pakietu aplikacji, aby można było ją podpisać z użyciem zespołu.

Kompilowanie i uruchamianie aplikacji

  1. Połącz urządzenie i uruchom aplikację w Xcode.

  2. (Opcjonalnie) Jeśli kompilujesz i uruchamiasz przykładową aplikację, w następnym rozdziale znajdziesz szczegółowe informacje o używaniu aplikacji do hostowania i rozwiązywania punktów Cloud Anchors.

Wypróbuj przykładową aplikację

  1. Aby uruchomić przykładową aplikację, utwórz ją i uruchom z pliku .xcworkspace na urządzeniu.

  2. Jeśli pojawi się prośba, przyznaj aplikacji uprawnienia do korzystania z kamery. ARKit zacznie wtedy wykrywać płaszczyzny przed kamerą.

  3. Kliknij HOST, aby przejść do trybu hostowania. Na ekranie pojawi się kod pokoju, który służy do udostępniania hostowanych kotwic.

  4. Kliknij samolot, aby rozpocząć hostowanie punktu docelowego w chmurze.

    • Aplikacja umieszcza na płaszczyźnie obiekt Andy Android i dodaje do niego punkt zakotwiczenia.
    • Żądanie hosta jest wysyłane do punktu końcowego w chmurze interfejsu ARCore API. Żądanie hosta zawiera dane przedstawiające położenie uchwytu względem elementów wizualnych znajdujących się w pobliżu.
    • Po hostowaniu kotwicy zostanie jej przypisany identyfikator, który służy do rozwiązywania kotwic w chmurze w tej przestrzeni.
  5. Kliknij RESOLVE i wpisz kod pokoju, aby uzyskać dostęp do wcześniej hostowanych w tym pokoju kotwic chmur, używając tego samego lub innego urządzenia.

    • Żądanie rozwiązania jest wysyłane do punktu końcowego w chmurze interfejsu ARCore API.
    • Żądanie rozwiązania zawiera identyfikator punktu zakotwiczenia w chmurze. Jeśli identyfikator pasuje do hostowanej kotwicy, a lokalizacja się powiedzie, serwer zwróci transformację kotwicy w Twoich współrzędnych lokalnych.
    • Przykładowa aplikacja używa transformacji do dodawania do sceny kotwicy i renderowania przypisanych do niej obiektów wirtualnych.

Dodawanie pakietu ARCore SDK do aplikacji

W swoich aplikacjach musisz zaktualizować pakiet Podfile, aby uwzględnić pakiet ARCore SDK i obsługiwane wersje na iOS. Aby to zrobić:

  1. Dodaj te platformpod do Podfile projektu:

        platform :ios, '11.0'
        pod 'ARCore/CloudAnchors', '~> 1.48.0'
    
  1. Otwórz okno terminala i w folderze, w którym znajduje się projekt Xcode, uruchom polecenie pod update.
    W ten sposób wygenerujesz plik .xcworkspace, który posłuży Ci do skompilowania i uruchomienia aplikacji.

Stałe zakotwiczenia w chmurze

Jak opisano w artykule Hostowanie trwałego łącza Cloud Anchor, możesz nadać łączu czas życia do 365 dni. Przykładowy kod do używania trwałych kotwic w chmurze jest dostępny w katalogu /arcore-ios-sdk-master/Examples/PersistentCloudAnchorExampleARCore SDK na iOS na GitHubie.

Dalsze kroki