Добавление локализаций XIB, приводящее к искажению системы контроля версий в Xcode - PullRequest
2 голосов
/ 25 февраля 2011

Когда кто-либо берет нелокализованный файл XIB в Xcode и делает его локализуемым, он автоматически добавляет регион / локализацию по умолчанию в файл XIB, например, «en» или «английский». Фактически перемещает файл XIB в каталоги en.lproj или English.lproj . Если файл XIB находится в системе управления версиями, такой как SVN, SVN начинает волноваться, потому что файл не был перемещен в системе управления версиями, и он считает, что он отсутствует. Что делать? Есть ли способ заставить Xcode перемещать файлы XIB с помощью контроля версий, или мне нужно перемещать файлы с помощью командной строки SVN в терминале?

Ответы [ 2 ]

0 голосов
/ 16 июня 2012

Когда я первоначально попытался локализовать файл .xib, который был зарегистрирован в SVN, я первоначально получил "svn: Can't move" {путь} /. Svn / tmp / records 'в' {путь} /. svn / records ': операция не разрешена. " ошибка.

Основываясь на этом сообщении в блоге (http://www.devcha.com/2008/03/mac-os-cant-move-svntmpentries-to.html), Я успешно исправил ошибку, выполнив в терминале каталог, содержащий рассматриваемый файл .xib, с терминала:

  1. cd {папка с файлом .xib, который вы хотите локализовать}
  2. chflags -R nouchg.
  3. svn up
  4. svn cleanup

Затем я смог локализовать файл .xib из Xcode. После этого SVN правильно отследил удаление файла .xib из рассматриваемой папки, а также добавление новой локализованной папки (в моем случае en.lproj) и перемещенного файла .xib в эту новую папку.

Исходя из записи man для chflags, -R означает «Изменить флаги файлов для иерархий файлов, имеющих корни в файлах, а не только сами файлы». или только суперпользователь) "и используя". " После этого символ применяет изменение к текущей папке.

0 голосов
/ 09 марта 2011

Я решил опубликовать собственное решение этой проблемы. Это не самое «элегантное» решение, но оно работает для меня. По сути, я не «локализую» XIB-файлы напрямую, но подключаю каждый объект пользовательского интерфейса, содержащий текст, к IBOutlet, и устанавливаю текст программно в своем классе UIView. Таким образом, все мои строки попадают в обычные строковые файлы, а не имеют отдельный набор строковых файлов для файлов XIB. Пока это работает довольно хорошо.

...