web-dev-qa-db-ja.com

Interface Builderは、ドキュメント ".xib"が存在しないため、開くことができませんでした

リストされている手順に従って、アプリをローカライズしています ここ 。私は約45の.xibでそれを成功裏に達成しましたが、そのうちの4つだけでこのエラーが発生します。

「InterfaceBuilderはドキュメント「.xib」が存在しないため開くことができませんでした。」

元の位置から動かしたとき。 Project/Classes /Example.xibの位置からProject/en.lproj /Example.xibのローカライズされた位置に移動しようとしています。

この.xibファイルを移動できないのはなぜですか?

23
MrSueko

私にとっては、次のように機能します。

  • プロジェクトターゲットを選択
  • build phasescopy bundle resourcesタブからファイルを削除します
  • build phasesタブに再度追加します
43
Holger

2つの異なるディレクトリにある.xibファイルでibtoolsを実行すると、同じエラーが発生しました。最初のディレクトリのファイルでは正常に機能しましたが、2番目のディレクトリのファイルでは失敗しました。ディレクトリの処理順序を入れ替えても、2番目のディレクトリでは失敗しました。

最後に、ibtoolがデーモンプロセスibtooldを開始し、ibtoolが終了しても終了しないことを発見しました。そのプロセスを強制終了しても、エラーは発生しなくなりました。どうやら、悪魔はibtoolが別のディレクトリで作業するのを妨げるいくつかの状態を持っています。

pkill ibtooldを使って悪魔を殺しました。

12
jbiversen

同じ問題である可能性のある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.
$
5
n8tr

私にとって、これはGitのマージ後に発生しました。プロジェクトファイルが大幅に変更されたため、これらすべてのエラーが発生します。それらの機密プロジェクトファイル...

とにかく、私がやったことは、プロジェクトからファイルを削除して(ゴミ箱に送信して)、git checkout other_branch path/to/fileを使用してプロジェクトに再度追加することです。

この後、プロジェクトをビルドしてもこのエラーはスローされなくなりました。

  • 参照だけを削除してからファイルをプロジェクトに再度追加した場合も正常に機能するようです(ゴミ箱に送信する必要はありません)。
  • 重要ターゲットの設定のBuild Phases --Compile Sourcesから赤いファイルを削除する必要があります。これらは、XCodeがまだ存在していると考え、コンパイルを試みる必要があると考えているファイルですが、見つからない場合は、このエラーが返されます。
4
Andrei