Я делаю это так же, как описано в другом ответе. У меня просто есть глобальная переменная в первом действии, которая соответствует номеру выпуска из манифеста. Я увеличиваю его для каждого обновления и когда чек видит большее число, он выполняет одноразовый код.
В случае успеха он записывает новый номер в общие настройки, поэтому он не будет делать это снова до следующего upgrade.
Убедитесь, что вы назначили значение по умолчанию -1, когда вы извлекаете версию из общих настроек, чтобы вы снова ошиблись на стороне запуска кода, а не запустили его и не имели обновления для своего приложения правильно.