Ответ 1
Для меня это работает следующим образом:
- выберите цель проекта
- удалите файл со вкладки
build phases
вcopy bundle resources
- добавьте его на вкладку
build phases
Я локализую приложение, выполнив следующие шаги здесь. Я успешно достиг этого с примерно 45.xib, а только 4 из них дают мне эту ошибку:
"Интерфейс Builder не смог открыть документ".xib ", потому что его не существует.
когда я перемещаю их из исходной позиции. Я пытаюсь переместить их из своей позиции Project/Classes/Example.xib в локализованный файл в Project/en.lproj/Example.xib.
Почему эти файлы .xib не могут быть перемещены?
Для меня это работает следующим образом:
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, все еще существуют, и думают, что он все равно должен пытаться скомпилировать, но когда он их не найдет, он возвращает эту ошибку.