Outras APIs do Unity

Importante

O Visual Studio App Center está programado para ser desativado em 31 de março de 2025. Embora você possa continuar a usar o Visual Studio App Center até que ele seja totalmente desativado, há várias alternativas recomendadas para as quais você pode considerar migrar.

Saiba mais sobre linhas do tempo e alternativas de suporte.

Ajustar o nível de log

Você pode controlar o número de mensagens de log que aparecem no App Center no console. Use a LogLevel-API para habilitar o log adicional durante a depuração. Por padrão, ele é definido ASSERT como para os ambientes de App Store eWARN, caso contrário, .

Para ter o máximo de mensagens de log possível, habilite LogLevel.Verbose nas configurações do App Center ou em seu código.

AppCenter.LogLevel = LogLevel.Verbose;

Identificar instalações

O SDK do App Center cria uma UUID para cada dispositivo depois que o aplicativo é instalado. Esse identificador permanece o mesmo para um dispositivo quando o aplicativo é atualizado. Um novo identificador é gerado somente quando o aplicativo é reinstalado. A API a seguir é útil para fins de depuração.

System.Guid? installId = await AppCenter.GetInstallIdAsync();

Identificar usuários

O SDK do App Center dá suporte à configuração de uma ID de usuário usada para aumentar os relatórios de falhas. Para usar essa funcionalidade:

  1. Configure o SDK do App Center conforme descrito no guia de introdução do SDK do App Center.
  2. Defina um userID no SDK usando o seguinte código:
AppCenter.SetUserId("your-user-id");

Depois de definir uma ID de usuário, você pode usar o recurso de pesquisa do App Center para pesquisar relatórios de falha específicos para a ID. Saiba mais na documentação de pesquisa do App Center.

Observação

O valor da ID de usuário é limitado a 256 caracteres. Ele será mostrado com seus relatórios de falha, mas não usado para agregação ou contagens de usuários afetados. Caso você defina a ID de usuário várias vezes, somente a última ID de usuário será usada. Você precisa definir a ID de usuário por conta própria antes da inicialização de cada aplicativo, pois esse valor não é armazenado pelo SDK entre as inicializações.

Desabilitar todos os serviços em runtime

Se você quiser desabilitar todos os serviços do App Center de uma só vez, use a Enabled propriedade . Quando desabilitado, o SDK não encaminhará nenhuma informação para o App Center.

AppCenter.SetEnabledAsync(false);

Para habilitar todos os serviços novamente, use a mesma API, mas passe true como um parâmetro.

AppCenter.SetEnabledAsync(true);

Você não precisa aguardar essa chamada para tornar consistentes outras chamadas à API (como IsEnabledAsync).

O estado é persistido no armazenamento do dispositivo entre as inicializações do aplicativo.

Alterar o estado do serviço em runtime

Você pode habilitar ou desabilitar o serviço no runtime com o seguinte código:

Analytics.SetEnabledAsync(true);

Não permitir solicitações de rede

No SDK do App Center, as solicitações de rede são permitidas por padrão. Se você quiser enviar dados que o SDK do App Center coleta pela preocupação do usuário, poderá não permitir o envio automático de dados.

AppCenter.IsNetworkRequestsAllowed = false;

Nesse caso, o SDK do App Center continua coletando dados, mas ele será enviado somente quando as solicitações de rede forem permitidas.

AppCenter.IsNetworkRequestsAllowed = true;

Observação

Esse valor é retido entre as inicializações.

A qualquer momento, você pode marcar se o envio de dados no SDK do App Center é permitido ou não.

AppCenter.IsNetworkRequestsAllowed;

Observação

O valor salvo anteriormente em SharedPreferences é ignorado até AppCenter ser iniciado na plataforma Android. Ele retornará o último valor definido usando AppCenter.IsNetworkRequestsAllowed = allowed ou true se o valor não tiver sido alterado antes do início do AppCenter.

Verificar se o App Center está habilitado

Você também poderá marcar se o App Center estiver habilitado ou não.

bool enabled = await AppCenter.IsEnabledAsync();

Verificar a versão do SDK do App Center em runtime

Você pode obter a versão do SDK do App Center que está usando no momento.

AppCenter.SdkVersion;

Atrasar o início do App Center

Pode haver casos em que você queira atrasar o início do App Center até que o AppCenterBehavior seja iniciado. Por exemplo, se você quiser solicitar o consentimento do usuário antes de iniciar qualquer serviço do App Center.
Para fazer isso, adicione AppCenterBehaviorAdvanced ao objeto de jogo e marcar as caixas de seleção Iniciar SDK nativo do aplicativo iOS/Android. Isso inicia o SDK no Start método de AppCenterBehavior e permite que você adicione uma caixa de diálogo personalizada ou outra lógica.

Dica

Se você gerar as configurações no momento da compilação, outra maneira é acessar Configurações do Player Outras>Configurações>Script definir símbolos e colar APPCENTER_DONT_USE_NATIVE_STARTER.

APIs assíncronas no SDK do Unity

APIs assíncronas retornam um AppCenterTask objeto em vez de retornar o resultado diretamente e retornam imediatamente em vez de aguardar a conclusão da ação.

Há três maneiras de interagir com esses métodos.

Método 1: ContinueWith

Para executar uma ação após a AppCenterTaskconclusão da atividade de , adicione um retorno de chamada usando o ContinueWith método .

Exemplo:

AppCenter.IsEnabledAsync().ContinueWith(task =>
{
    // Do something with task.Result
});

Em situações em que o método tem um valor retornado real, ele retornará AppCenterTask<{Return Type}> (como no exemplo acima). Nessas situações, o parâmetro de tarefa no retorno de chamada terá uma Result propriedade que você pode acessar.

Método 2: recursos de linguagem internos

Se você estiver escrevendo um código que tenha acesso ao .NET 4.6 ou superior, AppCenterTask poderá ser awaitinserido em um contexto assíncrono.

Exemplo:

bool isEnabled = await AppCenter.IsEnabledAsync();

Método 3: Corrotinas

AppCenterTasks também são adequados para uso em corrotinas.

Exemplo:

void SomeMethod()
{
    StartCoroutine(IsEnabledCoroutine());
}

IEnumerator IsEnabledCoroutine()
{
    var isEnabled = AppCenter.IsEnabledAsync();
    yield return isEnabled;

    // do something with the isEnabled
}