リストされている手順に従って、アプリをローカライズしています ここ 。私は約45の.xibでそれを成功裏に達成しましたが、そのうちの4つだけでこのエラーが発生します。
「InterfaceBuilderはドキュメント「.xib」が存在しないため開くことができませんでした。」
元の位置から動かしたとき。 Project/Classes /Example.xibの位置からProject/en.lproj /Example.xibのローカライズされた位置に移動しようとしています。
この.xibファイルを移動できないのはなぜですか?
私にとっては、次のように機能します。
build phases
のcopy bundle resources
タブからファイルを削除しますbuild phases
タブに再度追加します2つの異なるディレクトリにある.xibファイルでibtoolsを実行すると、同じエラーが発生しました。最初のディレクトリのファイルでは正常に機能しましたが、2番目のディレクトリのファイルでは失敗しました。ディレクトリの処理順序を入れ替えても、2番目のディレクトリでは失敗しました。
最後に、ibtoolがデーモンプロセスibtooldを開始し、ibtoolが終了しても終了しないことを発見しました。そのプロセスを強制終了しても、エラーは発生しなくなりました。どうやら、悪魔はibtoolが別のディレクトリで作業するのを妨げるいくつかの状態を持っています。
pkill ibtoold
を使って悪魔を殺しました。
同じ問題である可能性のあるXcode5の使用に問題があります。ローカライズされた文字列をxibファイルとの間で生成または書き込む場合、ibtoolsはランダムに機能します。それを機能させるには、いくつかのxibファイルでSudoを使用する必要がありました。次に例を示します。
$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がまだ存在していると考え、コンパイルを試みる必要があると考えているファイルですが、見つからない場合は、このエラーが返されます。