Интерфейсному Разработчику не удалось открыть документ «.xib», так как он не существует - PullRequest
22 голосов
/ 23 января 2012

Я локализую приложение, выполнив шаги, перечисленные здесь . Я успешно добился этого примерно с 45 .xib, в то время как только 4 из них дают мне эту ошибку:

"Интерфейсному Разработчику не удалось открыть документ" .xib ", так как он не существует."

когда я перемещаю их из исходного положения. Я пытаюсь переместить их из позиции Project / Classes / Example.xib в локализованную на Project / en.lproj / Example.xib.

Почему эти файлы .xib не могут быть перемещены?

Ответы [ 4 ]

43 голосов
/ 01 ноября 2013

Для меня это работает так:

  • выберите цель проекта
  • удалите файл со вкладки build phases в copy bundle resources
  • и добавьте егона вкладку build phases
12 голосов
/ 10 декабря 2013

Я столкнулся с той же ошибкой при запуске ibtools для файлов .xib в двух разных каталогах. Он работал нормально с файлами в первом каталоге, но не работал с файлами во втором каталоге. Если я поменял порядок обработки каталогов, он все равно не удался для второго каталога.

Наконец-то я обнаружил, что ibtool запускает демон-процесс ibtoold, который не завершается при завершении ibtool, и если я убил этот процесс, я больше не получил ошибку. Очевидно, у демона есть какое-то состояние, которое мешает ibtool работать в другом каталоге.

Я использовал pkill ibtoold, чтобы убить демона.

5 голосов
/ 01 октября 2013

У меня проблема с использованием 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.
$
4 голосов
/ 04 октября 2013

Для меня это произошло после слияния Git. Файл проекта, должно быть, изменился настолько, что теперь выдает все эти ошибки. Эти конфиденциальные файлы проекта ...

Так или иначе, в конечном итоге я просто удалил файлы из проекта (отправив их в корзину), а затем снова добавил их в проект с git checkout other_branch path/to/file

После этого при построении проекта эта ошибка больше не выдается.

  • Кажется, что это работает нормально, даже если вы удалите только ссылку, а затем повторно добавите файл в проект (нет необходимости отправлять его в корзину)
  • Важно Вы должны удалить все красные файлы из ваших Build Phases - Compile Sources настроек вашей цели. Это файлы, которые, по мнению XCode, все еще существуют и которые он должен попытаться скомпилировать, но когда он их не находит, он возвращает эту ошибку.
...