Как предотвратить необходимость перестройки приложения после смены языка / региона - PullRequest
0 голосов
/ 28 ноября 2010

Проблема возникает в XCode> 'Build and run',
, а не в 'Instruments> Leaks'.Так что, похоже, проблема с XCode.
Если это так, я не против сделать дополнительную перестройку.

Однако, если проблема также возникнет после публикации приложения в магазине приложений iTunes,
и клиент установит приложение на свое устройство,
ему придется переустанавливать приложение каждый раз, когда она меняет язык /регион.
(надо сказать, что это было бы неприемлемо).

Является ли эта проблема:
a) только в Xcode (не в магазине приложений)?
b) не испытанадругие разработчики, так что, скорее всего, это ошибка в приложении?или
в) может появиться, даже если приложение установлено путем загрузки из магазина приложений?

Если 'b' или 'c', есть идеи, как это исправить?

---------------- Шаги по воспроизведению проблемы -----------------
Во время разработки:
1) Выполните Xcode> «Построить и запустить», убедитесь, что приложение работает должным образом (в симуляторе или на устройстве);
2) Измените язык и регион (в «Настройках> Общие> Международные» на iPhone)
3) Проверка:
-Консоль отображает неинформативную ошибку:
Программа получила сигнал: «SIGKILL».
-App падает в фоновом режиме,
-При нажатии на значок приложения больше не запускаетсяприложение
(экран приложений по умолчанию отображается в течение секунды, а затем падает)
4) Выполните еще один «Сборка и запуск»
5), проверьте, что теперь приложение запускается и работает хорошо
(на новом языке ирегион, как и ожидалось. Поэтому строки локализации приложения и т. д. работают нормально).

6) Выполните «Выполнить с помощью Performance Tool> Утечки»
7) Измените язык и регион (в настройках iPhone)
8) проверить отсутствие проблем.
То есть:
Отслеживание прерываний приборов (без сбоев в приложении или в инструменте), и
пользователь может повторно запустить app в айфоне как обычно (шаги 3 и 4 исключены).

Ответы [ 2 ]

1 голос
/ 03 декабря 2010

Я видел подобное поведение. Между третьим и пятым шагами вы можете попробовать «остановить отладку» в Xcode и пропустить перестройку.

Я могу изменить язык на устройстве, а затем использовать приложение с новым выбранным языком, не делая новую сборку, но я должен сначала нажать кнопку остановки в Xcode.

0 голосов
/ 20 декабря 2010

РЕШЕНИЕ: проблема была в приложении.
Он сохранял локализованное значение в .plist и использовал это значение для сравнения.
Когда язык был изменен, значение в .plist осталось на старом языке, поэтому сравнение (со значением на новом языке) не удалось.
Исправлено с помощью не зависящих от языка значений в .plist и сравнении.

...