Corrija o candidato e as condições de reprodução
Arquivos com o mesmo nome podem vir de compilações, identidades de assinatura ou configurações de proteção diferentes. Registre pacote, versão, resumo de certificado, resumo de arquivo, configuração de proteção, dispositivo, sistema e caminho de instalação.
Prepare a linha de base desprotegida correspondente e reproduza-a com a mesma conta, rede, estado de dados e entrada de lançamento. Condições inconsistentes tornam a atribuição não confiável.
- Arquivo fixo e identidade de assinatura
- Dispositivo fixo e versão do sistema
- Mesmo caminho de instalação ou atualização
- Mesma conta, rede e dados
Encontre o primeiro estágio divergente de lançamento de aplicativos
Divida o lançamento do aplicativo em criação de processo, inicialização do aplicativo, trabalho ContentProvider, carregamento de classe, carregamento nativo, recursos de primeira tela e entrada de negócios. Registre onde o candidato diverge primeiro.
A primeira diferença costuma ser mais útil que o erro final. As falhas posteriores podem ser secundárias e a alteração das configurações em torno do último quadro de pilha pode ocultar a causa real.
Inspecione pontos de compatibilidade comuns por operadora
Para Java e Kotlin, inspecione reflexão, carregamento dinâmico, serialização, anotações e entradas que dependem de nomes. Para código nativo, inspecione ABI, dependências, registro JNI, visibilidade e ordem de inicialização.
Os recursos e SDKs de terceiros podem depender do manifesto, dos caminhos dos arquivos, das verificações de integridade, do WebView, dos sistemas de hotfix ou de sua própria lógica anti-adulteração. Altere uma variável de cada vez.
- Reflexão e carregamento dinâmico
- Registro JNI e dependências
- Manifest e caminhos de recursos
- Autoverificações de terceiros
Retorne ao escopo do lançamento após uma correção
A remoção de uma falha em um dispositivo resolve apenas esse ponto de reprodução. Execute novamente a instalação, atualização, inicialização de aplicativos, caminhos críticos de negócios, sistemas de destino e reversão na mesma identidade candidata.
Marque dispositivos ou versões de sistema indisponíveis como descobertos e com escopo de lançamento restrito. As evidências de outra versão não substituem a falta de cobertura de compatibilidade.
Aplicar a orientação a uma aplicação real
Forneça a pilha, os caminhos críticos, os sistemas de destino e o candidato atual para que Yudun possa recomendar uma revisão focada de proteção e compatibilidade.