Версия и номер сборки, phased release
Два номера
- Версия —
CFBundleShortVersionString, в build settingsMARKETING_VERSION: то, что видит пользователь в App Store, например2.4.0. До трёх неотрицательных целых через точку. - Номер сборки —
CFBundleVersion, в build settingsCURRENT_PROJECT_VERSION: внутренний счётчик, например412или2.4.0.412. Каждая загрузка в App Store Connect для версии должна иметь номер больше предыдущего; на CI его берут из номера запуска.
Одна версия — много сборок: 2.4.0 (410) ушла в TestFlight, нашли баг, 2.4.0 (411) ушла на ревью. Пользователь увидит только 2.4.0.
let info = Bundle.main.infoDictionary
let version = info?["CFBundleShortVersionString"] as? String ?? "?"
let build = info?["CFBundleVersion"] as? String ?? "?"
print("Версия \(version) (\(build))") // в экране «О приложении» и в логах
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep