2011-10-21 8 views
3

私のアプリケーションに重要なアップグレードを書き込もうとしています。アップグレードは非常に重要なので、私は実際にコードを最初から始めました。新しいバージョンにはオリジナルのコードベースは含まれていません。私は単純に古いバージョンから* -Info.plistをコピーし、バンドルバージョン識別子を更新しました。アプリケーションのアップグレードに関する問題

古い(現在のApp Store)バージョンからアップグレードしようとすると問題が発生します。私はXCodeのを介してデバイス上でアプリケーションを起動すると、私はメッセージを与えています:リモート・プログラムを起動する実行ファイル「アプリケーション名」 エラーを開始

エラー:場合は、プロセス699

のためのタスクの取得に失敗しました私は、出力ウィンドウに次のように示されています、それを終了した後、再度アプリケーションを実行しよう:

2011-10-21 15:40:27.996 Application Name[713:707] Unknown class Application_Name_NewAppDelegate in Interface Builder file. 
2011-10-21 15:40:28.013 Application Name[713:707] Unknown class myTabBarController in Interface Builder file. 
2011-10-21 15:40:28.019 Application Name[713:707] Unknown class SelectViewController in Interface Builder file. 
2011-10-21 15:40:28.037 Application Name[713:707] Unknown class AddDateViewController in Interface Builder file. 
2011-10-21 15:40:28.047 Application Name[713:707] Unknown class DisplayViewController in Interface Builder file. 
2011-10-21 15:40:28.063 Application Name[713:707] Unknown class AboutViewController in Interface Builder file. 
2011-10-21 15:40:28.125 Application Name[713:707] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UICustomObject 0x16cae0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key window.' 
*** First throw call stack: 
(0x3200c8bf 0x31d7c1e5 0x3200c5f5 0x35ba1333 0x35ba0e33 0x35b7af19 0x31f6b803 0x31f6c491 0x32d384bf 0x32d39bb9 0x32c72a45 0x32afc227 0x32af6313 0x32ac4921 0x32ac43bf 0x32ac3d2d 0x3206fe13 0x31fe0553 0x31fe04f5 0x31fdf343 0x31f624dd 0x31f623a5 0x32af5457 0x32af2743 0x21b9 0x2178) 

これらのクラスは、実際に現在のバージョンの一部であり、そしてI新バージョンには全く含まれていませんにアップグレードしようとしています。だから、アップグレードが何らかの未知の理由で失敗しているように思えます。

誰にもこれにどのような光が当てられますか?

+0

誰もが考えている? –

+0

これは毎回または一度だけ発生しますか?私も新しいバージョンを走らせることにいくつかの問題がありましたが、それは本当に珍しく、それをうまく働かせて2度目に起動しました。 –

答えて

6

これは私にとってNIBキャッシュの問題のように聞こえます(エラー終了 "Interface Builder file")。 NIBの名前を変更してコードのどこかで修正するのではなく、表示されるNIBキャッシュのために間違った名前がまだ残っていることに驚いています。直接の並列ではなく、アプリケーションのデータがコードの現在のビルドを超えてキャッシュされていることを示しています。エラーの場合はインターフェイスビルダーを参照しています。おそらくNIBキャッシュが対象です。

通常、「クリーンビルド」を実行するとこの問題は解決されますが、最初から完全にスタートした場合はレガシービルドフォルダの内容がないため、問題はないようです。したがって、手動でNSCachesDirectoryを手動で消去し、問題が修正されているかどうかを確認することも可能です。 (誰でもNIBキャッシュがNSCachesDirectoryに保存されていることを確認できますか?)

第2に、実際のAppStoreのアップグレードではアプリケーション全体が削除されるため、Xcodeからのビルドプロセスが実際のAppStoreアップグレードを直接反映しないことがあります。ユーザーデータディレクトリを除いて、キャッシュされたデータはすべて削除する必要があります。 One answer on this questionは、あなたのアプリを構築してからiTunes経由でインストールすると真のアップグレードプロセスをより正確に反映できるので、Xcodeからビルドするのではなく、実際のアップグレードに問題が存在するかどうかを知ることができます。すべてのレポートが更新時にNIBキャッシュがクリアされているので、検討する価値があります。

+0

あなたの助けてくれてありがとうDuncan、今夜あなたの提案を見てみよう –

0

XCode 4を使用している場合は、Project Navigatorでプロジェクトを選択してターゲットを選択します。ビルドフェーズを選択し、以下を確認してください。

すべてのニブは、[バンドルリソースのコピー]にリストされています。

すべての '.m'ファイルは、[コンパイル元]の下に表示されます。

(あなたはXcodeの3を使用している場合は、下のプロジェクトナビゲータ自体でこれらを見つけることができる「ターゲット。」)

時々、nibファイルがいくつかの奇妙な理由でビルドフェーズに置かれません。

これで問題が解決しない場合は、Interface Builderで、問題のあるペン先ごとにファイル所有者をクリックし、IDインスペクタを選択し、クラスが適切なペン先に設定されていることを確認します。

+0

プロジェクトにnibファイルは存在しませんそれは私が彼らに参照を得ていることが奇妙に感じられる理由です。 –

+0

前のプロジェクトを完全に削除しましたか?それがUser/Library/Developer/Xcode/DerivedData&Snapshotsからも削除されていることを確認してください。また、ローカルのgitリポジトリなどの古いファイルを持っている可能性があるため、新しいプロジェクトフォルダに実際に入っていることを確認してください。 –

+0

全く新しいプロジェクトです。以前のバージョンと同じバンドルIDを使用しています。 –