VP
Хранить версию для упрощения можно (и даже удобно) в package.json, но передавать в ходе сборки только через нативный конфиг (и читать в рантайме только оттуда, нативными же инструментами)
Если кто-то передаёт и читает версию в обход этого файла - ССЗБ и это только вопрос времени, кто и когда это (даже случайно) сломает (и покажет в результате сборки в UI версию из package а в CI и в сторе при этом версия будет отличаться).
В этом и есть ненадёжность, когда появляется несколько точек контроля (пусть даже автоматизированного)