Solução de problemas do SDK do MAUI e do Xamarin

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.

Coletando logs detalhados

Para obter instruções sobre como ajustar o nível de log para VERBOSE, consulte a seção Outras APIs .
Você pode encontrar os logs detalhados na janela Depurar>Saída doWindows>.

Problemas durante a instalação

  1. Para um aplicativo Xamarin.Forms, verifique se os pacotes estão instalados em todos os projetos que fazem referência a quaisquer bibliotecas. Caso contrário, você verá erros.
  2. Se você vir esse erro ao compilar para Xamarin.iOS: MTOUCH: Error MT3001: Could not AOT the assembly 'obj/**/Build/Microsoft.AppCenter.**.iOS.Bindings.dll' (MT3001) será necessário atualizar o componente Xamarin.iOS para a versão 10.4.0.128 ou posterior.
  3. Se você vir esse erro ao criar para o Xamarin.iOS: MTOUCH: Error MT5210: Native linking failed, undefined symbol: _OBJC_METACLASS_$_MS{SomeSdkClassName}. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in. (MT5210) ou um erro semelhante (MT5211 código com mensagem semelhante mencionando o App Center), certifique-se de chamar AppCenter.Start antes de usar as APIs de um serviço específico. Se você estiver chamando Start , mas tiver esse problema, precisará atualizar o componente Xamarin.iOS para a versão 10.4.0.128 ou mais recente.
  4. No console, procure um log assert com a mensagem "SDK do App Center configurado com êxito". Isso verifica se o SDK foi configurado com êxito.

Os dados de análise não aparecem no portal

  1. Verifique se você integrou os módulos do SDK corretamente.

  2. Verifique se o Segredo do Aplicativo correto está incluído junto com a chamada de Start() método. Você pode copiar o código exato Start() abrindo o aplicativo no portal e navegando até Introdução página.

  3. Se você quiser ver os logs que são enviados para o back-end, altere o nível de log para Detalhado em seu aplicativo e o SDK imprimirá logs no console. Chame a API abaixo antes de iniciar o SDK.

    AppCenter.LogLevel = LogLevel.Verbose;
    

    Verifique os logs que dizem "SDK do App Center configurado com êxito" (no nível de log de informações) e marcar se você vir logs de solicitação HTTPS.

  4. Verifique se o dispositivo está online.

  5. Às vezes, os logs podem levar alguns minutos para serem exibidos no portal. Aguarde algum tempo se esse for o caso.

  6. Para marcar se o back-end do App Center recebeu seus dados, vá para a seção Fluxo de log no serviço análise. Seus eventos devem aparecer depois que forem enviados.

Falhas não aparecem no portal

  1. Verifique se você integrou os módulos do SDK corretamente.

  2. Verifique se o Segredo do Aplicativo correto está incluído junto com a chamada de Start() método. Você pode copiar o código exato Start() abrindo o aplicativo no portal e navegando até Introdução página.

  3. Reinicie o aplicativo após uma falha. As falhas do App Center encaminharão o log de falhas somente depois que ele for reiniciado. Além disso, no Xamarin.iOS e no Xamarin.Mac, o SDK não salvará nenhum log de falhas se você anexou um depurador. Verifique se o depurador não está anexado quando você falha no aplicativo iOS. No Xamarin.Android, você pode falhar ao ter o depurador anexado, mas precisa continuar a execução depois de invadir a exceção sem tratamento.

  4. Se você quiser ver os logs que são enviados para o back-end, altere o nível de log para Detalhado em seu aplicativo e o SDK imprimirá logs no console. Chame a API abaixo antes de iniciar o SDK.

    AppCenter.LogLevel = LogLevel.Verbose;
    

    Verifique os logs que dizem "SDK do App Center configurado com êxito" (no nível de log de informações) e marcar se você vir logs de solicitação HTTPS.

  5. Não use nenhuma outra biblioteca que forneça funcionalidade de Relatório de Falhas, como O Xamarin Insights ou HockeyApp. Você só pode ter um SDK de relatório de falhas integrado.

  6. Verifique se o dispositivo está online.

  7. Às vezes, os logs podem levar alguns minutos para serem exibidos no portal. Aguarde algum tempo se esse for o caso.

  8. Se você quiser marcar se o SDK detectou a falha na próxima inicialização do aplicativo, chame a API para marcar se o aplicativo falhou na última sessão e mostrará um alerta. Ou você pode estender o retorno de chamada de falha para ver se ele foi enviado com êxito ao servidor.

  9. Para marcar se o back-end do App Center recebeu a falha, vá para a seção Fluxo de log no serviço análise. Seus acidentes devem aparecer lá, assim que forem enviados.

Distribuir e atualizações no aplicativo estão bloqueando meus testes de interface do usuário automatizados

Se você estiver executando testes automatizados de interface do usuário, as atualizações habilitadas no aplicativo bloquearão seus testes automatizados de interface do usuário, pois eles tentarão se autenticar no back-end do App Center. É recomendável não habilitar a Distribuição do App Center para seus testes de interface do usuário.

O Google Play rejeita o aplicativo depois de adicionar DistributePlay

O Google Play rejeita aplicativos que usam o Distribute módulo porque ele contém a implementação de atualização no aplicativo. Para evitar essa situação, o SDK do App Center tem DistributePlay um módulo, que contém stubs para o módulo main. Ele substitui o main montagem por montagem com barba, o que imita a Distribute API. Nenhuma alteração adicional é necessária no aplicativo cliente. O DistributePlay não tem nenhum código relacionado à atualização no aplicativo. Se depois de Distribute substituir o módulo pelo DistributePlay aplicativo ainda for rejeitado, siga as etapas abaixo para verificar se o Distribute módulo foi substituído corretamente:

  • Certifique-se de que você substituiu DistributeDistributePlay por em todas as suas versões para todos os seus grupos de publicação no Google Play Console.
  • Se você usar Xamarin.Forms , certifique-se de adicionar o DistributePlay módulo a projetos e Xamarin.Android compartilhados.
  • Verifique se o arquivo de saída não contém o Microsoft.AppCenter.Distribute.Android.Bindings.dll assembly. Você pode usar o Analisador do APK para marcar-lo.

Mensagens no console que indicam que o banco de dados não pôde ser aberto no iOS

O App Center usa o SQLite para persistir os logs antes que eles sejam enviados para o back-end. Se você estiver agrupando seu aplicativo com sua própria biblioteca SQLite em vez de usar a fornecida pelo sistema operacional, poderá ver erros como esse no console [AppCenter] ERROR: -[MSACDBStorage executeSelectionQuery:]/147 Failed to open database e não verá nenhuma informação de análise ou falha no back-end. Atualize o SDK para a versão 0.16.0 ou posterior.

Proteger o valor do segredo do App Center

O app_secret é um identificador do seu aplicativo, é necessário saber a qual aplicativo o tráfego se aplica e não pode ser usado para recuperar ou editar dados existentes. Se o app_secret estiver exposto, o maior risco será enviar dados inválidos para seu aplicativo, mas não terá efeito sobre a segurança dos dados.

Para recuperar dados confidenciais, você precisaria fornecer um token de aplicativo/usuário, que é gerado no lado do cliente. Não há como tornar os dados do lado do cliente completamente seguros.

Você pode melhorar a segurança do aplicativo usando uma variável de ambiente para injetar o segredo do aplicativo em seu código. Dessa forma, o segredo não está visível em seu código.