Antes de iniciar a geração do aplicativo iOS, é necessário ter em mãos os seguintes pré-requisitos:
NÃO IRÁ FUNCIONAR EM UMA MÁQUINA VIRTUAL (VM)
Em versões do MacOS inferiores à 14.4.1 podem ocorrer diversos erros no projeto impossibilitando a geração
Um iPhone;
Uma conta da Apple inscrita no Apple Developer Program, caso ainda não tenha a conta, é possível criar seguindo a wiki.
Aplicativo Xcode na última versão disponível para a sua versão do MacOS.
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.
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 o 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.
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:
Para executar os comandos abaixo, abra o Terminal em seu Mac, copie e cole cada um dos comandos de maneira individual e 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
Instale o Gsed:
brew install gsed
Por último, execute o seguinte comando (será solicitada a senha do Mac para executá-lo):
sudo xcode-select --switch /Applications/Xcode.app
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.
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.
Abra o aplicativo Acesso às chaves, no Mac. O nome do aplicativo em inglês é Keychain.
Siga o caminho:
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.
Repita o mesmo processo mais uma vez, pois serão necessários dois arquivos “CertificateSigningRequest.certSigningRequest” (request) mais adiante.
Acesse sua conta de desenvolvedor na Apple Developer e clique em Certificates.
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.
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 do 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 Apple Distribution 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.
Desta vez não será necessário exportar a chave privada.
Acesse Profiles e crie um novo.
Selecione a opção App Store Connect, 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 o nome que você dará ao aplicativo e continue.
Faça o download do arquivo (Nome_do_app.mobileprovision) em um local seguro.
Acesse novamente a Apple Developer e desta 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 hifens).
Após criar o novo aplicativo, você poderá fazer todo o processo no Xcode antes de retornar à App Store Connect.
Baixe o projeto atualizado através deste link e descompacte-o no diretório Home/Usuário do mac" para que não ocorram futuros erros na geração (Utilize o comando 'Ctrl + shift + h' para abrir diretamente dessa forma).
Caso resolva trocar o nome da pasta antes de descompactá-la, não pode haver espaços no nome.
Substitua a pasta Images.xcassets no caminho
pela pasta Images.xcassets que você gerou anteriormente através do script de geração de imagens.
Lembre-se de substituir a pasta, não combiná-la.
Substitua o arquivo GoogleService-Info.plist no caminho
pelo GoogleService-Info.plist que você baixou do Firebase.
Troque a URL da Central no arquivo ConstantesHelper.js através do caminho
Troque apenas o domínio, não altere o restante da URL nem 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:
Copie e cole cada um dos comandos de maneira individual e tecle Enter. Execute o próximo comando sempre que o anterior for finalizado.
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 no caminho
Espere o Xcode indexar todos os arquivos. Este processo pode levar um tempo dependendo do tipo de disco que você utiliza (SSD SATA, SSD NvME ou HDD).
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.
Você também pode clicar no fundo branco (background) e substitui-lo por uma cor sólida (a mesma da sua logo, por exemplo, caso não seja branca).
Arraste o arquivo main.jsbundle que está localizado no caminho
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 Apple Vision Pro 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.
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 abaixo:
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.
Caso não possua um iPhone é possível usar a opção de simulação, que fica no mesmo local. Utileze o iphone SE por ser uma versão mais leve.
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.
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.
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 Distribute App.
Deixe selecionada a opção que já está, a "TestFlight & App Store" e clique no botão: Distribute.
Ocorrendo tudo bem, o aplicativo será enviado com sucesso à App Store Connect, onde continuaremos o processo através do navegador novamente.
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.
À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.
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” e mais palavras que você julgue necessárias. Em URL de suporte, preencha com o link de seu site (se você não tiver um site, utilize a URL da Central do Assinante).
Em Copyright, preencha com o ano atual seguido do nome da sua empresa caso a conta de desenvolvedor seja empresarial; ou, com o nome do dono da conta, caso ela seja uma conta 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 a 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, insira o link da sua política de privacidade.
Caso você não tenha o documento disponível em seu servidor, é possível adicioná-lo seguindo a wiki ou entre em contato com o nosso suporte SUP - Instalação e manutenção de servidor - IXCProvedor para que façamos a inserção dele 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. É 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”.
Para poder fazer o upload das capturas entre em contato com nosso suporte SUP - Instalação e manutenção de servidor - IXCProvedor, para que possamos enviá-las a você.
Ainda em 1.0 Preparar para envio, na App Store Connect, 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 do app.
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”.
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. Esta 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 o caminho
e cole a informação copiada na etapa anterior no campo Arquivo de configuração do Firebase.
Depois disso, basta salvar.
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” dele 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 (SUP - Suporte Instalação e Manutenção de Servidor - IXC) 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.