Alguém instala a versão para iPhone de um cliente VPN num Mac da série M, esta abre, liga-se, e a equipa decide que a questão da plataforma está resolvida. Não está. O que aqui separa resolvido de meramente funcional é a diferença entre uma extensão de aplicação dentro de uma sessão de utilizador e uma extensão de sistema com um contexto global. A Apple suporta de facto fornecedores de túneis de pacotes no modelo de aplicações iOS no Mac, e lista essa disposição em separado do macOS nativo e do Mac Catalyst. O significado desse suporte é mais estreito do que parece. Diz que a disposição é permitida, não que uma dada aplicação o faça bem, nem que o túnel cubra aquilo que assume.

Três disposições, uma tabela

Três disposições importam num Mac e não são permutáveis. Um cliente macOS nativo inclui uma extensão de sistema, que corre num contexto global e pode estar presente antes de alguém iniciar sessão. Uma aplicação iPhone no Apple Silicon inclui uma extensão de aplicação, que corre dentro da sessão do utilizador e termina com ela. O Mac Catalyst está na mesma família de empacotamento da versão para telefone, mas é um alvo diferente com a sua própria linha de implementação.

A comparação abaixo é a parte das indicações de implementação da Apple que vale a pena memorizar, porque responde à maioria das perguntas de conceção antes de uma chamada a um fornecedor.

ArrangementProvider packagingSession contextTypical distribution
iOS app on Apple SiliconApp extensionUser session onlyMac App Store
Native macOS clientSystem extensionGlobal, pre-login possibleDeveloper ID, notarised
Mac CatalystApp extensionUser session onlyMac App Store

Leia a coluna do empacotamento antes da página de marketing: prevê o que acontece ao terminar sessão de forma muito mais fiável do que qualquer lista de funcionalidades.

O que prova um pedido bem-sucedido

A linha de aplicações iOS no Mac é uma disposição realmente suportada e não um truque de simulador, e é por isso que a pergunta volta sempre. Também herda a distribuição através da Mac App Store, pelo que uma aplicação cujo editor nunca ativou a disponibilidade para Mac não aparecerá, por mais permissiva que seja a documentação para programadores.

Uma ligação funcional prova que um pedido de uma aplicação chegou ao seu destino. Não inventaria o resolver do navegador, as aplicações excluídas, a segunda família de endereços nem os dispositivos locais a que o utilizador ainda espera chegar. Um túnel de pacotes transporta o que dizem as suas rotas e o seu âmbito, e esse âmbito vem da configuração da aplicação, não da existência do túnel.

A lacuna é geralmente a cobertura por aplicação

Um cliente que encaminha tudo é fácil de descrever e fácil de testar. Um que inclui uma lista definida de aplicações precisa que essas regras sejam respeitadas nesta implementação, não apenas na versão nativa para Mac. O acesso a dispositivos locais, as exceções de túnel dividido e tudo o que depende de um item da barra de menus que a versão para telefone nunca teve colidem com a mesma parede.

Peça o âmbito por escrito e depois teste o segundo caso, não o primeiro. Qualquer pessoa consegue demonstrar um navegador a chegar à internet através do túnel.

Onde os dois divergem em operação

A duração da sessão é a diferença mais marcada e a menos visível numa demonstração. A Apple documenta as extensões de aplicação como correndo num contexto de utilizador e terminando quando o utilizador termina a sessão, pelo que um Mac que arranca até uma janela de início de sessão não tem túnel até alguém entrar. Se o requisito abranger uma máquina que tem de estar protegida antes da autenticação, a versão para telefone não o consegue satisfazer, por muito bem escrito que esteja o perfil.

Tudo o resto é comparativamente cosmético: uma presença na barra de menus, como o DNS é apresentado, se a aplicação pode sair enquanto o túnel continua ativo. São diferenças reais de usabilidade e não decisões de arquitetura, por isso ordene-as depois da pergunta da sessão.

Decida numa ordem fixa

Ordene as perguntas deliberadamente: cobertura sem assistência primeiro, âmbito por aplicação segundo, distribuição terceiro, polimento da interface por último. Só um cliente nativo com extensão de sistema responde à primeira, e chega ao dispositivo através de MDM e de um perfil gerido. Uma aplicação iOS no Apple Silicon é uma resposta razoável quando uma pessoa se senta à máquina, inicia sessão e quer o túnel para essa sessão.

Antes de assumir o compromisso, faça ao editor três perguntas concretas. O fornecedor de túneis de pacotes é suportado na implementação de aplicações iOS no Mac, aplicam-se aí regras por aplicação e o que acontece ao terminar sessão. Um fornecedor que responde às três numa única mensagem conhece a sua superfície de implementação; um que só responde à primeira descreve uma aplicação que abre num Mac.

Depois verifique na máquina que vai suportar, com a conta e o gateway que realmente vai usar. Uma versão para telefone ligada a um gateway de teste num único portátil é uma prova, não uma implementação.

Artigos relacionados