> ## 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

> Saiba como adicionar assinaturas in-app ao seu aplicativo 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 in-app ao seu [aplicativo mobile nativo](/references/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 **aplicativo Mobile**
* Uma conta [RevenueCat](https://www.revenuecat.com) (apenas e-mail e senha são necessários — sem conta bancária ou configuração adicional)

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

## Começar

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

    <AiPrompt>Add a \$5.99/mo subscription to my 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="Editor de Projeto 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="Conectar 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 Conectar RevenueCat com um botão Conectar" width="1957" height="1133" data-path="images/replitai/revenuecat-connect.png" />
    </Frame>

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

    <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 Conectar 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="Autorizar o Replit">
    Na página de autorização do RevenueCat, selecione 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 acesso de Leitura e Escrita selecionado" width="683" height="897" data-path="images/replitai/revenuecat-authorize.png" />
    </Frame>
  </Step>

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

    <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 aplicativo mobile mostrando um badge Premium para conteúdo assinado" width="1957" height="1133" data-path="images/replitai/revenuecat-app-home.png" />
    </Frame>
  </Step>
</Steps>

## Testar assinaturas

As visualizações do Replit usam o **modo de teste** do RevenueCat. Quando você testa uma compra no Expo Go, vê um diálogo de compra de teste em vez de um fluxo de pagamento real. Nenhum dinheiro é 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="Diálogo de compra de teste em um dispositivo mobile mostrando 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 aplicativo para distribuição na App Store, as compras usarão dinheiro real.
  Certifique-se de que seus produtos e preços do RevenueCat estejam corretos antes de enviar para a
  App Review.
</Warning>

## Gerenciar assinaturas

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

<AiPrompt>Modify the subscription to be \$9.99/yr instead</AiPrompt>

O Agent atualiza a configuração do produto RevenueCat, a UI do paywall e a lógica de assinatura para refletir a alteração.

<Frame>
  <img src="https://mintcdn.com/replit/54Lx5jKPhNuBhNIa/images/replitai/revenuecat-modify.png?fit=max&auto=format&n=54Lx5jKPhNuBhNIa&q=85&s=1f2e3540744cff1d9626ca9ff065abbb" alt="Editor de Projeto 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>

## Sincronizar com o App Store Connect

Para que as compras in-app funcionem no TestFlight e na Apple App Store, [você precisará concordar com o Acordo de Aplicativos Pagos 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 Desenvolvedor Apple antes de poder enviar seu aplicativo para a App Store.

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

<Steps>
  <Step title="Ir ao 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 Sincronizar RevenueCat com App Store Connect" width="1476" height="604" data-path="images/replitai/revenuecat-asc-sync-btn.png" />
    </Frame>

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

  <Step title="Fornecer a chave de API do App Store Connect">
    Você precisará acessar o App Store Connect para fornecer essa chave.

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

    Ao criar uma chave, certifique-se de dar à chave 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** exibidos nessa 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 adição 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 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 de cópia do Issuer ID e a coluna Key ID" width="2330" height="780" data-path="images/replitai/revenuecat-asc-copy.png" />
    </Frame>
  </Step>

  <Step title="Criar uma chave de API de Compra In-App">
    Repita a etapa anterior para uma chave de API de Compra In-App.
    Na barra lateral, selecione **In-App Purchase**. Em seguida, 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 adição para criar uma nova chave" width="2272" height="637" data-path="images/replitai/revenuecat-iap-api-key.png" />
    </Frame>
  </Step>

  <Step title="Sincronizar 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 de gerenciamento de compras in-app mostrando um produto de Assinatura Mensal 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="Preciso de uma conta bancária para usar o RevenueCat?">
    Não. Você só precisa de um e-mail e senha para criar uma conta RevenueCat. A configuração da conta bancária é feita separadamente pela Apple ou Google quando você estiver pronto para receber pagamentos da App Store ou Google Play.
  </Accordion>

  <Accordion title="As compras de teste são cobradas?">
    Não. Durante o desenvolvimento, as visualizações 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 após a Apple App Review aprovar seu aplicativo.
  </Accordion>

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

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