Международное приложение для iOS - общая кодовая база с разными версиями
У нас есть приложение для iOS, которое имеет миллионы пользователей в США и нуждается в интернационализации и должно быть доступно в 11 разных странах (многие из них на разных языках). Проработали все технические детали для раскрытия скрывающих функций, применимых к конкретной стране, а также к различным валютам и т. Д. Мы также реализовали способ для приложения найти местоположение (если оно включено, в противном случае запрашивать у пользователя) и исходя из этого, для самостоятельной настройки для страны / языка.
Мы хотели бы сделать это с одной Code Base. Предположим, что это в настоящее время в версии 1, скажем. Предположим, мы начнем с добавления 5 стран - США, плюс Корея, Япония, Франция, Канада и Мексика. Скажи, что теперь это версия 2.
Затем мы развернем это приложение (одно приложение с одним идентификатором пакета) в магазине приложений и установим доступность этой версии (2) для магазинов приложений в США, Корее, Японии, Франции, Канаде и Мексике.
Предположим, что в следующем месяце мы добавим новую функцию, которая станет версией 3. Мы тщательно протестировали ее для США, но у нашей команды QA нет времени, чтобы протестировать ее для других 5 стран. Поэтому мы хотим выпустить этот V3 только для США и установить доступность новой версии только для США.
Из того, что я понимаю, с тем, как работают настройки магазина приложений, поскольку у нас одинаковый идентификатор пакета, мы не можем ограничить новый V3 только США. Он будет автоматически опубликован в магазинах приложений в Корее, Японии, Франции, Канаде и Мексике.
Это можно обойти?
(другой подход, который я знаю, это использовать одну и ту же кодовую базу, но создавать отдельные цели с отдельными идентификаторами пакетов для каждой страны, и я бы предпочел, чтобы все основывалось на одной цели)
1 ответ
iTunes не поддерживает включение доступности новой версии только для определенного региона и в то же время позволяет старой версии быть доступной в остальных регионах. И они делают это не без причины.
Предположим, вы поддерживаете английский и японский языки. Что вы говорите, так как вы смогли протестировать только английскую локализацию новой версии, вы решили запустить ее во всех регионах, кроме Японии.
Но что делать, если пользователь, работающий в США с английским языком в качестве устройства, возвращается на несколько дней домой в Японию на каникулы. Его сын, который использует телефон этого парня для игры, меняет язык устройства на японский. Теперь, когда ваше приложение будет запущено, будет ли конечный пользователь открыт для непроверенной версии вашего приложения? Даже если вы не локализуетесь в соответствии с настройками ОС и у вас есть отдельная опция на панели настроек вашего приложения, пользователь всегда может переключиться на возможно непроверенную версию, что приведет к ухудшению работы пользователя.
Таким образом, единственные варианты, которые, я думаю, у вас есть: 1. Тестирование вашего приложения на всех языках перед выпуском. 2. Если функции приложения значительно различаются в зависимости от регионов, сгруппируйте схожие регионы и создайте 3-4 разных приложения (XYZApp-US, XYZApp-Europe и т. Д.). Эта опция имеет смысл, только если ваши функции сильно различаются в разных регионах (многие функции должны быть скрыты / изменены в зависимости от языка). Этот подход не только поможет синхронизировать ваши релизы в соответствии с охватом QA, но также поможет отделить код, поскольку только соответствующее приложение будет иметь соответствующий код функции.
Вариант 1, хотя выглядит проще.