Фиксируем кандидата и условия воспроизводства
Файлы с одинаковыми именами могут относиться к разным сборкам, идентификаторам подписи или настройкам защиты. Запишите пакет, версию, дайджест сертификата, дайджест файла, конфигурацию защиты, устройство, систему и путь установки.
Подготовьте соответствующую незащищенную базовую версию и воспроизведите ее с той же учетной записью, сетью, состоянием данных и записью запуска. Непоследовательные условия делают атрибуцию ненадежной.
- Фиксированный файл и подпись
- Фиксированная версия устройства и системы
- Тот же путь установки или обновления
- Та же учетная запись, сеть и данные
Найдите самую раннюю стадию запуска отличающегося приложения
Разделите запуск приложения на создание процесса, инициализацию приложения, работу ContentProvider, загрузку классов, собственную загрузку, ресурсы первого экрана и вход в бизнес. Запишите, где кандидат впервые расходится.
Самая ранняя разница часто более полезна, чем окончательная ошибка. Более поздние сбои могут быть вторичными, и изменение настроек последнего кадра стека может скрыть истинную причину.
Проверьте общие точки совместимости по операторам связи.
Для Java и Kotlin проверьте отражение, динамическую загрузку, сериализацию, аннотации и записи, зависящие от имен. Для собственного кода проверьте ABI, зависимости, регистрацию JNI, видимость и порядок инициализации.
Ресурсы и сторонние SDK могут зависеть от манифеста, путей к файлам, проверок целостности, WebView, систем исправлений или их собственной логики защиты от несанкционированного доступа. Изменяйте одну переменную за раз.
- Отражение и динамическая нагрузка
- Регистрация JNI и зависимости
- Manifest и пути к ресурсам
- Сторонние самопроверки
Возврат к объему выпуска после исправления
Удаление одного сбоя на одном устройстве устраняет только эту точку воспроизведения. Повторно запустите установку, обновление, запуск приложения, критические бизнес-пути, целевые системы и откат с той же учетной записью-кандидатом.
Отметьте недоступные устройства или версии системы как непокрытые и ограниченные по объему выпуска. Данные из другой версии не заменяют отсутствующее покрытие совместимости.
Примените руководство к реальному приложению
Предоставьте стек, критические пути, целевые системы и текущего кандидата, чтобы Yudun мог порекомендовать целенаправленную проверку защиты и совместимости.