A API ARCore Cloud Anchor, ou o serviço ARCore Cloud Anchor, oferece recursos de âncora na nuvem para seus apps iOS, o que faz para os usuários de dispositivos iOS e Android compartilharem experiências de RA.
Neste guia, mostramos como:
- Configurar o ambiente de desenvolvimento para trabalhar com o Cloud Anchors
- Testar a hospedagem e a resolução de âncoras em um app de exemplo
Pré-requisitos
- Xcode versão 13.0 ou posterior
- Cocoapods 1.4.0 ou posterior, se estiver usando Cocoapods
- Um dispositivo Apple compatível com ARKit com iOS 12.0 ou mais recente (destino de implantação do iOS 12.0 ou posterior obrigatório)
Como usar o Cloud Anchors
As etapas a seguir usam o app de exemplo Cloud Anchors para mostrar as métricas tarefas para configurar e criar um app compatível com o ARCore Cloud Anchors.
Acessar o app de exemplo do Cloud Anchors
Clone ou faça o download do SDK do ARCore para iOS no GitHub para acessar o código do app de exemplo.
Abra uma janela de terminal ou localizador e navegue até a pasta em que você clonou ou fez o download do SDK.
Você pode encontrar o código do app de exemplo em
/arcore-ios-sdk-master/Examples/CloudAnchorExample
.O exemplo de código do app de âncoras da nuvem persistentes está em
/arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample
.
Configuração da sessão
O aplicativo de exemplo executa as seguintes tarefas importantes como parte da configuração do sessão:
- Como criar um
GARSession
- Como criar um
ARSession
e executá-lo - Como definir um
ARSessionDelegate
. - Passagem de
ARFrame
s para oGARSession
no métodosession:didUpdateFrame:
.
Configurar o compartilhamento do ID do Cloud Anchor
O app de exemplo Cloud Anchors usa o Firebase para compartilhar IDs do Cloud Anchor entre dispositivos. É possível usar uma solução diferente nos seus próprios apps.
Para configurar o banco de dados do Firebase no app de exemplo:
- Siga as instruções do Firebase para adicionar o Firebase ao seu app.
- Faça o download do arquivo
GoogleService-Info.plist
gerado como parte da adição Firebase ao seu app. - Ative o armazenamento do Firebase para a amostra:
- Acesse o Console do Firebase e selecione o projeto que você configurou o app de exemplo.
- Selecione o painel Database.
- Na opção Realtime Database, clique em Get Started.
- O menu Security rules for Realtime Database será aberto.
- Para executar a amostra, selecione Start in test mode.
- Se você estiver usando o Firebase para um app que planeja publicar, use regras de segurança mais restritivas.
- No Xcode, adicione o arquivo
GoogleService-Info.plist
ao seu app, ao lado deInfo.plist
.
Configurar a API ARCore
Para usar o Cloud Anchors, primeiro você precisa configurar o API ARCore para seu aplicativo.
Executar atualização do pod
O app CloudAnchorExample é enviado com um Podfile
pré-configurado com o
o SDK do ARCore e as versões para iOS necessárias. Para instalar essas dependências:
- Abra uma janela do Terminal e execute
pod update
na pasta em que o O projeto Xcode existe.
Isso gera um arquivo.xcworkspace
que você usará posteriormente para criar e executar o app.
Consulte Adicionar o SDK do ARCore ao seu app
para conferir detalhes sobre como configurar o Podfile
nos seus apps.
Abra o arquivo
.xcworkspace
do projeto no Xcode.Para evitar erros de build, verifique se você está usando o
.xcworkspace
e não o arquivo.xcodeproj
.
Mudar o ID do pacote de app
No Xcode, altere o ID do pacote do app para que você possa assiná-lo com sua equipe.
Criar e executar o app
Conecte seu dispositivo e inicie o app no Xcode.
(Opcional) Se você estiver criando e executando o app de exemplo, consulte as instruções a seguir: seção para detalhes sobre como usar o app para hospedar e resolver âncoras do Cloud.
Testar o app de exemplo
Crie e execute o app de exemplo do arquivo
.xcworkspace
para iniciá-lo no seu dispositivo.Se solicitado, conceda permissões de câmera ao app. Em seguida, o ARKit começa a detectar aviões em frente à câmera.
Toque em HOST para entrar no modo de hospedagem. Um código de sala para compartilhar âncoras hospedadas é gerado e aparece na tela.
Toque em um plano para começar a hospedar um âncora da nuvem nele.
- O aplicativo coloca um objeto Android do Andy no plano e anexa uma âncora a ele.
- Uma solicitação de host é enviada para o endpoint de nuvem da API ARCore. O organizador inclui dados que representam a posição da âncora em relação ao recursos visuais próximos a ele.
- Depois que a âncora é hospedada, ela recebe um ID que é usado para resolver problemas âncoras neste espaço.
Toque em RESOLVE e digite o código do quarto para acessar antes Cloud Anchors hospedados nesta sala, usando o mesmo dispositivo ou outro.
- Uma solicitação de resolução é enviada para o endpoint da nuvem da API ARCore.
- A solicitação de resolução inclui um ID de âncora na nuvem. Se o ID corresponder a e a localização da âncora hospedada for bem-sucedida, o servidor retornará o transformação da âncora nas suas coordenadas locais.
- O app de exemplo usa a transformação para adicionar a âncora à cena e para renderizar objetos virtuais anexados a ele.
Adicionar o SDK do ARCore aos seus apps
Nos seus próprios apps, é necessário atualizar Podfile
para incluir os
SDK do ARCore e controle de versões do iOS com suporte. Para fazer isso:
Adicione os seguintes
platform
epod
ao seuPodfile
do projeto:platform :ios, '11.0' pod 'ARCore/CloudAnchors', '~> 1.45.0'
- Abra uma janela do Terminal e execute
pod update
na pasta em que seu projeto Xcode existe.
Isso gera um arquivo.xcworkspace
que você usa para criar e executar o app.
Âncoras de nuvem persistentes
Conforme descrito em Hospedar um Cloud Anchor com persistência,
é possível dar ao âncora da nuvem uma vida útil de até 365 dias. Exemplo de código para
o uso de âncoras de nuvem permanentes está disponível no /arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample
no SDK do ARCore para iOS no GitHub.
Próximas etapas
Consulte o Guia do desenvolvedor do Cloud Anchors para iOS para conferir o código do app de exemplo e saber mais sobre como trabalhar com o Cloud Anchors nos seus próprios apps.
Revise os detalhes na Referência da API ARCore iOS.