Como distribuir o aplicativo ios sem fio sem gerenciar UDIDs e recompilation

Preciso saber quais methods as pessoas estão usando para distribuir (internamente) a demonstração do aplicativo para iPad sem fio sem precisar gerenciar o UDID?

Eu não preciso de uma solução como testflight ou betabuilder, tudo isso requer que eu gerencie o UDID no portal do perfil de aprovisionamento de apple.

Estou fazendo esta pergunta porque estou vendo outro estúdio fazendo uma maneira muito mais inteligente agora e gostaria de saber como eles fizeram isso – Com um link que eles nos deram, podemos instalar o aplicativo de demonstração de um simples HTML no ar, e um perfil de provisionamento aparece magicamente no meu iPad. Tudo isso aconteceu sem eu dizer a eles o UDID do meu iPad e, portanto, definitivamente sem eles para recompilar o projeto.

Como eles fizeram isso?

Eu tenho distribuído meus aplicativos sem fio há vários meses sem problemas. Concedido, estou distribuindo sob a licença Enterprise, que custa US $ 299 por ano e destina-se ao uso comercial interno. Isso pode funcionar com uma licença de desenvolvedor normal, mas você teria que fazer alguns testes para ter certeza. Eu imagino que o processo é o mesmo se funcionar. Estou usando o XCode 4, então isso pode ser um pouco diferente se você estiver usando uma versão diferente. Basicamente, você precisa adicionar um arquivo Entitlements.plist aos seus resources:

New->File->Code Signing->Entitlements 

e antes de distribuir, você precisa alterar:

 "Can be debugged" to NO 

Certifique-se de que seu projeto esteja configurado com os perfis de assinatura de código corretos. Agora vá para:

 Product->archive 

então, com sua input recém-criada, clique em: Compartilhar

 Select "iOS App Store Package (.ipa)" 

e escolha o perfil de distribuição adequado que você deseja usar. Clique em Avançar e escolha um local para salvar o arquivo .ipa em. Antes de clicar em Salvar, você precisa verificar

 Save for Enterprise Distribution 

O arquivo .ipa precisa ser salvo em um servidor FTP, ou pelo menos é assim que eu consegui fazer isso funcionar. Para o campo “URL do aplicativo”, use o caminho para o arquivo .ipa que você deseja salvar, por exemplo,

 ftp://ftp.company.com/Installers/myApp.ipa 

Dê um título a ele e, em “URL de imagem grande” e “URL de imagem pequena”, escolha um caminho para seus arquivos grandes (512×512) e pequenos (72×72), (estou desenvolvendo para iPad, então o iPhone pode ser diferente) . Por exemplo,

 ftp://ftp.company.com/Installers/small.png 

Salve o arquivo .ipa. Agora você precisa colocar seu arquivo .mobileprovision no servidor ftp. Qualquer um que queira executar o aplicativo precisa do arquivo instalado ou não poderá executá-lo. Agora, não tenho certeza se você precisará de um arquivo .mobileprovision que tenha todas as IDs do dispositivo incorporadas, caso você não faça parte do programa corporativo, mas pode tentar ver. Quando seus arquivos estiverem no servidor ftp, você precisará criar um email com links para os dois arquivos, mas o link para o arquivo .ipa deve estar em um formato especial. Para o arquivo de fornecimento:

 ftp://ftp.company.com/Installers/profile.mobileprovision 

e para o arquivo .ipa:

 itms-services:///?action=download-manifest&url=ftp%3A%2F%2Fftp.company.com%2FInstallers%2FmyApp.plist 

Agora, quando você envia este e-mail para alguém, basta primeiro fazer o download e instalar o arquivo .mobileprovision e, em seguida, o arquivo .ipa. Voila, eles estão executando o seu programa. Deixe-me saber se isso funciona sem a assinatura da empresa. Eu imagino que seria, enquanto o arquivo .mobileprovision contivesse o ID do dispositivo.

Editar:

Eu encontrei uma maneira muito melhor de distribuir aplicativos, mas requer que você tenha um servidor PHP. O que você faz é criar um arquivo PHP que gere o arquivo plist em tempo real e retorne isso. Nos links para imagem grande, imagem pequena e arquivo ipa você passa em links para outros arquivos PHP que retornam essas coisas para o seu programa específico. Quando você quiser instalar um aplicativo a partir de um link, basta passar o URL assim:

 itms-services:///?action=download-manifest&url=http://mycompany.com/php/installApp.php?app=myappname 

Em suas funções PHP você apenas inseriria myappname nas outras chamadas PHP, o que puxaria os arquivos apropriados do seu servidor. Usando esse método, você não precisa armazenar os arquivos plist de nenhum de seus aplicativos à medida que são gerados, o que facilita a atualização de seus aplicativos, pois você não precisa redigitar as informações todas as vezes, nem verificar a checkbox de seleção distribuição empresarial, basta salvar o arquivo ipa sobre o antigo e você está pronto para ir. Além disso, é fácil implementar resources de segurança e login com esse método. Além disso, você não precisa instalar especificamente o arquivo de provisão móvel, pois ele se instala quando você instala o aplicativo. Ele é armazenado no arquivo ipa.

Editar:

Apenas para esclarecer o método PHP, você cria um arquivo php que cria arquivos plist. Copie um arquivo plist padrão criado a partir de uma compilation de distribuição corporativa e, em seguida, no seu arquivo php, defina os headers da seguinte forma:

 $pathToAddFi = "installers/".$_GET['app'].".plist"; //points to the php server file location of your .ipa files. when you call this php script, you pass in the name of the ipa file you want to install. Note: this location doesn't actually contain any plist files! $root = "http://yourserver.com/php/root/"; //path to this PHP file's directory header('content-type: application/xml'); header('Content-Disposition: attachment; filename='.basename($pathToAddFi)); header('Content-Transfer-Encoding: binary'); 

Então você constrói uma string substituindo os URLs por seus itens como este:

 ".$root."ipa_serve.php?app=". $_GET['app']." 

e terminá-lo com um último header antes de fazer o eco da string xml:

 header('Content-Length: ' . strlen($myXml)); 

Por último, você cria um arquivo php para servir seu arquivo ipa, um para servir sua imagem grande e outro para servir sua imagem pequena. Deve ser relativamente simples, a menos que você não esteja muito familiarizado com o PHP.

Eu acabei de passar pela mesma coisa. Acho que o grande diferencial é o Enterprise Distribution Profile (US $ 299 por ano) – se você tiver um desses, não precisará ter UDIDs de dispositivo na lista. Se você tem um acordo normal de US $ 99 por ano, precisa fazê-lo. Simples assim.

A boa notícia é que a Apple abandonou recentemente a restrição “500 funcionários”, de modo que qualquer empresa pode obter uma dessas opções : http://blog.apperian.com/2010/10/apple-opens-ios-developer-enterprise.html

Você só precisa obter um número DUNS grátis da Dun and Bradstreet, que leva 30 dias. Nós aplicamos para o nosso e vamos ver como tudo se encheckbox.

Você precisa de um perfil de provisionamento, mas ele está embutido no arquivo .ipa. Ele não precisa ser instalado via iTunes como um instalável separado.

Você deve verificar o TestFlight , um aplicativo da web para gerenciar distribuições de compilation OTA Ad Hoc; é fantástico. Ele faz todos os tipos de coisas inteligentes, incluindo reunir os UDIDs dos dispositivos de seus usuários para você. (Você, o desenvolvedor, ainda precisa inseri-los no portal de provisionamento do Centro de Desenvolvimento do iPhone, mas o usuário pode continuar inconscientemente que os UDIDs existem, não importa que eles tenham que enviá-lo para você. Talvez seja isso que seu chefe usou anteriormente .)

Eu não sei de uma maneira de conseguir isso sem o UDID do usuário. Meu palpite é que o desenvolvedor já tinha o UDID do seu chefe anterior e criou / empacotou um novo perfil de provisionamento, ou seu chefe estava testando um aplicativo da web para dispositivos móveis.

Você pode fazer distribuições ad-hoc um pouco mais facilmente agora com o Wireless App Distribution.

iOS 4: distribuição de aplicativos sem fio para aplicativos internos

O aplicativo ao qual você está se referindo é chamado de Beta Builder . Meu chefe usou pela primeira vez hoje e funcionou muito bem. Definitivamente vale a pena $ 2.

Tudo isso aconteceu sem eu dizer a eles o UDID do meu ipad e, portanto, definitivamente sem eles para recompilar o projeto.

Pouco conhecido: você não precisa recompilar o aplicativo. Você nem precisa renunciar ao aplicativo. Tudo o que importa é que há um perfil de provisionamento instalado que é “semelhante o suficiente” para o embedded.mobileprovision dentro do aplicativo (nome do perfil? ID do pacote configurável? Seed do pacote configurável? Quem sabe).

Alternativamente, eles poderiam estar fazendo construções automatizadas. Talvez. Talvez não.

O que pode estar acontecendo?

  1. O servidor envia um “perfil de configuração” (veja o SCEP / enterprise). Aparentemente isso pode ser usado para obter o UDID do seu dispositivo. TestFlight faz isso.
  2. O servidor faz automaticamente algumas coisas (por captura de canvas ou por meio de alguma API do Enterprise, se houver):
    1. Adicione o dispositivo UDID à lista de dispositivos da Apple.
    2. Diga apple para gerar o perfil de provisionamento.
    3. Baixe o perfil de provisionamento.

A resposta aceita é bem antiga, e encontrei muitos resources confusos para distribuir aplicativos corporativos, então pensei em responder com uma solução melhor.

O HockeyApp é gratuito e permite que você faça o upload de sua Enterprise (e Ad-Hoc), construa e sirva como uma página de download público. Observe que isso só funcionará sem registrar usuários e provisionar os UDIDs de seus dispositivos se você tiver uma conta Apple Enterprise como outras pessoas mencionaram, mas é de longe o stream de trabalho mais rápido e simples para distribuir aplicativos rapidamente para clientes sem a sobrecarga do provisionamento de dispositivos.