Flutter SDK - Integração básica

Documento
Novo: Guia em vídeo

Assista a este vídeo para obter uma visão detalhada do processo de integração. Recomendamos que utilize tanto o vídeo como o guia escrito abaixo.

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

O SDK do Singular está disponível como um plug-in para o Flutter. As instruções abaixo mostram como integrar o Singular em seu aplicativo Flutter.

  • Este artigo assume que você tem um aplicativo Flutter funcional.
  • Para inicializar o SDK, você precisa da sua Chave SDK Singular e do Segredo SDK. Você pode obtê-los na plataforma Singular em"Developer Tools > SDK Integration > SDK Keys".

Para adicionar o plugin Singular Flutter ao seu projeto:

  1. Adicione o singular_flutter_sdk: ^1.6.2 ao seu arquivo pubspec.yaml:

    pubspec.yaml
    dependencies:
      flutter:
        sdk: flutter
      singular_flutter_sdk: ^1.6.2
  2. Em seguida, navegue até seu projeto no terminal e execute o seguinte:

    bash
    flutter packages get

Configurar pré-requisitos

Pré-requisitos do iOS

Para usar o plug-in Singular Flutter, adicione a estrutura AdServices.

  1. Adicione o framework AdServices ao seu projeto iOS:

    • Navegue até a pasta ios do seu projeto Flutter.
    • Abra Runner.xcworkspace no Xcode (use .xcworkspace se você usar CocoaPods, caso contrário, use .xcodeproj).
  2. Adicione a estrutura AdServices:

    • No Xcode, selecione o destino do seu projeto (por exemplo, "Runner").
    • Vá para a guia Geral.
    • Role até a seção Frameworks, Bibliotecas e Conteúdo incorporado.
    • Clique no botão +.
    • Procure por AdServices.framework e adicione-o.
    • Defina o status da estrutura como Opcional (para garantir a compatibilidade se a estrutura não estiver disponível em versões mais antigas do iOS).

Pré-requisitos do Android

Adição de 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 android/app/build.gradle:

android/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 SDK do Android Singular em seu aplicativo Android Flutter, 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) é usado 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. Localizar o arquivo de regras do ProGuard: no seu projeto Flutter, 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:
android/app/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 main.dart, adicione o seguinte código para importar as classes do Singular.

main.dart
import 'package:singular_flutter_sdk/singular.dart';
import 'package:singular_flutter_sdk/singular_config.dart';

Inicializando o SDK do Singular

O código de inicialização do SDK do Singular 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).

O código de inicialização vai para o widget principal do seu aplicativo (ou seja, main.dart) - o primeiro que é carregado quando o aplicativo é aberto. Este widget tem de ter estado e o código tem de ser adicionado no método initState() do widget.

  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étodostart para inicializar o SDK, passando o objeto SingularConfig objeto.
  4. Atualize sua classe _MyHomePageState em main.dart para incluir o código de inicialização.

Exemplo de um main.dart modificado:

dart
import 'package:singular_flutter_sdk/singular.dart';
import 'package:singular_flutter_sdk/singular_config.dart';
//... class MyHomePage extends StatefulWidget { //... } class _MyHomePageState extends State<MyHomePage> { //... @override void initState() { super.initState(); //... SingularConfig config = new SingularConfig('SDK KEY', 'SDK SECRET');
// Enable Logging for testing config.logLevel = 3; config.enableLogging = true; // Set hashed User ID if available config.customUserId = "b642b4217b34b1e8d3bd915fc65c4452"; // For iOS (Remove this if you are not displaying an ATT prompt)! config.waitForTrackingAuthorizationWithTimeoutInterval = 300; // To enable SkAdNetwork Support config.skAdNetworkEnabled = true; // To enable META Install Referrer config.facebookAppId = "INSERT YOUR FACEBOOK APP ID HERE"; // (optional) Using Singular Global Properties feature to capture // third party identifiers. The respective SDK(s) must be initialized // before the Singular SDK. Example of passing the CleverTapID. // var cleverTapId = CleverTapPlugin.getCleverTapID(); // config.withGlobalProperty("CLEVERTAPID", cleverTapId, true); Singular.start(config); }