SDK do React Native - Integração básica

Documento

Antes de começar: Pré-requisitos do SDK

Siga as etapas em Integração de um SDK Singular:Planejamento e pré-requisitos.

Essas etapas são pré-requisitos para qualquer integração do Singular SDK.


Instalar o SDK

Para adicionar o SDK React Singular ao seu projeto:

  1. Abra o terminal no diretório raiz do seu projeto.
  2. Baixe o pacote SDK para seu projeto com o seguinte comando:

    bash
    npm install singular-react-native --save
    • Se você estiver usando o React Native 0.60+, o pacote Singular será vinculado automaticamente ao seu projeto.
    • Se você estiver usando o React Native versão 0.59 ou anterior, execute o seguinte para vincular o código de ponte nativo do pacote Singular ao seu projeto:

      bash
      react-native link singular-react-native
    • Se você estiver usando Expo: Depois de instalar o SDK do Singular conforme descrito acima, adicione o pacote à matriz de plug-ins do seu app.json ou app.config.js:
      bash
      "expo": {
        "plugins": ["singular-react-native"]
      }
      Em seguida, reconstrua seu aplicativo usando o guia da Expo para personalizar o código nativo.

Configurar pré-requisitos

Pré-requisitos do iOS

No diretório raiz do projeto, execute o seguinte comando:

bash
cd ios && pod install

Pré-requisitos do Android

No arquivo project/build.gradle, na seção allprojects, adicione o seguinte aos repositórios Maven do seu aplicativo:

project/build.gradle
allprojects {
  repositories {
    maven { url 'https://maven.singular.net/' }
  }
}

Adicionando permissões e dependências necessárias do Android

Adicione essas permissões sob a tag <manifest> no seu arquivo AndroidManifest.xml:

AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="BIND_GET_INSTALL_REFERRER_SERVICE" />
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
Exclua a permissãocom.google.android.gms.permission.AD_ID se estiver a integrar o Kids SDK.

Para suportar o referenciador de instalação da Samsung Galaxy Store, adicione o seguinte:

AndroidManifest.xml
<queries>
   <package android:name="com.sec.android.app.samsungapps" />
</queries>

Se tiver desativado as dependências transitivas para o SDK Singular, adicione o seguinte ao seu app/build.gradle:

app/build.gradle
dependencies {
    ...
    implementation 'com.android.installreferrer:installreferrer:2.2'
    implementation 'com.google.android.gms:play-services-appset:16.0.0'
    ...
}

Requisitos de configuração se estiver usando o Proguard

Configurando o ProGuard para o Singular SDK no React Native Android

Ao integrar o Singular SDK do Android em seu aplicativo Android React Native, você deve adicionar regras específicas do ProGuard para garantir que o SDK funcione corretamente em compilações de versão. O ProGuard (ou R8, seu substituto moderno) é habilitado por padrão nas compilações de versão do React Native para otimizar e ofuscar o código. Sem as regras adequadas do ProGuard, o SDK Singular ou suas dependências podem ser removidos ou ofuscados, causando problemas de tempo de execução.

Siga estas etapas para configurar o ProGuard para o SDK Singular:

  1. Localize o arquivo de regras do ProGuard: No seu projeto React Native, navegue até o arquivo android/app/proguard-rules.pro. Esse arquivo contém regras personalizadas do ProGuard para seu aplicativo.
  2. Adicionar regras do Singular SDK ProGuard: Anexe as seguintes linhas a android/app/proguard-rules.pro para preservar o SDK Singular e suas dependências:
proguard-rules.pro
# Preserve Singular SDK classes
-keep class com.singular.sdk.** { *; }

# Preserve Android Install Referrer library
-keep public class com.android.installreferrer.** { *; }

# Uncomment the following line if you are using the Singular 'revenue' function with Google Play Billing Library
#-keep public class com.android.billingclient.** { *; }

Integrar o SDK

Observação: Lembre-se de permanecer em conformidade com as várias leis de privacidade promulgadas nas regiões em que faz negócios, incluindo, mas não se limitando a, GDPR, CCPA e COPPA ao implementar os SDKs Singular. Para obter mais informações, consulte Práticas de aceitação e exclusão de SDK.

O código de inicialização do SDK deve ser chamado sempre que seu aplicativo for aberto. Ele é um pré-requisito para todas as funcionalidades de atribuição do Singular e também envia uma nova sessão de usuário para o Singular. As sessões são usadas para calcular a retenção de usuários.

Importando a biblioteca do Singular

No seu arquivo App.tsx, adicione o seguinte código para importar as classes do Singular.

App.tsx
import { Singular, SingularConfig, Events, Attributes } from 'singular-react-native';

Inicializando o SDK do Singular

  1. Crie um objeto SingularConfig. O objeto contém a sua Chave SDK e o Segredo SDK (obtenha a Chave e o Segredo iniciando sessão na sua conta Singular e navegando para"Ferramentas de Programador > Integração SDK > Chaves SDK").
  2. Opcionalmente, adicione vários métodos de configuração para definir ou ativar vários recursos do SDK.

  3. Em seguida, use o métodoinit para inicializar o SDK, passando o objeto SingularConfig objeto.

Por exemplo:

App.tsx
import React, { useEffect } from 'react';
import { Singular, SingularConfig, Events, Attributes } from 'singular-react-native';

export default function App() {
  useEffect(() => {
    // Create Singular configuration
    const config = new SingularConfig('SDK KEY', 'SDK SECRET')
      .withCustomUserId('user_123456') // Set a custom user ID for tracking
      .withLimitDataSharing(false) // Allow data sharing (set to true for compliance if needed)
      .withFacebookAppId('123456789012345') // Optional: For Facebook integration
      .withLogLevel(3) // Enable verbose logging for debugging
      .withLoggingEnabled(); // Enable SDK logs

    // Define SingularLink callback for deep linking
    const handleSingularLink = (params: any) => {
      console.log('SingularLink params:', params);
      // Example: Navigate to a specific screen based on params.deeplink
    };

    // Initialize Singular SDK
    Singular.init(config, handleSingularLink);

  }, []); // Empty dependency array ensures this runs once on app start

  return (
    // Your app's UI components
  );
}