Интерфейсному Разработчику не удалось открыть документ ".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, все еще существуют и которые он должен попытаться скомпилировать, но когда он не находит их, он возвращает эту ошибку.
Другие вопросы по тегам