Partilhar via


Solução de problemas do SDK do iOS

Importante

O Visual Studio App Center foi desativado em 31 de março de 2025, exceto para os recursos de Análise e Diagnóstico, que continuarão a ter suporte até 30 de junho de 2026. Mais informações.

Problemas durante a configuração

  1. No console, procure um log de assert com a mensagem - "App Center SDK configurado com êxito". A mensagem implica que o SDK está configurado com êxito.
  2. Se você estiver usando o Cocoapods para integrar o App Center ao seu aplicativo iOS e encontrar um erro com a mensagem - CocoaPods - Unable to find a specification for AppCenter, execute pod repo update para atualizar seu repositório local do Cocoapods e execute pod install novamente.
  3. Se você estiver usando o CocoaPods para integrar o App Center ao seu aplicativo iOS e, durante a compilação do projeto, você se deparar com um erro com a mensagem - framework not found AppCenter.xcframework então você precisa atualizar (reinstalar) o Cocoapods para a versão mais recente executando [sudo] gem install cocoapods.
  4. Se você estiver integrando os binários do SDK manualmente, certifique-se de ter os módulos habilitados para seu projeto.

Os dados do Google Analytics não aparecem no portal

  1. Certifique-se de ter integrado os módulos do SDK corretamente.

  2. Certifique-se de que o App Secret correto está incluído junto com a chamada do método start:withServices:. Você pode copiar o código exato start:withServices:abrindo o aplicativo no portal e navegando até a página Introdução .

  3. Se desejar ver os logs que são enviados para o backend, altere o nível de log para Detalhado na sua aplicação. O SDK imprimirá os logs no Console. Insira a seguinte chamada antes do início do SDK:

    [MSACAppCenter setLogLevel:MSACLogLevelVerbose]
    
    AppCenter.logLevel = .verbose
    

    Certifique-se de que "App Center SDK configurado com êxito" aparece nos logs (no nível de log INFO ) e, em seguida, verifique se você vê logs de solicitação HTTPS.

  4. Certifique-se de que o dispositivo está online.

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

  6. Para verificar se o back-end do App Center recebeu seus dados, vá para a seção Fluxo de log no serviço Analytics . Os seus eventos devem aparecer assim que forem enviados.

As falhas não aparecem no portal

  1. Certifique-se de ter integrado os módulos do SDK corretamente.

  2. Certifique-se de que o segredo correto da aplicação está incluído juntamente com a chamada de método start:withServices:. Você pode copiar o código exato start:withServices: abrindo o aplicativo no portal e navegando até a página Introdução .

  3. As falhas do App Center encaminharão o registro de falhas somente depois que o aplicativo for reiniciado. Além disso, o SDK não encaminhará nenhum log de falhas se você estiver conectado ao depurador. Certifique-se de que o depurador não está ligado quando se fizer crash a aplicação.

  4. Se desejar ver os logs que são enviados para o backend, altere o nível de log para Detalhado na sua aplicação. O SDK imprimirá os logs no Console. Insira a seguinte chamada antes do início do SDK:

    [MSACAppCenter setLogLevel:MSACLogLevelVerbose]
    
    AppCenter.logLevel = .verbose
    

    Certifique-se de que "App Center SDK configurado com êxito" aparece nos logs (no nível de log INFO ) e, em seguida, verifique se você vê logs de solicitação HTTPS.

  5. Não use outras bibliotecas que forneçam a funcionalidade Relatório de falhas. Você só pode ter um SDK de relatório de falhas integrado ao seu aplicativo.

  6. Certifique-se de que o dispositivo está online.

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

  8. Verifique se o SDK detetou a falha na próxima inicialização do aplicativo. Você pode chamar a API para verificar se o aplicativo falhou na última sessão e mostra um alerta. Pode também prolongar o callback de falha didSucceedSendingErrorReport para verificar se foi enviado com êxito para o servidor.

  9. Para verificar se o back-end do App Center recebeu a falha, vá para a seção Fluxo de log no serviço Analytics. Suas falhas de sistema devem aparecer lá, uma vez que o relatório tenha sido enviado.

O Alerta que solicita uma atualização aos usuários não contém cadeias de caracteres, mas apenas as chaves para eles

Isso significa que o AppCenterDistributeResources.bundle não foi adicionado ao projeto. Certifique-se de que você soltou o arquivo em seu projeto Xcode e ele aparece na fase de compilação do Copy Bundle Resources destino do aplicativo. Ele deve aparecer lá se você adicionou o arquivo através de arrastar e soltar - Xcode faz isso automaticamente para você. Se o arquivo estiver faltando na fase de compilação, adicione-o para que ele seja compilado no pacote do seu aplicativo.

Se você estiver usando o Cocoapods, ele cuida dos recursos automaticamente. Tente reinstalar o pod.

Você vê mensagens no console que indicam que o banco de dados não pôde ser aberto

A partir da versão 0.11.0 do SDK do iOS, o App Center usa o SQLite para persistir os logs antes de enviá-los 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 este no console [AppCenter] ERROR: -[MSACDBStorage executeSelectionQuery:]/147 Failed to open database e não verá nenhuma análise ou informações de falha no back-end. Atualize o SDK para a versão 0.13.0 ou posterior.

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

Se as atualizações no aplicativo estiverem habilitadas, elas bloquearão seus testes automatizados de interface do usuário. O processo de atualização tentará autenticar-se no servidor do App Center. Recomendamos não habilitar o App Center Distribute para seu destino de teste de interface do usuário.

Por que o SDK é distribuído como uma "biblioteca estática"

As principais metas de design para o SDK do App Center são ter um impacto mínimo no aplicativo que usa o App Center e ter um SDK modular. Isso resultaria na distribuição do SDK como várias bibliotecas compartilhadas vinculadas dinâmicas.

No entanto, o App Center é distribuído como uma biblioteca partilhada ligada estaticamente, envolvida numa estrutura falsa extensa. Isso significa que o SDK é vinculado no momento da compilação e não no momento da inicialização para um melhor desempenho. O carregamento de várias bibliotecas compartilhadas vinculadas dinâmicas leva tempo.

A Apple recomenda otimizar a inicialização do aplicativo para não levar mais de 400 ms em uma sessão WWDC. Eles recomendam especificamente bibliotecas compartilhadas estáticas em vez de bibliotecas compartilhadas dinâmicas para atingir esse objetivo. A distribuição do SDK do App Center para iOS como uma biblioteca compartilhada vinculada estaticamente segue a recomendação da Apple de fornecer o melhor desempenho e um impacto mínimo para o aplicativo que inclui o SDK.

Para saber mais sobre bibliotecas compartilhadas vinculadas estaticamente versus bibliotecas compartilhadas vinculadas dinâmicas, recomendamos a documentação geral da Apple sobre o tema.

Por que os binários do SDK são tão grandes? Estou preocupado com o tamanho do meu aplicativo

Os binários do AppCenter são distribuídos como estruturas "gordas" que contêm fatias para todas as arquiteturas do iPhone e para o simulador do iPhone. É por isso que, por exemplo , o AppCenter.framework tem 10,5 MB para download.

O tamanho compilado dos binários do SDK será muito menor do que o .framework que você adiciona ao seu aplicativo no Xcode. Além disso, tenha em mente que as compilações de lançamento também serão menores do que as compilações de depuração.

Para ilustrar esta questão, criámos uma aplicação Objective-C vazia utilizando o Xcode 9.2, adicionámos os binários do App Center à aplicação e distribuímos as versões compiladas para um iPhone 7 a correr iOS 11.3.

Executamos os testes sem o Bitcode ativado e não usamos o App Thinning. Você pode usar essas técnicas para reduzir ainda mais o tamanho binário do seu aplicativo.

Os números abaixo podem variar e dependem das suas configurações de compilação, portanto, considere-os um guia aproximado. Dito isso, adicionar o SDK do App Center ao seu aplicativo tem um impacto mínimo no tamanho do binário do aplicativo.

Módulos do App Center usados Tamanho do IPA exportado Tamanho da instalação
Nenhum (aplicativo em branco) 24 KB 132 KB
Análise do App Center 120 KB 377 KB
Falha do App Center 239 KB 705 KB
App Center Distribuição 163 KB 528 KB
Todos os módulos do App Center 314 KB 930 KB

Proteger o valor secreto 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. Caso o seu app_secret esteja exposto, o maior risco é enviar dados incorretos para a sua aplicação, mas isso não terá impacto na segurança dos dados.

Para recuperar dados confidenciais, você precisa 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 seu aplicativo usando uma variável de ambiente para injetar o segredo do aplicativo em seu código. Dessa forma, o segredo não fica visível no seu código.