4

私はかなり奇妙な問題を抱えており、まだその真相を解明することはできません。この問題が他の場所で議論されているのを見たことがないので、ここに文書化したいと思います。

Xcode3で開発していたiPhoneアプリがあります。これは完全に機能しており、デバイス上でも完全に機能するアドホック配布をいくつか実行しました。

その後、Xcode4 にアップグレードし、次にアドホック配布を行ったときに、起動時にアプリがクラッシュしました。言うまでもなく、シミュレーターと私の開発マシンに接続されたデバイスで機能しました。クラッシュ ログはあまり役に立ちませんでした。UIApplication への標準呼び出しで、main.m のクラッシュが示されました。もちろん、私はそのファイルを変更したことはありません。掘り下げてつなぎ合わせた後、問題を発見しました。

Xcode は、私の *.xib ファイルのファイル タイプが file.xib ではなく text.xml であると判断したため、これらのファイルをコンパイルする代わりにアプリ バンドルにコピーするだけでした。MainWindow.nib ファイルが見つからなかったため、アプリは起動時にクラッシュしていました。

Subversion チェックインをさかのぼると、xcodeproj 内の project.pbxproj ファイルに記録されているファイル タイプが、Xcode4 アップグレード後の最初のチェックインで変更されていることがわかりました。それがどのように、またはなぜ起こったのか、私にはわかりません。また、その設定にどのように影響するかを UI から確認することもできず、変更された xib の一部も開いていません。(私の問題を解決するために、テキスト エディターで pbxproj ファイルを変更しました)。

では、これがどのように、またはなぜ起こったのかについての洞察を持っている人はいますか?

4

2 に答える 2

2

xcode4 に移行した既存の xcode3 プロジェクトで同じ問題が発生しています。

@jaylinn のソリューションを試してみましたが、ファイルには既に lastKnownReference があることがわかりました。

プロジェクトから .xib ファイルを削除し (参照のみを削除)、プロジェクトに再度追加することで、これを解決できました。少し痛いですが、うまくいきます。

それが役立つことを願っています。-マイク

于 2011-05-06T22:53:45.330 に答える
0

これが私たちのためにそれを修正したものです。XIB は、Xcode 4 では認識されないように見える「explictFileType」として識別されました。

プロジェクト ファイルで次のような行を探します (テキスト エディタで開きます) ...

C9B10BEA11D9084800F10866 /* Record.xib */ = {isa = PBXFileReference; explicitFileType = file.xib; パス = Record.xib; sourceTree = ""; };

そして、これに変更...

C9B10BEA11D9084800F10866 /* Record.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; パス = Record.xib; sourceTree = ""; };

于 2011-04-05T18:09:57.440 に答える