> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Assinaturas RevenueCat

> Aprenda a adicionar assinaturas no app ao seu app mobile com o RevenueCat usando o Agent.

export const AiPrompt = ({children}) => {
  return <CodeBlock className="relative block font-sans whitespace-pre-wrap break-words">
      <div className="pr-7">
        {children}
      </div>
    </CodeBlock>;
};

## O que é o RevenueCat

O RevenueCat permite adicionar assinaturas no app ao seu [app mobile nativo](/pt/features/artifact-types/building-mobile-apps). Para começar, peça ao Agent para configurar uma assinatura, conecte sua conta RevenueCat, e o Agent cuida da lógica e fornece um ambiente de teste.

## Pré-requisitos

Antes de começar, você precisa de:

* Um projeto Replit criado com um **app mobile**
* Uma conta [RevenueCat](https://www.revenuecat.com) (são necessários apenas um e-mail e uma senha — não é preciso ter conta bancária nem configuração adicional)

<Note>
  Para trabalhar em um app mobile nativo, use o Project Editor em [replit.com](https://replit.com). O trabalho com apps mobile nativos também está disponível no app Replit para Android, onde suportado. Se você estiver usando o app Replit para iOS, abra o projeto em replit.com.
</Note>

## Como começar

<Steps>
  <Step title="Peça ao Agent para adicionar uma assinatura">
    Descreva a assinatura que você quer. O Agent planeja a integração, instala os pacotes e configura o RevenueCat.

    <AiPrompt>Adicione uma assinatura de \$5,99/mês ao meu app</AiPrompt>

    <Frame>
      <img src="https://mintcdn.com/replit/54Lx5jKPhNuBhNIa/images/replitai/revenuecat-prompt.png?fit=max&auto=format&n=54Lx5jKPhNuBhNIa&q=85&s=1f5aef4b09f4ba1a20eb982e2db87f12" alt="Project Editor do Replit mostrando o Agent respondendo a um prompt para adicionar uma assinatura" width="1957" height="1133" data-path="images/replitai/revenuecat-prompt.png" />
    </Frame>
  </Step>

  <Step title="Conecte sua conta RevenueCat">
    O Agent solicita que você conecte o RevenueCat. Selecione **Connect RevenueCat** para iniciar o fluxo de autorização.

    <Frame>
      <img src="https://mintcdn.com/replit/54Lx5jKPhNuBhNIa/images/replitai/revenuecat-connect.png?fit=max&auto=format&n=54Lx5jKPhNuBhNIa&q=85&s=2ab15e61163cb1a499b5082338efb5db" alt="Chat do Agent mostrando o banner Connect RevenueCat com um botão Connect" width="1957" height="1133" data-path="images/replitai/revenuecat-connect.png" />
    </Frame>

    Um modal confirma que você está se conectando ao RevenueCat. Selecione **Continue to RevenueCat** para continuar.

    <Frame>
      <img src="https://mintcdn.com/replit/54Lx5jKPhNuBhNIa/images/replitai/revenuecat-connect-modal.png?fit=max&auto=format&n=54Lx5jKPhNuBhNIa&q=85&s=b901785b4dc04548f826fe84ea0447f0" alt="Modal Connect RevenueCat mostrando informações de privacidade e segurança" width="1957" height="1133" data-path="images/replitai/revenuecat-connect-modal.png" />
    </Frame>
  </Step>

  <Step title="Autorize o Replit">
    Na página de autorização do RevenueCat, selecione o acesso **Read & Write** e depois **Authorize** para conceder ao Replit acesso à sua conta RevenueCat.

    <Frame>
      <img src="https://mintcdn.com/replit/54Lx5jKPhNuBhNIa/images/replitai/revenuecat-authorize.png?fit=max&auto=format&n=54Lx5jKPhNuBhNIa&q=85&s=ef7c653c14f864265f6157a35cc62800" alt="Página de autorização OAuth do RevenueCat com o acesso Read and Write selecionado" width="683" height="897" data-path="images/replitai/revenuecat-authorize.png" />
    </Frame>
  </Step>

  <Step title="O Agent constrói sua assinatura">
    Após a autorização, o Agent cria o projeto no RevenueCat, configura produtos e entitlements, constrói uma tela de paywall e conecta a lógica de assinatura em todo o seu app.

    <Frame>
      <img src="https://mintcdn.com/replit/54Lx5jKPhNuBhNIa/images/replitai/revenuecat-agent-summary.png?fit=max&auto=format&n=54Lx5jKPhNuBhNIa&q=85&s=1343a44680e387548c7811c4ffae2be1" alt="Resumo do Agent mostrando a tela de paywall com recursos e preços da assinatura" width="1957" height="1133" data-path="images/replitai/revenuecat-agent-summary.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/replit/54Lx5jKPhNuBhNIa/images/replitai/revenuecat-app-home.png?fit=max&auto=format&n=54Lx5jKPhNuBhNIa&q=85&s=20f7a373137adbee146010b795824560" alt="Tela inicial do app mobile mostrando um selo Premium para conteúdo assinado" width="1957" height="1133" data-path="images/replitai/revenuecat-app-home.png" />
    </Frame>
  </Step>
</Steps>

## Teste as assinaturas

Os previews do Replit usam o **modo de teste** do RevenueCat. Ao testar uma compra no Expo Go, você vê uma caixa de diálogo de compra de teste em vez de um fluxo de pagamento real. Nenhum valor é cobrado.

<Frame>
  <img src="https://mintcdn.com/replit/54Lx5jKPhNuBhNIa/images/replitai/revenuecat-test-purchase.png?fit=max&auto=format&n=54Lx5jKPhNuBhNIa&q=85&s=cd4d96400d7176eefe69e8762f89c425" alt="Caixa de diálogo de compra de teste em um dispositivo mobile mostrando os detalhes do pacote e botões de teste" width="683" height="1253" data-path="images/replitai/revenuecat-test-purchase.png" />
</Frame>

<Tip>
  As compras de teste são seguras para usar durante o desenvolvimento. Você pode testar tanto fluxos de compra bem-sucedidos quanto com falha, sem nenhuma cobrança real.
</Tip>

<Warning>
  Depois que a Apple aprovar seu app para distribuição na App Store, as compras passam a usar dinheiro real.
  Certifique-se de que seus produtos e preços no RevenueCat estejam corretos antes de enviar para
  a App Review.
</Warning>

## Gerencie assinaturas

Para modificar sua assinatura, peça ao Agent. Por exemplo:

<AiPrompt>Modifique a assinatura para ser \$9,99/ano em vez disso</AiPrompt>

O Agent atualiza a configuração do seu produto no RevenueCat, a interface do paywall e a lógica de assinatura para refletir a mudança.

<Frame>
  <img src="https://mintcdn.com/replit/54Lx5jKPhNuBhNIa/images/replitai/revenuecat-modify.png?fit=max&auto=format&n=54Lx5jKPhNuBhNIa&q=85&s=1f2e3540744cff1d9626ca9ff065abbb" alt="Project Editor do Replit mostrando o Agent modificando o preço da assinatura de mensal para anual" width="1957" height="1133" data-path="images/replitai/revenuecat-modify.png" />
</Frame>

## Sincronização com o App Store Connect

Para que as compras no app funcionem no TestFlight e na Apple App Store, [você precisará concordar
com o Paid Apps Agreement da Apple e conectar sua conta bancária](https://developer.apple.com/help/app-store-connect/manage-agreements/sign-and-update-agreements/).
Isso é feito através do App Store Connect. Você precisará de uma conta paga de Apple Developer antes de poder enviar seu app para a App Store.

Depois disso, você pode sincronizar suas configurações de compras no app do RevenueCat para o App Store Connect diretamente pelo Replit.

<Steps>
  <Step title="Vá até o painel Manage em Publishing">
    Você verá um botão para sincronizar o RevenueCat com o App Store Connect.

    <Frame>
      <img src="https://mintcdn.com/replit/xEOEB_NKh1DJyjhm/images/replitai/revenuecat-asc-sync-btn.png?fit=max&auto=format&n=xEOEB_NKh1DJyjhm&q=85&s=739b8603ed165eebf67a87ff5408da9b" alt="Botão Sync RevenueCat to App Store Connect" width="1476" height="604" data-path="images/replitai/revenuecat-asc-sync-btn.png" />
    </Frame>

    <Tip>
      Esta seção só aparece depois que você enviar seu app para o TestFlight.
    </Tip>
  </Step>

  <Step title="Forneça a chave de API do App Store Connect">
    Você precisará ir ao App Store Connect para fornecer essa chave.

    No [App Store Connect](https://appstoreconnect.apple.com/access/integrations/api), acesse **Users and Access** e depois selecione a aba **Integrations**. Na barra lateral, selecione **App Store Connect API**.

    Ao criar uma chave, certifique-se de conceder a ela permissões de "App Manager".

    Baixe o arquivo .p8 agora — você só pode baixá-lo uma vez. O nome do arquivo começa com `AuthKey_` e termina em `.p8`.

    Copie o **Key ID** e o **Issuer ID** mostrados nesta página.

    <Frame>
      <img src="https://mintcdn.com/replit/xEOEB_NKh1DJyjhm/images/replitai/revenuecat-asc-create.png?fit=max&auto=format&n=xEOEB_NKh1DJyjhm&q=85&s=24ac192da8b1182d1835ef4de0f9839a" alt="Página Users and Access do App Store Connect com etapas numeradas destacando a aba Integrations, o link App Store Connect API na barra lateral e o botão de mais para criar uma nova chave de API" width="2390" height="752" data-path="images/replitai/revenuecat-asc-create.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/replit/xEOEB_NKh1DJyjhm/images/replitai/revenuecat-asc-app-manager.png?fit=max&auto=format&n=xEOEB_NKh1DJyjhm&q=85&s=1cce1eda00a2aca593f7f1388c85b7b9" alt="Diálogo Generate API Key no App Store Connect com o nome definido como RevenueCat e o acesso definido como App Manager" width="1116" height="560" data-path="images/replitai/revenuecat-asc-app-manager.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/replit/xEOEB_NKh1DJyjhm/images/replitai/revenuecat-asc-copy.png?fit=max&auto=format&n=xEOEB_NKh1DJyjhm&q=85&s=c2db4fb91a7ce8c49db0ae16603b61d8" alt="Página de chaves de API do App Store Connect com setas apontando para o link Copy do Issuer ID e para a coluna Key ID" width="2330" height="780" data-path="images/replitai/revenuecat-asc-copy.png" />
    </Frame>
  </Step>

  <Step title="Crie uma chave de API de In-App Purchase">
    Repita a etapa anterior para uma chave de API de In-App Purchase.
    Na barra lateral, selecione **In-App Purchase**. Depois crie uma chave de API com permissões de **App Manager**.
    Baixe a chave .p8 (o nome do arquivo começa com `SubscriptionKey_` e termina em `.p8`). Copie o **Key ID** e o **Issuer ID**.

    <Frame>
      <img src="https://mintcdn.com/replit/xEOEB_NKh1DJyjhm/images/replitai/revenuecat-iap-api-key.png?fit=max&auto=format&n=xEOEB_NKh1DJyjhm&q=85&s=6adeb76b34f36ab2528c614509727a77" alt="Página Users and Access do App Store Connect com In-App Purchase selecionado na barra lateral e uma seta apontando para o botão de mais para criar uma nova chave" width="2272" height="637" data-path="images/replitai/revenuecat-iap-api-key.png" />
    </Frame>
  </Step>

  <Step title="Sincronize os produtos">
    Confirme a lista de produtos e sincronize com o App Store Connect.

    <Frame>
      <img src="https://mintcdn.com/replit/xEOEB_NKh1DJyjhm/images/replitai/revenuecat-asc-products-sync.png?fit=max&auto=format&n=xEOEB_NKh1DJyjhm&q=85&s=009172881129e77b4fe8021bd19f98fb" alt="Diálogo Manage in-app purchases mostrando um produto Monthly Subscription com campos de preço, duração e território, e um botão Sync to App Store Connect" width="948" height="476" data-path="images/replitai/revenuecat-asc-products-sync.png" />
    </Frame>
  </Step>
</Steps>

## Perguntas frequentes

<AccordionGroup>
  <Accordion title="Eu preciso de uma conta bancária para usar o RevenueCat?">
    Não. Você só precisa de um e-mail e uma senha para criar uma conta RevenueCat. A configuração da
    conta bancária é feita separadamente através da Apple ou do Google quando você estiver
    pronto para receber pagamentos da App Store ou do Google Play.
  </Accordion>

  <Accordion title="As compras de teste são cobradas?">
    Não. Durante o desenvolvimento, os previews do Replit usam o modo de teste do RevenueCat.
    As compras são simuladas e nenhuma cobrança real é feita. Cobranças reais só
    se aplicam depois que a App Review da Apple aprovar seu app.
  </Accordion>

  <Accordion title="Posso usar o RevenueCat com um app web?">
    O RevenueCat foi projetado para apps mobile nativos. Para adicionar assinaturas a um app
    web, use a [integração com Stripe](/pt/features/monetization/stripe-payments)
    em vez disso.
  </Accordion>

  <Accordion title="O que posso configurar com o RevenueCat?">
    Você pode configurar assinaturas mensais ou anuais, definir preços, gerenciar
    entitlements e construir paywalls. Peça ao Agent para fazer as alterações — ele cuida tanto
    da configuração do RevenueCat quanto do código do seu app.
  </Accordion>
</AccordionGroup>
