Ao criar para as lojas de aplicativos, a CLI da
expo, para que o que digitamos aqui na linha de comando possa ajudá-lo ou ajudá-lo,
mas você pode precisar ajustar sua configuração no aplicativo. arquivo json, dependendo de quais recursos seu aplicativo usa.
Portanto, nosso aplicativo aqui usa vários módulos nativos, todos esses módulos precisam solicitar permissões e meio que fazemos
isso com a API de permissões, como, por exemplo, no seletor de imagens aqui quando solicitamos permissões, mas no Android,
por exemplo, você também você precisa fornecer uma lista das permissões que seu aplicativo precisa em um
arquivo de configuração que você, quando usa o React Native, possui apenas mas que não possui ao usar o expo
porque o expo fornece esse wrapper e faz tudo isso para você na expo cliente, mas agora não planejamos
mais usar o cliente expo e, embora ele
inclua isso no seu aplicativo independente, como mencionei, agora você precisa informar ao expo quais permissões
ele deve solicitar lá.
Além disso, por exemplo, se você estiver usando o Google Maps, também precisará fornecer sua chave da API do Google Maps e, com
isso, não quero dizer que estamos fazendo isso aqui, que usamos em algumas partes do nosso código Javascript, mas
para use o pacote de mapas React Native.
Novamente, o aplicativo cliente expo basicamente usa sua própria chave para desenvolvimento e assim por diante, mas assim que você planeja
oferecer um aplicativo independente, é necessário trazer suas próprias chaves para que o wrapper expo que será incluído
no aplicativo independente use seu chave porque a equipe da
exposição não fornecerá a você uma chave pertencente a eles para isso.
Mais uma vez, os documentos oficiais são seus amigos. Lá, você pode
aprender o que pode configurar no aplicativo. arquivo json e vamos
começar com o Android porque lá, você precisará configurar um pouco mais antes de mergulharmos no
que é específico sobre o iOS.
Assim, para o Android, além do ícone e assim por diante, o que você pode configurar são as permissões. Agora, você pode simplesmente omitir a chave
de permissões e, nesse caso, como você vê aqui, o expo configurará seu
aplicativo para solicitar todas as permissões.
Agora, eu não recomendaria isso porque as pessoas vão olhar para o seu aplicativo na App Store e
se virem que o seu aplicativo básico de gerenciamento de local deseja permissões para ler seus contatos ou fazer chamadas, bem, eu não conheço
você, mas não gostaria ' t baixe esse aplicativo.
Portanto, minha recomendação seria que você fosse específico em relação às permissões que seu aplicativo
precisa e faça isso acessando o aplicativo. arquivo json e, no nó Android, você adiciona a
chave de permissões e agora adiciona permissões.
Agora, algumas permissões básicas sempre serão solicitadas e você as encontrará aqui, por exemplo, permissões para obter dados da
Internet e assim por diante, mas agora também é possível, por exemplo, adicionar permissões para usar o local
do usuário e acessar a câmera, porque é algo que iremos Faz.
Então, vamos adicionar essas chaves aqui a permissões como essa, a fim de incluir chaves com aspas duplas, o que é
importante neste arquivo, adicionado
a essa matriz de permissões.
Agora, também precisaremos da permissão de gravação de armazenamento externo para salvar nossa imagem; portanto, devemos adicionar isso e com isso devemos ser bons para
esse aplicativo,
mas é claro que, dependendo do aplicativo que você está construindo, verifique
cuidadosamente quais permissões seu aplicativo sempre que necessário, você
pode consultar as páginas de documentação dos pacotes do módulo nativo que você está usando; normalmente,
você deve encontrar uma descrição
das permissões que este pacote precisa. Portanto, as permissões são uma
coisa. Além disso, se você estiver usando o Google Maps, adicione o nó do
Google Maps à sua configuração do Android.
Portanto,
aqui, depois das permissões, podemos adicionar mapas do Google como este, que também mantêm um objeto como valor e, nesse objeto, você
configura a chave da API.
Novamente, você não precisava disso para o cliente expo quando publicamos o aplicativo nesta página da expo e usamos o aplicativo cliente
expo, porque a equipe da expo basicamente fornece sua própria chave do Google Maps, mas se você estiver
criando um aplicativo independente, precisa fornecer o seu próprio.
Portanto, para isso, certifique-se de usar sua chave aqui dessa maneira e também importante. Já mencionei isso no
módulo não expo, verifique
se nas APIs do Google, no console da nuvem do Google ao verificar sua biblioteca de APIs, verifique se o SDK de mapas
para Android está ativado para este projeto ao qual pertence a chave de API que você
forneceu.
Portanto, aqui está
ativado, isso deve pertencer ao projeto para o qual você criou a chave de API que
agora está fornecendo aqui, caso contrário, isso não funcionará. Portanto, essas são as permissões e as configurações do Google Map e
você pode precisar de outras configurações específicas sobre as
quais você pode aprender aqui no aplicativo. arquivo json, dependendo de quais recursos você está usando.
Você também pode configurar Claro que tudo o
resto e muitas outras coisas, uma coisa que você absolutamente precisa fornecer para criar seu aplicativo também é essa chave do pacote.
Isso é algo que você sempre deve adicionar, não importa o que
seu aplicativo use, aqui no nó Android, você precisa fornecer a chave do pacote e isso agora precisa ter um determinado formato.
É basicamente um URL inverso, um URL fictício que não precisa existir, mas que atua como um identificador
exclusivo em toda a Google Play Store; portanto, deve ser
um URL inverso que ninguém mais usou antes e, portanto, normalmente, se você possui um
domínio, você usaria seu domínio, por exemplo, com. academind, portanto, um domínio inverso e, em seguida,
um identificador exclusivo, como ótimos lugares. Você pode criar qualquer URL que deseje aqui, mas
é claro que deve ser único e, portanto, deve usar seu próprio domínio ou um domínio
fictício que não seja de propriedade
de ninguém, portanto, não seja acadêmico, porque eu sou o dono, então qualquer outro domínio, qualquer outro identificador fictício que deva
ter esse formato,
é o que você fornece aqui.
Você também precisa fornecer algo semelhante no iOS; caso vá para o iOS,
não é necessário fornecer esse material de configuração de permissão porque as permissões do iOS funcionam de maneira diferente; você precisará
fornecer uma chave
da API do Google Maps se usar o Google Maps versão do pacote de mapas para iOS, no
entanto, o padrão deste pacote é usar o Apple Maps e não o mudei no meu aplicativo, por
isso não preciso fornecer a API do Google Maps aqui, mas
o que você definitivamente precisa fornecer aqui é um identificador de pacote. Portanto, substitua package pelo identificador de pacote configurável e o formato é o
mesmo, você tem essa sintaxe inversa
de URL aqui e eu o nomeei com. academind. ótimos lugares e também use
essa edição de curso aqui no Android.
Portanto, o identificador de pacote para iOS e o pacote para Android precisam ser configurados para um URL exclusivo inverso.
Agora, além desses identificadores, você também precisa definir outra coisa. No iOS, você
precisa adicionar um número de compilação, também aqui no nó iOS, e o número da compilação deve
ser uma sequência que identifique a sua compilação. Lá, você deve ter um número de compilação como esta versão lá em cima e
trabalhar da maneira que expliquei lá em cima.
Portanto, deve ser um número composto por três dígitos, onde você tem um número de patch para correções, correções de
bugs e, em seguida, este número de atualização menor para novos recursos que não quebram tudo e esse
número de atualização principal, você
pode alterar isso da maneira que desejar mas você deve alterá-lo para
cada nova versão publicada e implantada e, é claro, alterá-lo para refletir o que mudou.
Agora você precisa de algo semelhante para
o Android. Se voltarmos à documentação do Android, também precisamos de um código de versão. Então, aqui adicionamos o código da versão e agora aqui não
é uma string, mas um número que você deve simplesmente incrementar em um para cada
nova versão.
Então você começa com uma,
a próxima versão que você lança, mesmo que contenha apenas algumas pequenas correções, deve ser duas e depois a três e
assim por diante.
Então é isso que você deve configurar aqui, é assim que funciona para o Android, você também
encontra essa descrição aqui na documentação e,
com isso, agora estamos preparados para implantar isso ou construí-lo primeiro e, como mencionei, o legal
A coisa sobre a expo gerenciada é que agora você pode criar isso nos servidores em
nuvem da expo.
Portanto, o que você deve fazer é executar o expo publish para publicar a versão mais recente do seu aplicativo nos servidores da
expo, exatamente como a que ainda não será criada como um aplicativo independente, e
agora o que recebo aqui são alguns avisos ou erros. Então, vemos que o Android não deve ter propriedade adicional do
Google Maps, sim, porque
isso deve estar em um nó de configuração,
meu erro.
Portanto, você deve adicionar a configuração aqui e na configuração, você pode ter essa chave do
Google Maps, é um pequeno erro do meu lado e aqui para o pacote, o Android realmente não gosta de traços
lá, mas você pode usar sublinhados, então vamos usar isso . Com isso corrigido, agora vamos executar o expo publish novamente para validar
isso novamente e, em seguida, publicar a versão mais
recente nos servidores do expo, que novamente não iniciarão o processo de compilação ainda, mas que é uma preparação importante
e, quando isso for feito, você estará pronto para Também crie seu aplicativo para Android e
iOS.
Agora, a diferença entre publicar e criar é que a publicação apenas envia seu código e configuração aos servidores
da expo e você pode escanear o código de barras com o cliente expo e assim por diante.
Criar significa que você aproveitará o serviço de criação em nuvem da expo para realmente criar um pacote de aplicativos
Android ou um arquivo IPA do iOS; esses são
os arquivos que você carrega nas lojas de aplicativos a partir de então, então há
uma enorme diferença aqui. Agora, esses pacotes
configuráveis que você constrói como mencionado anteriormente incluem o cliente expo,
por exemplo, eles incluem isso como um invólucro em torno do seu aplicativo, mas, afinal, é
um aplicativo nativo real, portanto, é um aplicativo nativo com apenas este invólucro
minúsculo extra levando em consideração a configuração que você definiu aqui, por exemplo, em relação às permissões.
Além disso, esses aplicativos que você cria nos servidores da expo, que você pode distribuir pelas lojas de aplicativos, conversam com os
servidores da expo para obter a funcionalidade de atualização sem fio. Portanto, você ainda publicará novas atualizações com a expo publish
posteriormente e seus aplicativos independentes que estão sendo executados em outros dispositivos receberão essas atualizações publicadas. Portanto, a
publicação ainda é importante mesmo se você
estiver criando aplicativos independentes, se estiver criando pacotes de aplicativos porque esses pacotes
de aplicativos continuarão a conversar com os servidores da expo para obter novas versões.
Mas falando nisso, como construímos esses pacotes agora?
Você faz isso com o comando expo build e lá você tem build: Android e
build: iOS.
Bem, vamos começar com a compilação: Android e, como o nome sugere, isso cria um aplicativo para Android.
Você pode aprender tudo sobre o processo de compilação autônomo nos documentos de expo de aplicativos
autônomos de criação, que também encontra anexados aqui e ali, a configuração básica de que você
precisa e o que deve levar em consideração. Para Android, aqui você descobre que, no momento, também pode
escolher se deseja criar um APK ou um arquivo de pacote de aplicativos, recomenda-se a criação de
um arquivo de pacote
de aplicativos, porque esse é o formato preferido pelo Google e, para isso, é possível executar em vez de apenas
criar expo Android, execute o expo build Android -t app add-bundle. Se você pressionar Enter, isso validará sua configuração e
enviará o código aos servidores de criação em nuvem da expo, onde isso será agendado.
Agora, antes de tudo, ele perguntará porque os aplicativos precisam ser assinados, o que acontece com
um par de chaves públicas privadas que, no final, é usado para identificá-lo como o autor
do aplicativo, futuras atualizações do aplicativo e com isso
eu não significa atualizações que você publicou nos servidores da expo com o comando expo publish, mas
quando você reconstrói o aplicativo, quando você reconstrói o pacote que você reenvia para as lojas de aplicativos
que você ocasionalmente precisará fazer se, por exemplo, alterar o ícone ou qualquer outra coisa que não
possa ser compartilhada com a
expo publish, nesses casos, você precisará assinar a atualização com as mesmas chaves usadas para criar o aplicativo original para identificá-lo
como autor, caso contrário, a App
Store negará essa atualização. não aceitará sua próxima versão do aplicativo. Portanto, você precisa assinar seu aplicativo e, se souber o que
está fazendo, poderá criar e fazer upload de seu próprio armazenamento de chaves, mas aqui vou
me ater
à versão um e deixar a expo lidar com isso, o que
significa que criará uma chave para atribuir e faça todo o material de assinatura para você em seus servidores, então é isso
que eu escolho aqui.
Agora, com isso, ele constrói o aplicativo novamente, assim como para publicação e, embora eu esteja construindo um aplicativo Android, ele ainda o constrói para iOS aqui, porque no final o que
ele faz aqui é que ele publica o aplicativo. Então, vamos esperar que isso
termine, agora ele está fazendo o mesmo que a publicação da expo, mas a partir de
então, ele agendará isso para ser construído nos servidores da expo.
Portanto, agora a publicação está concluída e agora agende essa compilação e a enfileira. Esse é um processo que você
pode sair agora, como diz aqui, você sempre pode verificar o status da sua compilação
digitando este URL, ' Você
precisará fazer login com sua conta expo e poderá ver o status da compilação.
Agora, importante,
essa compilação pode levar muito
tempo, a compilação em si não muito, mas até que sua compilação seja compilada porque está agendada, lembre-se de que
este é um serviço gratuito; portanto, é claro
que não é compilado imediatamente, mas quando os servidores da exposição têm espaço por isso.
Isso pode levar alguns minutos, até horas, até que isso aconteça; portanto, não se preocupe se
isso levar algum tempo; você sempre pode verificar este URL que está vendo na linha de comando para
ver o que está acontecendo. Para que você possa sair disso,
este também é um URL onde você encontrará os arquivos de compilação mais tarde,
então aqui está o meu status de compilação, se verificarmos, você vê que é fofo e agora, nada mais está acontecendo,
podemos revisar isso mais
tarde para ver o processo de compilação e faça o download do pacote de aplicativos finalizado e, por
enquanto, vamos fazer o mesmo no iOS.
Isso pode ser feito
executando o expo build iOS. Agora importante, para criar aplicativos iOS, você precisa de uma conta paga de desenvolvedor
da Apple, que é essencial.
Então, você precisará ir para o desenvolvedor. maçã. com e lá, você precisará fazer login com
seu ID Apple e, basicamente, obter uma conta paga, portanto, será necessário adicionar seu cartão de crédito e pagar uma taxa
de US $ 99. Isso é necessário, não
há como contornar
isso, a Apple exige que você crie aplicativos que deseja publicar em suas lojas.
Você não precisa disso durante o
desenvolvimento, mas agora, para compartilhar o aplicativo, é necessário.
É basicamente uma taxa que existe apenas para permitir que as pessoas cheguem à loja que tenham pelo menos algum tipo de
objetivo sério lá, eu acho.
Portanto, certifique-se de fazer login aqui e configurar sua conta paga de desenvolvedor da Apple para ingressar no Apple
Developer Program e, em seguida, execute este comando e ele
solicitará que você faça login com sua conta de desenvolvedor da apple. Portanto, faça login com seu ID e senha da Apple
e esses dados não serão armazenados nos servidores da expo, não se preocupe,
mas é necessário
que ele configure tudo para criar seu aplicativo, porque para o processo de criação da Apple, você
precisa de certificados especiais e assim por diante. pode solicitar em seu nome esses dados.
Depois de fazer o login, ele pergunta como você deseja lidar com suas credenciais, assim como
antes, se você não sabe o que está fazendo, deixe a expo lidar com
tudo isso porque, como mencionei, você precisa de algumas certificados especiais para, no final, criar seu aplicativo iOS e a expo pode solicitar tudo
isso para você e definir tudo isso para você, então deixarei a expo fazer isso em todas essas
etapas e agora basicamente fará tudo isso para você.
Agora, isso também cria meu aplicativo aqui para iOS e o publica novamente primeiro, é o mesmo que fizemos
antes para Android e agora também temos uma compilação agendada para iOS. Assim como antes, isso está na fila,
você pode sair disso e apenas assistir sua compilação aqui no navegador.
Portanto, agora não temos apenas a compilação do Android na fila, mas também a compilação do iOS na
fila e ambos levarão um tempo até que terminem.
Agora, há uma coisa importante que você também deve fazer após a
conclusão da
compilação do Android, que ainda não é, você deve executar o expo fetch: android: keystore.
Novamente, isso só funciona após a conclusão da compilação, pois isso buscará
esse keystore gerado automaticamente, que a expo gera para você, se você escolher a configuração necessária para
futuras atualizações deste aplicativo. Definitivamente, você precisará disso e, em futuras atualizações
ao reconstruir o aplicativo, terá que optar por fornecer seu próprio keystore e, em seguida, fornecer esse keystore;
portanto, digite o caminho para esse keystore que você fará o download.
Portanto, este comando fará o download final de um arquivo gerado nos servidores da expo, que você
precisará armazenar em seu sistema para atualização futura do mesmo
aplicativo, caso contrário, você não poderá atualizar.
Portanto, esse é um comando importante que você precisará executar quando a compilação estiver concluída. Bem, e com isso, vamos aguardar
o término, o
iOS já está em construção, o Android ainda está na fila,
mas o iOS já está em
movimento, então vamos aguardar o término da compilação do iOS e agora
está pronto, agora meu iOS A compilação está concluída.
Agora você também pode verificar os documentos oficiais sobre como continuar testando isso no seu dispositivo ou simulador
ou depois ir para a parte em que você carregou o aplicativo na Apple App Store e no Google Play Store.
Por isso,
criamos o aplicativo, agora você pode enviá-lo executando o upload de expo: ios, por padrão, ele usa o aplicativo mais recente e
o carrega na App Store.
Agora é a parte que não farei aqui, porque não quero realmente publicar este aplicativo aqui, mas
é o que você
faria agora, usaria esse aplicativo que foi criado aqui apenas para iOS ou Android, a
compilação do Android é agora também em execução, como eu vejo, para que isso fosse usado e publicado
com este comando no iOS ou com este comando no Android, na Google Play Store.
Agora siga as etapas que você encontra aqui nos documentos para criar as contas apropriadas e
configurar tudo corretamente para que este comando possa ser
bem-sucedido e, com isso, seu aplicativo será implantado na Apple App Store e na Google Play Store para que você
pode levar seu aplicativo a qualquer usuário em todo o mundo como um aplicativo independente, sem depender do cliente expo que
está sendo instalado nos dispositivos, o que é bastante interessante.