Testar e publicar seu projeto para iOS (iPhone / iPad)

Testar e publicar seu projeto para iOS (iPhone / iPad)

O processo para publicar uma aplicação na Apple Store costuma ser muito mais complexo que Google Play, por conta do nível de segurança exigida pela Apple. Veremos aqui todos os passos necessários. Nesse tutorial quase não iremos trabalhar com o Cronapp, pois estamos considerando que sua a aplicação já está desenvolvida.

 

Para seguir os passos dessa documentação, é necessário possuir um computador da Apple para gerar um certificado vinculado a sua conta. Essa situação pode ser contornada utilizando o recurso de compilação remota do Cronapp. Acesse a documentação Compilação Remota - iOS para ver os passos necessários.

 

De forma resumida, os passos que veremos nesse tutorial são:

  1. Exportar sua aplicação do Cronapp.

  2. Gerar no portal do desenvolvedor um Provisioning Profiles a partir de um Certificado e um Team ID.

  3. Abrir o projeto na IDE Xcode em um computador da Apple e vincular o Provisioning Profiles ao projeto.

  4. Criar e configurar novo app no site App Store Connect.

  5. Fazer o upload do aplicativo do Xcode para a App Store Connect.

Mostraremos também como testar sua aplicação rodando no simulador do Xcode e em um dispositivo móvel.

Pré-requisitos para o tutorial

Antes de começar a seguir os passos do tutorial é preciso ter certeza de que se tem um ambiente minimamente preparado para reproduzir o exemplo. Abaixo estão os requisitos principais.

Requisitos:

  1. Projeto do tipo mobile criado. Caso haja dúvidas de como criar esse tipo de projeto acesse o link ( Criar projeto ).

  2. Possuir uma ID da Apple. Caso não tenha, crie uma em https://appleid.apple.com/account.

  3. Possuir um computador da Apple com Xcode instalado.

  4. Para publicar a aplicação é necessário possuir uma conta de desenvolvedor. Veja mais detalhes sobre as contas, diferenças e preços em https://developer.apple.com/support/compare-memberships/

 

Observação

Para esse tutorial usamos o macOS Mojave (versão 10.14.4) e Xcode versão 10.2.

Requisitos para publicação

As aplicações submetidas para distribuição na loja da Apple passam por uma análise e é necessário está ciente sobre alguns requisitos para evitar que seu projeto seja rejeitado. Recomendamos fortemente que você leia as Diretrizes de Revisão da App Store, citamos abaixo alguns pontos:

  1. A aplicação iOS deve passar por testes de falha.

  2. É proibido o uso de APIs privadas.

  3. Seu projeto não pode ser um clone ou idêntico aos aplicativos nativos pré-instalados nos dispositivos móveis da Apple.

  4. É necessário integrar o recurso de compra In-app, mesmo que sua aplicação seja totalmente gratuita.

  5. Câmera e microfone só podem ser usados com permissão do usuário.

  6. Seu aplicativo deve usar apenas arte própria para o design. Caso seja de terceiros, é necessário ter permissão de uso.

Configuração e exportação do Cronapp

Antes de iniciarmos as configurações para exportação, é necessário configurar as permissões de acesso aos recursos do sistema, sem essas configurações, seu aplicativo poderá ser rejeitado durante o processo de avaliação pela Apple.

Permissão de acesso aos recursos

As configurações de acesso aos recursos só são necessárias quando o sistema faz uso de algum recurso restrito do dispositivo (Ver lista aqui), caso seu sistema não faça uso desses recursos, avance para o tópico Configurações.

Os dispositivos modernos coletam e armazenam uma grande quantidade de informações confidenciais sobre seus usuários. Muitos aplicativos contam com esse tipo de dados e com o hardware do dispositivo para realizar uma gama de tarefas. Por exemplo, um aplicativo de navegação precisa das coordenadas GPS atuais do usuário para localizá-lo em um mapa.

Os sistemas operacionais da Apple restringem o acesso a dados e recursos protegidos por padrão. Sendo assim, antes que seu aplicativo possa acessar determinados recursos protegidos, como a interface Bluetooth, informações de localização ou as fotos do usuário, o sistema solicita permissão ao usuário em nome do seu aplicativo.

Esta solicitação de acesso à recursos protegidos devem conter uma explicação do motivo pelo qual tais recursos precisam de acesso. Ao ser exibida ao usuário final da aplicação, ele decidirá se deve conceder ou negar a solicitação.

Motivo para acesso aos recursos

Na primeira vez em que seu aplicativo tenta acessar um recurso protegido, o sistema solicita permissão ao usuário. No exemplo a seguir, o aplicativo iOS chamado "Mapas" que necessita de informações relacionadas à localização do usuário exibe um prompt contendo o motivo da utilização do recurso de GPS e solicitando o acesso da aplicação ao local do usuário:

Figura 1.1 - Aplicação solicitando acesso ao recurso GPS do dispositivo

 

Se o usuário conceder a permissão ao aplicativo para acessar o recurso protegido, o sistema lembrará a escolha do usuário e não o solicitará novamente. Se o usuário negar a permissão, a tentativa atual de acesso ao recurso protegido e as tentativas futuras falharão. 

O sistema da Apple gera automaticamente o título do prompt, que inclui o nome do seu aplicativo. Você fornece uma mensagem chamada purpose string ou descrição de uso que será exibida logo abaixo do título padrão da solicitação - no caso do exemplo citado acima, "Sua localização atual será mostrada no mapa e usada para obter itinerários, resultados de busca de locais por perto e tempos estimados de viagem." - para indicar o motivo pelo qual seu aplicativo precisa do acesso. Explicar de forma precisa e concisa ao usuário porque seu aplicativo precisa acessar dados confidenciais, geralmente em uma frase completa, permite que o usuário entenda como seus dados estarão sendo utilizados e aumenta as chances dele conceder acesso ao seu aplicativo.

Nota

Se você estiver usando bibliotecas externas ou SDKs, eles podem fazer referência a APIs que exigem uma sequência de objetivos. Este é o caso da dependência padrão dos projetos Mobile do Cronapp chamada cordova-plugin-cronapp. Embora seu aplicativo não faça uso de todos os recursos dessas APIs, ainda é necessário definir a mensagem de purpose string ou descrição de uso para que sua aplicação possa ser aprovada no processo de App Review da Apple. 

 

Tais mensagens podem ser adicionadas antes da publicação de seu App através da interface do Xcode no arquivo Lista de Propriedades de Informação (Information Property List ou Info.plist):

Figura 1.2 - Adicionando permissão

 

A mensagem mostrada acima, por exemplo, é uma mensagem associada à chave NSPhotoLibraryUsageDescription que se refere à permissão de acesso a pasta de fotos do usuário.

Configuração de acesso aos recursos no Cronapp

Tais mensagens podem ser adicionadas diretamente pelo Cronapp de forma extremamente simples antes da aplicação ser exportada para o Xcode. Acesse no menu do sistema Dispositivos Móveis > Configurações, clique na aba iOS da janela de configurações para acessar os campos na área iOS Privacy Menssages (Figura 1.3).

Por padrão, o Cronapp já adiciona uma mensagem genérica para todos as chaves.

Figura 1.3 - Cada campo destacado representa um chave para um recurso do sistema.

 

Adicionar suas próprias mensagens e mantê-las atualizadas é de suma importância para a aprovação de releases de sua aplicação.

A etapa de Revisão de aplicativos da Apple verifica o uso de recursos protegidos e rejeita os aplicativos que contêm código acessando esses recursos sem uma mensagem de purpose string ou descrição de uso. Por exemplo, caso um aplicativo que acessa contatos e não adiciona uma mensagem à chave "Privacidade - Decrição do uso de contatos" pode receber as seguintes informações da etapa de App Review da Apple sobre o requisito de uma chave NSContactsUsageDescription:

Mensagem de recusa de uma aplicação por não possuir uma descrição de uso de recurso

ITMS-90683: Missing Purpose String in Info.plist - Your app’s code references one or more APIs that access sensitive user data. The app’s Info.plist file should contain a NSContactsUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data.

Redefinir acesso de autorização

Quando seu aplicativo tenta acessar um recurso protegido após a primeira tentativa, o sistema lembra a opção de permissão do usuário e não solicita novamente. Para solicitar ao usuário novamente, você deve redefinir o acesso a esses recursos no seu dispositivo ou sistema. Para redefinir o acesso de permissão a um recurso protegido em aplicativos iOS clique em Settings > General > Reset > Reset Location & Privacy on your device.

Importante

O uso da opção Reset Location & Privacy redefine as configurações de local e privacidade para todos os serviços no seu dispositivo.

Lista de Recursos Protegidos

Veja abaixo a lista dos recursos protegidos, suas chaves e descrições:

Recurso

Chave e descrição

Recurso

Chave e descrição

Bluetooth

Privacidade - Descrição do uso periférico de Bluetooth (NSBluetoothPeripheralUsageDescription)

Especifica o motivo do seu aplicativo usar o Bluetooth.

Calendário

Privacidade - Descrição de Uso de Calendários (NSCalendarsUsageDescription)

Especifica o motivo pelo qual seu aplicativo acessa as agendas do usuário.

Lembretes

Privacidade - Descrição do uso de lembretes (NSRemindersUsageDescription)

Especifica o motivo pelo qual seu aplicativo acessa os lembretes do usuário.

Câmera

Privacidade - Descrição do uso da câmera (NSCameraUsageDescription)

Especifica o motivo pelo qual seu aplicativo acessa a câmera do dispositivo.

Microfone

Privacidade - Descrição do uso do microfone (NSMicrophoneUsageDescription)

Especifica o motivo do seu aplicativo acessar qualquer um dos microfones do dispositivo.

Contatos

Privacidade - Descrição do uso de contatos (NSContactsUsageDescription)

Especifica o motivo pelo qual seu aplicativo acessa os contatos do usuário.

Face ID

Privacidade - Descrição do uso do Face ID (NSFaceIDUsageDescription)

Especifica o motivo do seu aplicativo usar o Face ID.

Saúde

Privacidade - Descrição do uso de compartilhamento de saúde (NSHealthShareUsageDescription)

Especifica o motivo pelo qual seu aplicativo lê os dados de integridade do usuário.

 

Privacidade - Descrição do uso da atualização de saúde (NSHealthUpdateUsageDescription)

Especifica o motivo do seu aplicativo fazer alterações nos dados de saúde do usuário.

Home Kit

Privacidade - Descrição do uso do HomeKit (NSHomeKitUsageDescription)

Especifica o motivo pelo qual seu aplicativo acessa os dados de configuração do HomeKit do usuário.

Localização

Privacidade - Descrição de uso contínuo de Localização (NSLocationAlwaysUsageDescription)

Especifica o motivo do seu aplicativo acessar as informações de localização do usuário o tempo todo.

 

Privacidade - Descrição de uso de Localização (NSLocationUsageDescription)

Especifica o motivo do seu aplicativo acessar as informações de localização do usuário o tempo todo.

 

Privacidade - Descrição de Localização quando em uso (NSLocationWhenInUseUsageDescription)

Especifica o motivo pelo qual seu aplicativo acessa as informações de localização do usuário enquanto ele estiver em uso.

Media Player

Privacidade - Descrição do uso da biblioteca de mídia (NSAppleMusicUsageDescription)

Especifica o motivo do seu aplicativo usar a biblioteca de mídia.

Acelerômetro

Privacidade - Descrição do uso de movimento (NSMotionUsageDescription)

Especifica o motivo pelo qual seu aplicativo acessa o acelerômetro do dispositivo.

Fotos

Privacidade - Descrição da utilização das adições à biblioteca de fotos (NSPhotoLibraryAddUsageDescription)

Especifica o motivo pelo qual seu aplicativo obtém acesso somente de gravação à biblioteca de fotos do usuário.

 

Privacidade - Descrição do uso da biblioteca de fotos (NSPhotoLibraryUsageDescription)

Especifica o motivo pelo qual seu aplicativo acessa a biblioteca de fotos do usuário.

NFC

Privacidade - Descrição do uso do leitor NFC (NFCReaderUsageDescription)

Especifica o motivo pelo qual seu aplicativo usa o leitor NFC do dispositivo.

Configurações

Com seu projeto mobile aberto no Cronapp, vamos realizar algumas configurações necessárias para exportar e rodar no Xcode.

No menu do sistema, acesse Dispositivos móveis > Configurações e acesse a aba Aplicativo na Janela que abrir. (Figura 1.4)

Figura 1.4 - Configurações da aplicação dos dispositivos móveis

 

  1. Pacote ID: define o Id da sua aplicação, esse identificador deverá ser único na loja da Apple. Por isso que normalmente usamos o domínio da empresa de forma invertida e o nome da aplicação no final.
    Ex: br.com.nome_da_empresa.nome_do_aplicativo

  2. Nome: nome da aplicação.

  3. Descrição: pequena descrição da aplicação.

  4. Informações do desenvolvedor: campos que definem e-mail, site e nome do autor da aplicação.

  5. Versão: define a versão atual da aplicação.

  6. Tipo de Compilação

    • debug: os dados serão exportados apenas para a versão de testes da aplicação.

    • release: os dados serão exportados para uma nova versão que será lançada na loja.

  7. Ícone*: define o ícone que será usado na aplicação. Recomendamos o uso de uma imagem com resolução 1024 x 1024 px.

  8. Abertura*: define a imagem que é usada na abertura da aplicação, recomendamos que a imagem tenha uma resolução de 2732 x 2732 px.

  9. URL do Servidor (produção): indica a URL do servidor da sua aplicação.

* A Apple exige que sejam inseridas imagens para cada tamanho de tela. Ao adicionar essas imagens nos campos ícones e abertura, elas serão redimensionadas para os tamanhos recomendados automaticamente.

 

Observação

No campo 9 da Figura 1.4 estamos usando a URL de debug gerado pelo Cronapp. Lembramos que esse endereço é temporário e poderá ser alterado se você parar e executar novamente o servidor da aplicação no Cronapp, Caso o endereço de debug altere, veja aqui como configurar no projeto aberto já no Xcode.

Finalizada as configurações, clique no botão Salvar.

Compilação

Após realizar as configurações na etapa anterior, vamos compilar o projeto. Ou melhor, na prática o que o Cronapp faz é compactar o projeto de modo que possa ser aberto pelo Xcode, no MacOS, pois a Apple só permite compilar as aplicações que rodam em suas plataformas através da sua própria IDE. 

Verifique a versão compatível do sistema operacional iOS em Requisitos recomendados.

 

Acesse Dispositivos móveis > Gerar Projeto Nativo > Xcode.

Caso o Cronapp não encontre a assinatura digital, será gerada sem a mesma, ou seja, será gerado em modo debug. Mas veremos também como adicionar essa assinatura digital posteriormente, no Xcode.

Figura 1.5 -  Gerando a aplicação IOS no Cronapp

 

Após exibir a mensagem "Sua aplicação foi gerada com Sucesso!", clique em Baixar para iniciar o download e descompacte o arquivo em alguma pasta.

Testar ou publicar ?

Os passos a seguir terão que ser feito obrigatoriamente em um computador da Apple com o Xcode instalado. O Xcode é o ambiente de desenvolvimento integrado (IDE) para criar aplicativos para Mac, iPhone, iPad, Apple Watch e Apple TV.

Verifique se o seu Xcode está atualizado, caso esteja sem atualizações a muito tempo, é provável que você não consiga compilar seu projeto. Para esse tutorial estamos usando a versão 10.2 do Xcode.

Os passos para simular a aplicação no Xcode são simples, porém para testar em um dispositivo móvel ou publicar na loja da Apple é um pouco mais trabalhoso por conta das configurações necessárias no portal da Apple. Mas não se preocupe, mostraremos tudo de forma detalhada!

Simulação no Xcode

  1. Abrindo o projeto no Xcode

  2. Simulando a aplicação no Xcode

Testar em dispositivo local

  1. Abrindo o projeto no Xcode

  2. Portal Developer da Apple

  3. Vinculando o Provisioning profile ao seu projeto

  4. Executar em um dispositivo físico

Publicar na Apple Store

  1. Abrindo o projeto no Xcode

  2. Portal Developer da Apple

  3. Vinculando o Provisioning profile ao seu projeto

  4. App Store Connect

  5. Upload do app pelo Xcode

  6. Publicação pela Apple Store Connect

  7. Aplicativo Rejeitado

Abrindo o projeto no Xcode

Abra o Xcode, selecione a opção Open another project... (item 1 da figura 1.6) e selecione o diretório descompactado com o projeto que geramos do Cronapp.

Figura 1.6 -  Abrindo novo projeto no Xcode

 

O Xcode solicitará uma autorização para abrir o projeto, confirme. (Figura 1.7)

Figura 1.7 -  Confirmação ao abrir projeto baixado da internet


Teremos ainda que fazer uma pequena configuração no Xcode. Como o Cronapp utiliza o Cordova, é necessário que configuremos o Xcode para rodar em modo Legacy.

Para configurar acesse no menu do sistema File > Workspace Settings... e na janela de configurações, altere os campos Build System (1 e 2) para a opção Legacy Build System, como na figura 1.8. 

Figura 1.8 - Rodando em modo Legacy

Alterar endereço do servidor

Ao utilizar o servidor de testes do Cronapp durante a fase de desenvolvimento é comum que este endereço mude depois de algum tempo. Caso isso ocorra não será possível fazer requisições ao servidor, como logar no aplicativo.

Nesse caso você pode obter o novo endereço rodando o projeto no Cronapp e substituindo no arquivo hostApp.js, que se encontra no caminho informado na área 1 da figura 1.9.

Figura 1.9 - Local com o endereço do servidor

Simulando a aplicação no Xcode

Com o projeto aberto, selecione qual o modelo do dispositivo que deseja simular (item da figura 1.10) e rode a aplicação (item da figura 1.10).

Figura 1.10 -  Iniciando a aplicação no simulador

 

O simulador irá iniciar o iOS e abrir automaticamente o aplicativo. (Figura 1.11)

Observação

Lembramos que o servidor da aplicação deve estar rodando para conseguir logar e acessar a aplicação, caso contrário aparecerá uma mensagem de erro dentro da aplicação do Cronapp.

Figura 1.11 -  Executando a aplicação no simulador

Portal developer da Apple

O portal de desenvolvimento da Apple possui vários recursos para o desenvolvimento na plataforma. Usaremos o portal para configurar os IDs, gerar os certificados e profiles, permitindo testes em dispositivos físicos e a publicação na Apple Store.

Constantemente a Apple remodela o layout do portal ou faz pequenas modificações no processo de publicação e testes. Caso isso ocorra, nos avise através da nossa central de ajuda para atualizarmos a nossa documentação: https://www.cronapp.io/pt-br/central-de-ajuda/

Como informado nos itens 2 e 4 dos requisitos para esse tutorial, é necessário possuir um Apple ID e uma conta desenvolvedor individual ou empresarial, tendo essas duas condições, logue no portal do desenvolvedor: https://developer.apple.com/

Figura 2.1 -  Menus do portal do desenvolvedor

 

Principais serviços do portal:

  • Membership: Informações da conta e os acordos legais.

  • People: Gerencie os membros de sua equipe, convide membros para a equipe ou altere as regras dos membros da equipe.

  • Certificates, IDs & Profiles: Gerencie seus certificados, chaves, identificadores, dispositivos e perfis de aprovisionamento que você usa para acessar os serviços na sua aplicação ou na loja.

  • App Store Connect: Publique e gerencie seu conteúdo na App Store, faça upload de versões beta de sua aplicação para testes com o TestFlight e obtenha relatórios financeiros e analíticos.

 

As configurações necessárias para teste e publicação serão feitas acessando o menu Certificates, IDs & Profiles.

Figura 2.2 - Categorias do Certificates, Identifiers & Profiles

Certificates

Existem vários tipos de certificados e cada certificado deverá ser usando para um contexto específico. É possível utilizar o mesmo certificado para diversos aplicativos nas plataformas iOS, tvOS e watchOS, já aplicativos macOS necessitam de outro formato. Certificado de desenvolvimento permite executar seu App em um dispositivo cadastrado usando os serviços de aplicativos cadastrados, enquanto certificado de distribuição possibilita testes e o upload da sua aplicação para a loja da Apple através do App Store Connect.

Os certificados permitem que o sistema identifique quem assinou a aplicação e evita que projetos sejam gerados fora da plataforma da Apple. Por isso, para enviar seu aplicativo para a App Store ou distribuí-lo fora dela, é necessário que tenha uma assinatura com um certificado emitido pela Apple. 

Gerar certificados

Para gerar o certificado, é necessário utilizar um computador da Apple para criar uma solicitação de certificado e validar no portal de desenvolvimento da Apple.

No Computador

Figura 2.3 - Abrindo a funcionalidade Assistente de Certificados a partir da aplicação Acesso às Chaves

 

  1. Abra a aplicação Acesso às Chaves (Keychain Access) e no menu do sistema abra a funcionalidade Acesso às Chaves > Assistente de Certificado > Solicitar um Certificado de uma Autoridade de Certificação... (item 1 da Figura 2.3).

  2. Na janela Assistente de Certificado informe um endereço de e-mail (item 1 da Figura 2.4), um nome para o certificado (2), selecione a opção Salva no disco (3) e clique em Continuar (4).

  3. Aparecerá uma janela para informar o nome do arquivo do tipo Certificate Signing Request (CSR) com extensão .certSigningRequest e selecionar um diretório para salvá-lo. Salve em um local seguro.

Figura 2.4 - Informações para a solicitação de certificado 

Portal de desenvolvimento

Figura 2.5 - Criando novo certificado

 

  1. Acesse a área de certificados em Certificates, Identifiers & Profiles e clique no botão + (item 1 da Figura 2.5).

  2. Na próxima tela deve ser especificado qual tipo de certificado você necessita, os mais básicos são iOS App Development para desenvolvimentoApp Store and Ad Hoc para produção. Selecione a opção que atenda a sua necessidade e clique em Continue.

  3. Será exibido um resumo dos passos para gerar o arquivo Certificate Signing Request (CSR) que criamos anteriormente, basta selecionar Continue no final da tela.

  4. Agora será necessário enviar o arquivo .certSigningRequest que criamos, clique no botão Choose File..., escolha o arquivo, aguarde o fim do upload e clique em Continue.

  5. Na última página ele informará o nome, tipo e data em que expira o certificado. Clique em Download e salve seu certificado em um local seguro. (Figura 2.6)

Figura 2.6 - Download do certificado gerado

No Computador

Após baixar o certificado em seu Macintosh, dê um clique duplo no arquivo que acabamos de fazer o download para adicioná-lo na lista de certificados do sistema.

Para verificar se o certificado foi cadastrado corretamente, acesse novamente o aplicativo Acesso às Chaves e clique na categoria Meus Certificados para visualizar o certificado cadastrado, como na Figura 2.7.

Figura 2.7 - Lista dos certificados

Keys

As chaves privadas permitem que você acesse e autentique a comunicação com alguns serviços de aplicativos, como APNs, MusicKit, MapKit JS e DeviceCheck. Ao contrário dos certificados, as chaves não expiram e podem ser modificadas para acessar mais serviços após sua criação.

No exemplo que estamos fazendo neste tutorial não é necessário criar chaves, pois não estamos utilizando nenhum dos serviços citados.

Identifiers

Um App ID identifica seu aplicativo em um perfil de Provisionamento. Se trata de uma string dividida em duas partes separadas por um ponto (.): o prefixo representa o Team ID, enquanto que o sufixo representa o ID do pacote (Bundle ID) e é usado para identificar um ou mais aplicativos de uma única equipe de desenvolvimento. (Tabela 1)

 

App ID Prefix
(Team ID)

App ID Sufix
(Explicit ou Wildcar ID)

App ID
(Prefix + Sufix)

App ID Prefix
(Team ID)

App ID Sufix
(Explicit ou Wildcar ID)

App ID
(Prefix + Sufix)

329JDE83HD

io.cronapp.*

329JDE83HD.io.cronapp.*

Tabela 1 - O App ID são gerados pela união do prefixo Team ID mais o sufixo Explicit ou Wildcar ID

 

Existem dois tipos de Sufixos :

  • Explicit App ID: Se você planeja incorporar serviços de aplicativos, como o Game Center, compras pelo aplicativo, entre outros ou deseja um perfil de Provisioning exclusivo para um único aplicativo, registre sua aplicação nesse formato. Para criar um ID explícito para o aplicativo, insira uma string exclusiva no campo ID do pacote. Essa string deve corresponder ao ID do pacote do seu aplicativo.
    Ex: item 3 da figura 2.8

  • Wildcard App ID: Esse formato permite que você use um único App ID para corresponder a vários aplicativos. Para criar um ID curinga, insira um asterisco (*) no último dígito no campo ID do pacote, logo após o último ponto.
    Ex: item 4 da figura 2.8

Os serviços de aplicativo são ativados para um ID de aplicativo e servem como uma lista de permissões para um ou mais aplicativos (a depender do sufixo). Você pode ativar serviços de aplicativo ao criar um ID de aplicativo ou pode modificar essas configurações posteriormente. Os serviços Game Center e a Compra no aplicativo são ativados por padrão para o tipo explícito.

Cadastrando do App ID

Para cadastrar o App ID é necessário ter o nome e identificador da aplicação, você pode obter nos campos Display Name e Bundle Identifier na área Identity da aba General no Xcode. (área 3 da Figura 1.10).

Figura 2.8 - Lista dos identificadores das aplicações

 

Para cadastrar basta seguir os passos:

  1. Acesse App ID a área de Identifiers (1) em Certificates, Identifiers & Profiles e clique no botão + (item 2 da Figura 2.8).

  2. Informe o nome da aplicação no campo App ID Description (não é possível usar alguns caracteres especiais, como @, &, *, ', ").

  3. Selecione o Team ID no App ID Prefix (o team ID é gerado no momento que criamos uma conta de desenvolvimento na Apple).

  4. Selecione qual o tipo de Sufixo que deseja para a aplicação conforme explicamos acima (Explicit ou Wildcard App ID).

  5. Selecione os serviços que serão usados por sua aplicação.

  6. Clique em Continue.

  7. Na próxima tela será informado um resumo com o que foi preenchido na tela anterior, verifique e clique em Register.

Devices

A aba lateral Devices serve para que você possa cadastrar os dispositivos físicos que serão usados para testar a aplicação em suas versões de desenvolvimento. É possível cadastrar um único dispositivo por vez, informando o UDID do dispositivo e um nome ou registrar múltiplos dispositivos.

Cadastrando Device

Figura 2.9 - Registrando os dispositivos que terão permissão para testar sua aplicação

 

  1. Acesse All da área de Device em Certificates, Identifiers & Profiles e clique no botão + para adicionar um dispositivo.

  2. Você pode inserir um dispositivo (item 1 da Figura 2.9) ou vários ao mesmo tempo (item 2 da Figura 2.9).

  3. Após inserir os dados (Nome e UDID, veja abaixo como obter), clique em Done para visualizar o relatório dos aparelhos relacionados.

  4. Cique em Register para finalizar.

Obtendo UDID do dispositivo

O UDID é um acrônimo para Unique Device ID (ou identificador único do dispositivo) e se trata de uma combinação alfanumérica única de 40 dígitos específico para os dispositivos com iOS da Apple, seja ele um iPhone, iPad ou iPod touch. O UDID é uma criptografia SHA-1 calculada através da composição do número Serial, IMEI, wifiMac e bluetoothMac do aparelho.

A forma mais simples de obter o UDID é pelo iTunes. Por isso conecte o dispositivo via cabo USB no macOS e o iTunes solicitará acesso ao dispositivo, dê a permissão (Figura 2.10).

Figura 2.10 -  Após conectar o iTunes pedirá permissão de acesso no dispositivo

 

Com o iTunes aberto, selecione o botão destacado na figura 2.11 para exibir as informações do dispositivo.