Você está na página 1de 52

Aplicativo da Central do Assinante para dispositivos iOS

Antes de iniciar a geração do aplicativo iOS, é necessário ter em mãos os seguintes pré-requisitos:

1. Domínio apontado para o IP de seu servidor do sistema IXC com certificado de segurança
SSL instalado (pode ser o mesmo domínio que você já utiliza para acessar seu sistema
IXC).

2. Um computador da Apple com o sistema operacional MacOS, versão 12.5 ou superior;


- NÃO IRÁ FUNCIONAR EM UMA MÁQUINA VIRTUAL (VM).
- Em versões do MacOS inferiores à 12.5 podem ocorrer diversos erros no projeto
impossibilitando a geração.

3. Um iPhone;

4. Uma conta da Apple inscrita no Apple Developer Program (conta de desenvolvedor);


- Clique aqui para obter informações sobre o Apple Developer Program.
- Como criar uma conta e aderir ao Apple Developer Program (Wiki).

5. Aplicativo Xcode na última versão disponível para a sua versão do MacOS.


- Xcode na App Store.

6. Arquivo GoogleService-Info.plist, gerado no Firebase.


- Se você já possui aplicativo Android, precisará utilizar o mesmo projeto do Firebase
utilizado na geração do aplicativo Android para criar o arquivo GoogleService-Info.plist que
será utilizado no projeto iOS. Desta maneira, as notificações push irão funcionar em ambas as
plataformas.
- Caso você tenha dúvidas sobre como realizar a geração do arquivo, poderá acompanhar o
passo a passo logo abaixo. Será feita a geração do arquivo em um projeto do Firebase onde
já há o aplicativo Android, como mencionado acima.

7. Imagem que será utilizada como ícone do aplicativo, na resolução 1024x1024 pixels, no
formato .png e com fundo sólido (não transparente);
- Para realizar a geração de todos os ícones que o projeto necessita, disponibilizaremos um
script que utiliza a aplicação Imagemagick para criá-los.
1 - Fazendo a geração do arquivo GoogleService-Info.plist, no Firebase.

Acesse o site https://firebase.google.com/ com sua conta e clique em “Ir para console”.

Selecione o projeto já existente (ou crie um novo, caso não possua aplicativo Android). Na captura de
tela abaixo você poderá verificar que já existe um projeto criado e que ele possui um aplicativo
Android.

Abra o projeto e então clique em “Adicionar app”.


Selecione a plataforma iOS.

Preencha o campo “ID do pacote Apple” com o seu domínio de trás para frente. Ex.: para o domínio
“ixcsoft.com.br”, o ID do pacote ficaria “br.com.ixcsoft”.
Depois, clique em “Registrar app”.
Após registrar, você poderá baixar o arquivo GoogleService-Info.plist que utilizaremos mais adiante
no projeto. Salve-o em um local seguro.
Após salvá-lo, basta avançar o restante das etapas até voltar para o console do Firebase.

Por enquanto, os passos no Firebase são apenas esses.


2 - Instalação de algumas aplicações que são pré-requisitos para que você
consiga fazer a correta geração do aplicativo.

Instale o programa Xcode em sua máquina através da App Store.

Com o Xcode já instalado, execute os seguintes comandos utilizando o Terminal:


- Obs.: para executar os comandos, abra o “Terminal” em seu Mac, copie e cole o comando e então
tecle “Enter”. Execute o próximo comando sempre que o anterior for finalizado.

Instale o Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Instale o Node:

brew install node

Instale a CocoaPods:

brew install cocoapods

Instale o Imagemagick:

brew install imagemagick

Por último, execute o seguinte comando (será solicitada a senha de seu Mac para executá-lo):

sudo xcode-select --switch /Applications/Xcode.app


3 - Geração dos ícones necessários para o projeto a partir de uma imagem
1024x1024 pixels no formato .png e com fundo sólido.

Faça o download da pasta que contém o script que será utilizado para gerar os ícones clicando neste
link: https://cloud.ixcsoft.com.br/f/423e14645ccd4ad684e8/

Descompacte a pasta e já tenha em mãos a imagem 1024x1024 pixels em formato .png com fundo
sólido (não pode ter fundo transparente).

Coloque a imagem dentro da pasta descompactada juntamente com o script.


- Obs.: apenas ressaltando que a imagem precisa ter resolução de 1024x1024 pixels, não ter o fundo
transparente, estar no formato .png e estar com o nome “1024x1024.png”, sem aspas, como na
captura de tela abaixo. Do contrário, não irá funcionar.
Abra o Terminal na pasta e execute os dois comandos a seguir, respectivamente:

chmod +x ./script.sh

./script.sh
Ao finalizar a geração dos ícones, será criada uma pasta chamada “Images.xcassets”. Essa será a
pasta de ícones utilizada no projeto.
4 - Geração dos certificados necessários para o aplicativo.

Abra o aplicativo “Acesso às chaves”, no Mac. O nome do aplicativo em inglês é “Keychain”.


Vá para Acesso às chaves > Assistente de Certificado > Solicitar um Certificado de uma Autoridade de
Certificação…

Preencha as informações de nome e e-mail.


Selecione a opção “Salvar no disco” e então salve o arquivo em um local seguro.
- Obs.: repita o mesmo processo mais uma vez, pois será necessário dois arquivos
“CertificateSigningRequest.certSigningRequest” (request) mais adiante.
Acesse sua conta de desenvolvedor na Apple Developer e clique em “Certificates”.
- Obs.: note que não há versão em português para o site Apple Developer.

Vá para “Identifiers” e então crie um novo “Identifier”.


Selecione “App IDs” e continue:

Selecione “App” e continue:


Preencha a descrição com o nome que você dará ao aplicativo e o “Bundle ID” com o mesmo “ID
do pacote Apple” (seu domínio de trás para frente) utilizado para gerar o arquivo
GoogleService-Info.plist, no Firebase.

Desça a página até encontrar “Push Notifications” e selecione-a. Após isso, pode continuar e então
registrar.
Ao registrar e voltar para “Identifiers”, clique no identificador que você acabou de criar.
Desça novamente até “Push Notifications” e clique em “Configure”.

Clique em “Create Certificate”, na seção “Production SSL Certificate” (não pode ser na “Development
SSL Certificate”).
Na próxima tela, faça upload do primeiro arquivo “CertificateSigningRequest.certSigningRequest”
(request) que você criou através do “Acesso às chaves” momentos atrás e então clique em
“Continue”.

Faça o download do certificado e salve-o em um local seguro.


Após baixar o certificado, instale-o em sua máquina com um duplo clique em cima do mesmo.
Após esse duplo clique, ele será instalado e estará disponível no “Acesso às chaves”, onde você
deverá exportar a chave privada no formato .p12, como na imagem a seguir:

Ao clicar em “Exportar”, será necessário adicionar uma senha para a chave privada, mas você pode
deixar sem (em branco) e clicar em “Ok”.
Depois disso, será necessário digitar a senha de seu Mac para liberar a exportação.
Salve a chave privada em um local seguro. Será necessário fazer upload dessa chave no Firebase
mais adiante.
Volte ao site Apple Developer, acesse “Certificates” e crie um novo.

Selecione a opção “iOS Distribution (App Store and Ad Hoc)” e continue.


Faça o upload do segundo arquivo “CertificateSigningRequest.certSigningRequest” que você gerou
no “Acesso às chaves” anteriormente e continue.

Faça o download deste novo certificado em um local seguro.


Instale-o da mesma maneira que instalou o anterior, com duplo clique.
- Obs.: desta vez não será necessário exportar a chave privada.
Acesse “Profiles” e crie um novo.

Selecione a opção “App Store”, na seção “Distribution”, e continue.


Selecione o “App ID” que você criou anteriormente e continue.

Selecione o certificado do “App ID” que você criou anteriormente e continue.


Em “Provisioning Profile Name”, preencha com o nome que você dará ao aplicativo e continue.

Faça o download do arquivo (Nome_do_app.mobileprovision) em um local seguro. Esse arquivo será


utilizado mais adiante no Xcode.
5 - Criação do aplicativo na App Store Connect.

Acesse novamente a Apple Developer e dessa vez clique em “Apps”.

Crie um novo aplicativo.


Preencha os campos de acordo com a imagem.
No campo “SKU”, coloque o mesmo nome do aplicativo, em letras minúsculas e sem espaços (pode
separar as palavras com traços).
Após criar o novo aplicativo, podemos fazer todo o processo no Xcode antes de retornar à App
Store Connect.
6 - Geração do projeto do aplicativo utilizando o Xcode.

Baixe o projeto atualizado através deste link e descompacte-o em um diretório de sua


preferência:
- Obs.: caso resolva trocar o nome da pasta antes de descompactá-la, não pode haver espaços no
nome.

Após descompactá-la, faça download do arquivo “Info.plist” que precisará ser substituído clicando
aqui.
Após baixá-lo, substitua o arquivo Info.plist do projeto, que está localizado na pasta do projeto >
pasta ios > pasta CentralMobile, pelo Info.plist que você acabou de baixar.
Substitua também a pasta “Images.xcassets” (pasta do projeto > pasta ios > CentralMobile), pela
pasta Images.xcassets que você gerou anteriormente através do script de geração de imagens.
- Obs.: lembre-se de substituir a pasta, não combiná-la.

Substitua o arquivo GoogleService-Info.plist (pasta do projeto > pasta ios) pelo


GoogleService-Info.plist que você baixou do Firebase.
Troque a URL da Central no arquivo “ConstantesHelper.js” (pasta do projeto > pasta Helpers).
Troque apenas o domínio, não altere o slug “/central_assinante_ios”.
Ex.: https://seudominio.com.br/central_assinante_ios

Abra o Terminal NA PASTA DO PROJETO e execute os seguintes comandos, na seguinte ordem:


rm -rf node_modules

npm install -legacy-peer-deps

cd ios

rm -rf main.jsbundle

rm -rf Pods

pod install

cd ..

brew update

brew install watchman

npx react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle
--assets-dest ios

gsed -i 's/11\.0/12.4/g' ios/Pods/Pods.xcodeproj/project.pbxproj


Após realizar esses processos, abra o projeto através do arquivo “CentralMobile.xcworkspace”,
que fica localizado em pasta do projeto > pasta ios.

Espere o Xcode indexar todos os arquivos. Esse processo pode levar um tempo dependendo do tipo
de disco que você utiliza (SSD SATA, SSD NvME ou HDD).
Após o Xcode terminar o processo de indexação, acesse as pastas “CentralMobile” e edite o campo
“Bundle Display Name” do arquivo “Info”. Adicione o nome do seu aplicativo no campo destacado.
Esse é o nome que aparecerá quando o aplicativo estiver instalado no iPhone ou iPad.

Acesse o arquivo “LaunchScreen”, depois “splash”. Clique em cima da imagem central e então, no
canto superior direito, em “Image” e “Highlighted”, selecione a opção “splash” em ambas.
Dessa forma, sempre que o aplicativo for aberto, aparecerá a sua logo até que a tela de login seja
carregada.
Arraste o arquivo “main.jsbundle” que está localizado na pasta do projeto > pasta ios para o Xcode,
logo acima do arquivo “main”.

Acesse a pasta “CentralMobile” e então a aba “General”. No target “CentralMobile”, remova o


dispositivo Mac e adicione o dispositivo iPad, no passo 1.
Depois, no passo 2, selecione a categoria “Finance” e altere o “Display Name” para o nome que você
dará ao aplicativo. Precisa ser o mesmo nome que você utilizou quando criou o aplicativo na
App Store Connect.
No passo 3, como se trata de um aplicativo novo, “Version” deve ser “1.0”, enquanto o “Build” deve
ser “1”.
Vá para o target “CentralMobileTeste” e repita o passo anterior, removendo o dispositivo Mac e
adicionando o iPad.

Acesse a aba “Signing & Capabilities” e preencha o “Bundle Identifier” com o mesmo ID do pacote
Apple (seu domínio de trás para frente) utilizado para gerar o arquivo GoogleService-Info.plist, no
Firebase.
Depois, selecione a sua conta de desenvolvedor. Se você ainda não havia realizado o login no
Xcode, pode fazê-lo agora.
Com o “Bundle Identifier” adicionado e a conta de desenvolvedor selecionada, este é o momento que
você deverá conectar o iPhone em seu Mac e selecioná-lo no Xcode.
- Obs.: se o iPhone não estiver com o “Modo de Desenvolvimento” ativado, não será possível
realizar o processo. Você pode ativar essa opção no iPhone através do caminho Configurações >
Privacidade e Segurança > Modo de Desenvolvimento.

Selecionado o iPhone com o modo de desenvolvimento funcionando, aparecerá um aviso de que o


dispositivo ainda não está registrado à conta. Selecione a opção “Register Device”.

Repita o processo de adicionar o “Bundle Identifier” e a conta de desenvolvedor no target


“CentralMobileTeste”.
Ao finalizar os passos anteriores, realize o “build” do aplicativo em um dispositivo simulado, como o
“iPhone 14 Pro” selecionado na imagem abaixo, por exemplo, ou no próprio iPhone que está
conectado ao Xcode.
O build em um dispositivo simulado ajudará você a gerar as capturas de tela exigidas pela
Apple no momento da publicação do aplicativo na App Store Connect. Adiante você verá como
fazê-las.

Ao tentar realizar o primeiro build no iPhone, o Xcode apresentará o erro a seguir.


Selecione o erro e adicione novamente o “Bundle Identifier” e a conta de desenvolvedor no local
especificado. O erro desaparecerá e você poderá realizar novamente o build clicando novamente
no ícone de “Play”, no canto superior esquerdo.
Conforme você pode visualizar na imagem abaixo, o aplicativo teve seu build realizado com sucesso
em um dispositivo simulado (iPhone 14 Pro).
Você poderá testá-lo.
Note que ao lado do ícone de uma casa, no centro superior, há um botão para realizar uma captura
de tela. Apenas ressaltando que você precisará fazer algumas mais adiante em dispositivos diferentes
para enviá-las com o aplicativo através da App Store Connect.

Encerrados os testes com o aplicativo, envie-o para a App Store Connect através de um processo
chamado “Archive”.
Para isso, acesse a aba “Product” e então selecione a opção “Archive”.
Após finalizado o “Archive”, abrirá a seguinte tela onde você deverá clicar em “Validate App”.

Deixe todas as opções selecionadas e clique em “Next”.


Selecione a opção “Manually manage signing” e então em “Next”.

Na próxima tela, clique em “Import Profile” e faça o upload do arquivo


“Nome_do_app.mobileprovision” que você criou junto com os certificados de notificação push e
de distribuição e então continue.
Depois, clique em “Validate”.

Ocorrendo tudo bem, o aplicativo será validado com sucesso.


Repita o processo anterior, mas dessa vez selecionando a opção “Distribute App”.

Selecione a opção “App Store Connect” e clique em “Next”.


Selecione a opção “Upload” e clique em “Next”.

Você precisará selecionar novamente a opção “Manually manage signing” e utilizar o certificado de
provisionamento, mas desta vez não será necessário fazer um novo upload, basta selecioná-lo.
Ocorrendo tudo bem, o aplicativo será enviado com sucesso à App Store Connect, onde
continuaremos o processo através do navegador novamente.
7 - Envio do aplicativo para análise através da App Store Connect.

Acesse novamente a App Store Connect e abra o aplicativo que você havia criado anteriormente.
Você irá editar informações nos locais marcados abaixo.

Em “1.0 Preparar para envio”, desça até a opção “Compilação”.


- Obs.: às vezes pode demorar um pouco para que o upload do aplicativo após o “Archive”
apareça nesta tela. Atualize-a com frequência.
Clique no símbolo “+”.
Complete também as informações da seção “Informações para a equipe de revisão dos apps”. É
necessário informar um cliente/login de teste, para que a Apple possa acessar a Central do
Assinante e testar o aplicativo.
Selecione o aplicativo e clique em “Concluído”.
- Obs.: caso apareça a mensagem “Faltam dados de conformidade” após clicar em
“Concluído”, selecione a opção “Gerenciar” e então marque o campo “Nenhum dos algoritmos
mencionados acima”.

Preencha as informações comuns do aplicativo, como “texto promocional” (descrição breve) e


“descrição” (descrição completa). Em “Palavras-chave”, preencha com “provedor, internet, finanças”.
Em “URL de suporte”, preencha com seu site (se você não tiver um site, utilize a URL da Central do
Assinante). Em “Copyright”, preencha com o ano seguido do nome da sua empresa, caso a conta de
desenvolvedor for empresarial, ou com o nome do dono da conta, caso a mesma for individual.
Acesse “Informações do app”, confira se o nome está correto, selecione a categoria “finanças” e
após isso clique em “Configurar informações de direitos de conteúdo”.

Marque a opção “Não, este app não contém, exibe ou acessa conteúdo de terceiros”.
Clique em “Definir classificação etária em todas as plataformas”.

Marque todas as opções como “Nenhum” e clique em “Próximo”.


Selecione as opções “Não, este app não contém acesso irrestrito à internet” e “Não, este app não
contém jogos de azar”.

Restrinja o acesso à maiores de 17 anos e então clique em “Concluído”.


Acesse “Preços e disponibilidade”. Configure o preço gratuito e em “Disponibilidade”, deixe
selecionado apenas o Brasil.

Acesse “Privacidade do app”. Em “Política de privacidade”, coloque o link de sua política de


privacidade. Caso você ainda não tenha a inserido em seu servidor, pode seguir os passos desta Wiki
ou entrar em contato com o nosso suporte para que façamos a inserção da mesma para você.
Depois, clique em “Começar”.
Marque a opção “Não, nós não coletamos dados deste app” e clique em “Próximo”.

Acesse novamente “1.0 Preparar para envio”. Como mencionado anteriormente, você precisará
realizar a geração de algumas capturas de tela do aplicativo para enviá-lo para revisão. É obrigatório
enviar ao mínimo 3 capturas de cada um dos dispositivos: iPhone com tela de 6,5”, iPhone com
tela de 5,5”, iPad Pro (6ª geração) com tela de 12,9” e iPad Pro (2ª geração) com tela de 12,9”.
As capturas podem ser feitas através do aplicativo simulado no Xcode. Clique no ícone de
captura de tela, ao lado do ícone de uma casa, no centro superior.
Ao realizar a captura, clique com o botão direito em cima da mesma e selecione a opção de
salvar na “Mesa” (área de trabalho).
São necessárias ao mínimo 3 capturas de cada um dos seguintes dispositivos: iPhone 11 (6,5”),
iPhone 8 Plus (5,5”); iPad Pro (2nd generation) e iPad Pro (6th generation).
Caso algum desses dispositivos não esteja aparecendo no Xcode, é possível adicioná-lo. No
campo onde você seleciona o dispositivo, há uma opção chamada “Add Additionals Simulators…”.

Acesse novamente “1.0 Preparar para envio”, faça os uploads das capturas de tela e então clique na
opção “Adicionar para revisão”.
Na próxima tela, selecione a opção “Enviar para Revisão de app”.
8 - Firebase, chave privada (.p12) e chave do servidor (Firebase Server Key).

Após enviar o aplicativo para revisão, vá novamente para o Firebase para fazer o upload da chave
privada (.p12) que você exportou do certificado de notificação push anteriormente. Você também irá
coletar a “Chave do servidor”, que precisará ser inserida em seu sistema IXC.

Acesse a aba “Cloud Messaging”.


Desça até o aplicativo iOS e clique em “Fazer upload”, na seção de produção. Faça o upload do
arquivo .p12 exportado através do “Acesso às chaves”.
- Obs.: lembre-se de que você não colocou senha no arquivo, portanto, deixe o campo que solicita a
senha em branco.

Vá para a aba “Contas de acesso” e clique em “Gerar nova chave privada”.


Clique em “Gerar chave”. Você então irá fazer o download de um arquivo na extensão .json.
Salve-o em um local seguro. Essa chave não deve ser compartilhada.

Com o arquivo baixado, abra-o em um editor de texto, como o “Sublime Text” ou “VSCode”, por
exemplo. Caso você não tenha nenhum deles instalado, poderá abrir o arquivo no Google Chrome,
como na imagem abaixo.
Copie todo o conteúdo (inclusive as chaves). Depois disso, você irá colocá-lo em seu sistema IXC
Provedor.
Acesse seu sistema IXC e vá para Hotsite > Configurações > Configurações Gerais > Aba Aplicativos
e cole a chave da imagem anterior no campo “Arquivo de configuração do Firebase”. Depois disso,
basta salvar.
- Obs. 1: o campo “Arquivo de configuração do Firebase” só está disponível após a atualização
do dia 05/01/2023, portanto, é necessário atualizar seu sistema caso ainda não esteja atualizado.
- Obs. 2: se você já possui aplicativo Android no mesmo projeto do Firebase que está utilizando,
pode ser que a chave já esteja inserida em seu sistema.

Pronto. Seu aplicativo para dispositivos iOS foi enviado para revisão com sucesso.
Basta aguardar a Apple analisá-lo. Esse processo pode levar alguns dias.
Caso esteja tudo certo e o aplicativo seja aprovado, o “status” do mesmo na
https://appstoreconnect.apple.com/apps aparecerá como “Pronto para a venda”.
Caso seja recusado, é necessário avaliar qual foi o motivo informado pela Apple. Em caso de
dúvidas quanto à recusa, você pode abrir um novo atendimento com o nosso suporte (Hotsite - IXC
Provedor) para verificarmos.

Além disso, caso haja algum erro no processo, principalmente se tratando dos comandos que
precisam ser executados no Terminal, você também pode nos contatar para verificarmos.

2023 - IXCSoft

Você também pode gostar