Если возможно, я бы всегда старался избегать этого. Обратите внимание, что Apple, вероятно, отклонит ваш отзыв за это, но если они не знают ...
То, что мы использовали в каком-то приложении, было своего рода файлом конфигурации. У нас была его локальная (по умолчанию) версия, но в противном случае файл, загруженный с нашего сервера, определял, например, какие URL использовать. Самая большая проблема, которую это создает, заключается в том, что вам нужно открывать произвольные загрузки и разрешать вашему приложению доступ к любому URL в любое время. Это дает хорошую возможность возможному злоумышленнику заставить приложение делать практически все, просто взломав файл конфигурации. В противном случае это довольно простая процедура: когда приложение запускает сервер запросов для файла конфигурации. Если это удается, сохраните его в локальной библиотеке и продолжите. Если это не удается, проверьте локальную библиотеку на наличие последней версии конфигурации и используйте ее. Если в локальной библиотеке нет файла (никогда не получал конфигурацию с сервера), используйте файл в ресурсах (по умолчанию).
Другой подход, который я бы предпочел - это менеджер перенаправлений на стороне сервера. Таким образом, вы можете сохранить ваши URL-адреса такими, какие они есть, но на стороне сервера включить перенаправление на сервер разработки. Я не уверен, сколько проблем это может представлять на бэкэнде.
Другой способ - делать вещи, основанные на времени. Если вы планируете представить свое приложение намного раньше, чем выпустите его в магазине приложений, вы можете использовать URL-адреса в зависимости от текущего времени (даты). Представьте, что вы отправили свое приложение на рассмотрение в начале сентября, но выпустите его в начале октября. Проблема в том, что вы не можете рассчитывать на время устройства. Вам нужно будет использовать некоторую конечную точку, чтобы узнать текущее время. Я думаю, что это все же будет безопаснее, чем получение любого URL-адреса из бэкэнда, но с любой другой точки зрения это почти то же самое, что и первое решение.
В каком бы случае вы не использовали, существует также потенциальная проблема, связанная с изменением URL во время выполнения. Или что приложение долгое время находилось в фоновом режиме и URL-адрес изменился. Обычно существуют системы, работающие, например, с некоторыми моделями с подкачкой страниц или списком, имеющим элемент, который приводит к деталям со старым URL-адресом ... Короче говоря, у вас, скорее всего, останется куча старых URL-адресов, которые необходимо заменить. Самым простым решением для этого является «случайное» падение приложения. В противном случае есть относительно простые решения, такие как воссоздание всей иерархии контроллера представления, но это все еще немного.