Итак, я получил ответ на этот вопрос, но с некоторыми конкретными критериями:
- Я хочу удалить базовый язык разработки (английский)
- Я хочу сохранить локализованный язык (французский)
Ни один из приведенных выше ответов не сработал, и я не смог найти ничего лучшего в переполнении стека. В конце концов я нашел этот драгоценный камень: XCode: Удалить локализации при сборке .
Я занимаюсь разработкой на английском языке, поэтому вся база приложения на английском языке. Затем я перевел его на финский для первого выпуска, но намеревался выпустить только финский контент, а не английский.
Настройка небольшого сценария на заключительном этапе сборки творит чудеса для удаления нежелательных локализаций:
#Remove english
rm -r "${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app/en.lproj"
# Remove base (iOS 9)
rm -r "${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app/Base.lproj"
Тогда у меня возникли некоторые ошибки во время выполнения, потому что некоторые файлы раскадровки были локализованы и расположены в папке Base.lproj. Я работал над этим, делая следующее:
- Отменить локализацию этих раскадровок (отключить все языки) и затем «Переместить в корзину»
- Перетянул раскадровки из корзины обратно в проект. (По существу, перемещение раскадровки из папки Base.lproj, которую должен удалить скрипт, в папку проекта.)
Примечание: ни один из этих раскадровок фактически не был локализован (все файлы .strings были пустыми). Все переводы были правильно установлены в коде с использованием NSLocalizedString.