Интерфейсному Разработчику не удалось открыть документ ".xib", так как он не существует
Я локализую приложение, следуя инструкциям, перечисленным здесь. Я успешно достиг примерно 45 .xib, в то время как только 4 из них дают мне эту ошибку:
Msgstr "Интерфейсный Разработчик не смог открыть документ".xib ", потому что он не существует."
когда я перемещаю их из исходного положения. Я пытаюсь переместить их из позиции Project/Classes/Example.xib в локализованную на Project/en.lproj/Example.xib.
Почему эти файлы.xib не могут быть перемещены?
4 ответа
Для меня это работает так:
- выберите цель проекта
- удалить файл из
build phases
вкладка вcopy bundle resources
- повторно добавить его в
build phases
табуляция
Я столкнулся с той же ошибкой при запуске ibtools для файлов.xib в двух разных каталогах. Он работал нормально с файлами в первом каталоге, но не работал с файлами во втором каталоге. Если я поменял местами порядок обработки каталогов, он все равно не удался для второго каталога.
Наконец, я обнаружил, что ibtool запускает демон-процесс ibtoold, который не завершается после завершения ibtool, и если я убил этот процесс, я больше не получил ошибку. Очевидно, у демона есть какое-то состояние, которое мешает ibtool работать в другом каталоге.
я использовал pkill ibtoold
убить демона.
У меня проблема с использованием Xcode 5, которая может быть той же самой проблемой. ibtools работает случайным образом при генерации или записи локализованных строк в / из файлов XIB. Мне пришлось использовать sudo на некоторых файлах xib, чтобы заставить его работать. Вот пример:
$ibtool --generate-strings-file en.lproj/MyVC.strings en.lproj/MyVC.xib
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.ibtool.errors</key>
<array>
<dict>
<key>description</key>
<string>Interface Builder could not open the document "MyVC.xib" because it does not exist.</string>
</dict>
</array>
</dict>
</plist>
Использование sudo работает, хотя он жалуется на то, что "домены пользователя будут нестабильными"
$sudo ibtool --generate-strings-file en.lproj/MyVC.strings en.lproj/MyVC.xib
2013-10-01 10:04:35.943 Interface Builder Cocoa Touch Tool[1717:303] CFPreferences: user
home directory at file:///var/root/Library/Application%20Support/iPhone%20Simulator/User/ is unavailable. User domains will be volatile.
$
Для меня это произошло после слияния Git. Файл проекта, должно быть, изменился настолько, что теперь выдает все эти ошибки. Эти чувствительные файлы проекта...
Так или иначе, в итоге я просто удалил файлы из проекта (отправив их в корзину), а затем снова добавил их в проект с git checkout other_branch path/to/file
После этого сборка проекта больше не выкидывала эту ошибку.
- Кажется, что это работает нормально, даже если вы удалите только ссылку, а затем повторно добавите файл в проект (нет необходимости отправлять его в корзину)
- Важно! Вы должны удалить все красные файлы с вашего
Build Phases
-Compile Sources
настроек вашей цели. Это файлы, которые, по мнению XCode, все еще существуют и которые он должен попытаться скомпилировать, но когда он не находит их, он возвращает эту ошибку.