O Apple Vision Pro é um computador espacial extremamente poderoso, mas existe uma limitação do ecossistema que sempre me incomodou: milhares de aplicativos para iPhone e iPad poderiam funcionar perfeitamente no visionOS, mas simplesmente não aparecem na App Store porque seus desenvolvedores optaram por não disponibilizá-los para a plataforma.
E isso não significa necessariamente que esses aplicativos sejam incompatíveis.
Na verdade, foi justamente essa curiosidade que me levou a um projeto que acabou indo muito além do que eu imaginava: modificar o iLoader para conseguir instalar aplicativos no Apple Vision Pro através de sideload, diretamente pela rede Wi-Fi e sem precisar manter o dispositivo conectado por cabo já que eu não tinha uma developer strap, o Brasil por não ser suportado oficialmente não teria como comprar.
Até onde consegui pesquisar durante o desenvolvimento, essa foi a primeira implementação funcional que encontrei permitindo realizar esse processo dessa forma no Vision Pro. Algum tempo depois, outro desenvolvedor comentou que também estava trabalhando em um fork com uma proposta semelhante, o que mostrou que havia mais gente tentando resolver exatamente a mesma limitação.
Mas por que eu queria fazer isso?
O problema não era necessariamente compatibilidade
Desde o início do Vision Pro, a Apple permite que aplicativos desenvolvidos para iPhone e iPad sejam disponibilizados no visionOS com relativamente pouco esforço quando são compatíveis. O problema é que o desenvolvedor pode optar por não disponibilizar seu aplicativo para o Vision Pro.
Nesse caso, ele simplesmente desaparece da App Store do visionOS.
Isso cria uma situação curiosa: o aplicativo pode ser tecnicamente capaz de funcionar no Vision Pro, mas o usuário não consegue instalá-lo pelos meios convencionais.
Minha intenção não era transformar aplicativos de iPhone em aplicativos espaciais ou modificar sua interface. Eu queria responder uma pergunta muito mais simples:
O que acontece se eu simplesmente conseguir instalar esses aplicativos no Vision Pro?
A resposta acabou sendo mais interessante do que eu esperava.
Aplicativos como WhatsApp, Instagram, Netflix, Roblox e Spotify, entre outros que testei, conseguiram funcionar diretamente no Vision Pro. Em vários casos, a principal barreira não parecia ser técnica. O aplicativo simplesmente não havia sido marcado pelo desenvolvedor como disponível para visionOS.
O iLoader foi o ponto de partida
Eu não comecei esse projeto do zero.
O ponto de partida foi o iLoader, um projeto open source que já possuía boa parte da infraestrutura necessária para comunicação e instalação de aplicativos em dispositivos Apple.
A ideia inicialmente parecia relativamente simples: adaptar o processo para que o Apple Vision Pro pudesse ser descoberto, pareado e utilizado pela rede local.
Na prática, foi bem mais complicado.
O Vision Pro era encontrado através do Bonjour, a rede estava funcionando, DNS estava funcionando e até conexões TCP através de IPv4 e IPv6 funcionavam.
O mais curioso era que o próprio Xcode conseguia encontrar e parear o mesmo Vision Pro pela rede normalmente.
O iLoader, entretanto, não.
Em determinados momentos eu recebia erros como:
No route to host (os error 65)
Isso levou a uma investigação consideravelmente maior do que eu havia planejado.
Se o Xcode conseguia conversar com o Vision Pro utilizando exatamente aquela rede, então o problema provavelmente não estava no roteador ou no headset.
Estava na forma como o iLoader estava realizando esse processo.

Bonjour, TCP e a permissão de rede local do macOS
Uma parte importante da investigação passou pela descoberta do dispositivo através do Bonjour e pela forma como o macOS estava tratando o acesso do aplicativo à rede local.
O aplicativo conseguia enxergar informações relacionadas ao Vision Pro, mas o processo de comunicação necessário para completar o pareamento não avançava corretamente.
Durante os testes, fiz alterações no projeto, incluindo ajustes relacionados ao Bundle Identifier, assinatura do aplicativo com um certificado Apple Development, declaração da permissão NSLocalNetworkUsageDescription e dos serviços Bonjour utilizados pelo aplicativo.
Também alterei partes do teste de conectividade para trabalhar com TCP e com o endpoint real de pareamento descoberto pelo Bonjour, em vez de depender do comportamento anterior.
Depois dessas alterações, finalmente aconteceu aquilo que eu estava tentando conseguir havia algum tempo:
O código de pareamento apareceu dentro do Apple Vision Pro.
O Mac e o Vision Pro conseguiram completar o processo pela rede.
Sem cabo.
A partir dali, o projeto mudou completamente de figura.
Sideload no Vision Pro através do Wi-Fi
Com o pareamento funcionando, eu tinha algo que inicialmente parecia apenas um experimento técnico, mas que rapidamente se transformou em uma ferramenta extremamente interessante para quem gosta de explorar o Vision Pro.
Eu podia instalar um IPA no headset utilizando o Mac e a comunicação pela rede local.
Mais tarde, o projeto evoluiu também para meus testes envolvendo AltStore, SideStore e LiveContainer, ampliando bastante as possibilidades.
De repente, aplicativos e jogos de iPhone e iPad que oficialmente não estavam disponíveis para Vision Pro estavam a poucos cliques de distância.
E foi aqui que ficou evidente para mim uma das situações mais estranhas do atual ecossistema do visionOS.
Muitos aplicativos simplesmente funcionam
Talvez essa tenha sido a parte mais surpreendente de todo o projeto.
Eu esperava encontrar uma quantidade enorme de incompatibilidades, crashes e aplicativos completamente inutilizáveis.
Não foi exatamente isso que aconteceu.
Claro que existem limitações. Um aplicativo desenvolvido para uma tela touchscreen continua sendo essencialmente uma experiência de iPad ou iPhone executada dentro de uma janela no espaço. Isso não transforma automaticamente aquele software em uma boa experiência de computação espacial.
Mas tecnicamente vários aplicativos funcionaram.

Consegui executar diferentes aplicativos e jogos diretamente no Vision Pro, incluindo softwares que simplesmente não estavam disponíveis através da App Store do visionOS.
Isso reforçou algo que eu já suspeitava: em determinados casos, a ausência de um aplicativo no Vision Pro é uma decisão de distribuição, e não necessariamente uma impossibilidade técnica.
E existe uma diferença enorme entre essas duas coisas.
Depois descobri que não era o único tentando fazer isso
Depois que consegui fazer o processo funcionar, outro desenvolvedor comentou que também estava trabalhando em um fork do iLoader com uma proposta semelhante.
Achei isso particularmente interessante.
Projetos open source funcionam exatamente assim. Alguém encontra uma limitação, outra pessoa tenta uma abordagem diferente, alguém corrige uma parte e eventualmente aquilo evolui para algo muito maior do que a ideia original.
Também compartilhei as correções que encontrei com o desenvolvedor original, porque não fazia sentido manter a solução apenas no meu fork.
Meu objetivo nunca foi simplesmente poder dizer “eu consegui”.
O mais interessante era entender por que não funcionava e como fazer funcionar.
O que esse experimento me mostrou sobre o Vision Pro
No final, esse projeto acabou me mostrando algo maior do que simplesmente como instalar um IPA.
Existe um enorme catálogo de software para iOS e iPadOS que potencialmente poderia aumentar imediatamente a biblioteca disponível no Vision Pro.
É evidente que executar um aplicativo 2D dentro de uma janela não é o futuro da computação espacial. Eu continuo acreditando que o verdadeiro potencial do Vision Pro está em experiências desenvolvidas especificamente para computação espacial.
Mas existe uma diferença entre dizer que um aplicativo não aproveita todo o potencial do Vision Pro e impedir que o usuário tenha acesso a ele.
Netflix é um bom exemplo dessa discussão. Se um aplicativo tradicional consegue funcionar como uma janela dentro do visionOS, eu prefiro ter essa possibilidade enquanto uma experiência realmente espacial não existe.
O mesmo vale para redes sociais, utilitários, jogos e inúmeras outras categorias.
No final, começou apenas como curiosidade
Como vários dos meus projetos envolvendo o Vision Pro, tudo começou com uma pergunta.
Será que dá para fazer?
Peguei o iLoader, comecei a investigar o funcionamento do pareamento, passei por Bonjour, permissões de rede local, TCP, assinatura, Bundle Identifier, erros de conexão e vários testes até finalmente ver o código de pareamento aparecer dentro do headset.
Quando apareceu, eu já sabia que a parte mais difícil estava resolvida.
Depois vieram os aplicativos.
WhatsApp, Instagram, Spotify, Netflix, Roblox e Jogos. Depois lojas alternativas como: AltStore. SideStore LiveContainer e StikDebug para dar um empurrão com JIT.
E aquela pequena experiência acabou se tornando uma maneira completamente diferente de explorar o software que já existe dentro do ecossistema Apple.
Mais do que o sideload em si, para mim esse projeto serviu para demonstrar algo interessante sobre o estágio atual do Vision Pro:
às vezes, o aplicativo que você gostaria de ter no visionOS já funciona nele. Só não deixaram você instalá-lo.
Em breve devo disponibilizar o projeto via Github para download.














