Como o TestFlight faz isso?

197

O TestFlight oferece distribuição beta no ar de aplicativos para iOS (em dispositivos sem jailbreak). Como isso pode ser feito? Esse é um recurso do iOS ou uma exploração de vulnerabilidade?

hpique
fonte
Ótima pergunta, mas não tenho certeza se isso está no tópico. É limítrofe, IMO. Dito isto, eu gostaria de saber a resposta a esta também, então +1
Moshe
Se for um recurso do iOS, certamente me ajudará a entender melhor o provisionamento.
Hpique
12
@ Moshe: Você pode explicar por que você acha que isso é fora de tópico?
Besi
Assim, a pergunta está relacionada a uma ferramenta de distribuição, e não de forma alguma para escrever código. Dito isto, escrevi meu comentário há quase um ano. O ambiente no SO era um pouco diferente.
Moshe
8
Esta é uma pergunta muito boa.
Membro orgulhoso

Respostas:

87

Isso foi possível antes do TestFlight lançar um serviço. A técnica surgiu do mecanismo de distribuição da empresa. Desde a versão 4.0, os dispositivos suportam a instalação da web.

Lembre-se: você ainda precisa assinar a distribuição beta de um conjunto selecionado de UDIDs; não é possível instalá-lo apenas em qualquer dispositivo. Tudo o que eles estão fazendo é levar o e-mail para fora do IPA.

Vejo:

Atualização: quero dizer que o Test Flight é uma das ferramentas mais úteis que usei no desenvolvimento. Tirar o e-mail da IPA fora de cena era um eufemismo - eu estava apenas tentando chamar o mecanismo técnico. Eles fazem um trabalho fantástico gerenciando todo o processo beta. Obter novos dispositivos registrados. Notificando usuários etc.

usuario
fonte
6
como eles ganham dinheiro, diz gratuitamente na página inicial?
Jonathan.
1
Eu imagino que eles iniciarão algum tipo de oferta premium no futuro. Agora é gratuito e o novo SDK é realmente impressionante. Ele pode coletar logs de falhas e informações de uso diretamente de seus clientes de teste e até simbolizá-los se você estiver confortável em carregar seus dsyms.
Nick
7
É impressionante, apenas estou acostumado a "Se é bom demais para ser verdade, geralmente é" na internet :)
Jonathan.
Suspeito que eles ganhem dinheiro cobrando por seus serviços em produção e mantenham os serviços beta gratuitos. Atualmente, eles não oferecem suporte oficial ao uso da produção e continuam fazendo alusão a uma "solução para produção" futura em seus fóruns de suporte.
Nils
5
@ Nick Acho que sua resposta não está totalmente correta. You still need to sign the beta distribution for a select set of UDIDs you can't just willy nilly install it on any device. Para um perfil de provisionamento de distribuição corporativa, você não precisa especificar os dispositivos e pode (pelo menos tecnicamente) instalar o binário em qualquer dispositivo. No entanto, a licença restringe você a instalá-la apenas na empresa para a qual o perfil de distribuição foi emitido.
Besi
91

Este artigo mostrou como a implementação do Apples OTA funciona e pode ser usada também fora das empresas: distribuição de aplicativos sem fio ios

O processo completo está documentado pela Apple . A Apple também publicou documentação e código de amostra para registrar dispositivos e obter o UDID usando perfis, para que seu site possa detectar qual dispositivo está chamando.

Algumas soluções adicionais com diferentes forças:

  • iOS Beta Builder , um aplicativo para Mac para criar o site usando uma compilação. Basta fazer o upload dos arquivos resultantes para o seu servidor da web.

  • Diawi : serviço Web simples. Faça o upload do seu arquivo IPA, opcionalmente defina uma senha e envie um link para seus testadores.

  • AppSendr : serviço da Web para hospedagem de compilação beta, semelhante ao Testflight, mas não inclui o processo de registro do dispositivo. Mas fornece utilitários de implantação para carregar automaticamente novas versões.

  • HockeyKit : projeto de código aberto para hospedagem de versões beta em seu próprio servidor PHP5 com funcionalidades adicionais, como um cliente para atualizações no aplicativo, sites automáticos específicos de dispositivos e manipulação de vários aplicativos. Completamente arquivo e diretório baseado.

  • HockeyApp : Serviço da Web para hospedagem de compilação beta, atualizações no aplicativo, estatísticas e incluindo registro, convite e recrutamento de dispositivos. Também fornece coleta de relatórios de falhas do lado do servidor, simbolização (para todos os threads) e agrupamento de falhas para aplicativos beta e da loja de aplicativos (iOS + Mac). Os SDKs são de código aberto, usando HockeyKit , QuincyKit e PLCrashReporter (que é a única solução segura sobre como fazer a coleta de relatórios de falhas no iOS, consulte este artigo .

Nota: Eu sou o principal desenvolvedor do HockeyKit e QuincyKit e um dos desenvolvedores do HockeyApp .

Kerni
fonte
5

O Testflight basicamente usa o Ad Hoc normal, como já indicado.

Para que isso funcione, você precisa do UDID de todos os dispositivos para adicioná-lo ao perfil Ad Hoc, recompilar o aplicativo com o novo perfil e redistribuir a nova compilação.

Você pode obter o UDID com a ajuda da Solicitação de autenticação OTA. Na verdade, essa é uma etapa realizada no MDM antes que o perfil real seja implementado no dispositivo. Basicamente, ele solicita mais informações sobre o dispositivo e o envia de volta para um servidor especificado.

A primeira etapa está documentada aqui: Configuração do Apple OTA

Acho que o Testflight usa isso logo após o processo de registro para coletar o UDIDnome do telefone, ...

Thomas Fankhauser
fonte
4

Sim, esse é um recurso essencial do iOS para clientes corporativos que desejam distribuir o OTA.

Presumivelmente, você passaria seu UDID para o TestFlight junto com o aplicativo e eles usariam a licença corporativa para enviar o aplicativo para você. Tenho certeza de que estou perdendo muitos detalhes técnicos, mas se você quiser saber mais, a Apple tem um vídeo sobre isso na WWDC 2010.

Entre no developer.apple.com, acesse os Vídeos da WWDC 2010 e use o link para acessar os vídeos . O vídeo que você deseja é "Sessão 108 - Gerenciamento de dispositivos móveis". É muito informativo sobre o que é possível com o OTA e as etapas necessárias para executar o provisionamento do OTA.

Gato robótico
fonte
0

Os dispositivos iOS conservados em estoque são "vulneráveis" à execução do usuário que carrega aplicativos Ad Hoc de qualquer desenvolvedor que possua o UDID desse dispositivo e registra esse UDID entre seus 100 dispositivos permitidos no portal do desenvolvedor da Apple.

A distribuição OTA é apenas outra maneira de instalar uma distribuição de teste beta Ad Hoc de um desenvolvedor inscrito.

hotpaw2
fonte