Подтвердить что ты не робот

Интерфейс Builder не смог открыть документ ".xib", потому что он не существует

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

"Интерфейс Builder не смог открыть документ".xib ", потому что его не существует.

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

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

4b9b3361

Ответ 1

Для меня это работает следующим образом:

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

Ответ 2

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

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

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

Ответ 3

У меня возникла проблема с использованием 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

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

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

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

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