Мое РЕШЕНИЕ внизу:
Я столкнулся с той же проблемой: чередующиеся прогоны дают правильный, а затем неправильный перевод (только для английского).
Добавление «-NSShowNonLocalizedStrings YES» в качестве аргумента к приложению привело к:
Localizable string "MyKey" not found in strings table "Localizable" of bundle CFBundle
Итак, я попытался загрузить файл ключа непосредственно из пакета в виде строки и вывести его. Ну, раз он не работал правильно, он отображал кучу встроенных сообщений iOS. Итак, я пошел к файлу APP, который был собран, открыл содержимое пакета и просмотрел файл en.lproj / Localizable.strings ... и вуаля !!! Файл был заполнен парами ключ / значение Apple iOS. На следующей сборке он был заполнен, как и ожидалось.
Конечно, это не имеет ничего общего с кодировкой файлов (которая должна быть UTF-16). Я не смог найти ничего с упоминанием этой конкретной проблемы.
МОЕ РЕШЕНИЕ:
Я скопировал содержимое допустимого английского файла Localizable.strings ИЗ ПАКЕТА ПРИЛОЖЕНИЯ (не из моего источника) в файл XML (после компиляции файл .strings преобразуется в XML) и добавил в мой проект. Затем я загрузил этот файл в словарь при запуске, и если вызов NSLocalizedString вернул ключ вместо значения, я произвел поиск в загруженном словаре. Теоретически вы могли бы сделать это для всех языков, но у меня была проблема только с английским.
Да, это не ответ на проблему, но это обходной путь.