2010-12-13 11 views
4

メインプロジェクトディレクトリにfoo.xibが含まれているローカライズされていない配送アプリがあります。ローカライゼーションの準備として、これをen.lproj/foo.xibに移しました。今、私が自分のアプリケーションをビルドしてテストデバイスにインストールすると、前回の古い古いfoo.nibが使用されてしまいます(インストールプロセスは、アプリケーションのバンドル内の古いファイルを削除してはいけません)。テストデバイスからアプリを削除して再インストールすると修正されますが、私は既存の顧客にそれをさせる必要はありません。iphoneアプリのアップグレードと移動xibs/nibsが無効なリソースにつながる

これらは、UIViewControllerの-initWithNibName:bundleメソッド(現在nibBundleにnilを渡しています)への呼び出しに由来します。私はおそらく、正しいローカライズされたディレクトリを指すNSBundleインスタンスを作成することができます。他はInfo.plistやinterface builderの "NIB Name"セクションで指定されているので、それらのバンドルを指定する方法はありません。

すべてのxibの名前を(たとえば)en.lproj/newfoo.xibに変更するほうが簡単かもしれませんが、実行時に正しいnibが見つかると推測します。 (新しいバージョンで古い "foo.xib"という名前をもう一度使用しないことを覚えておく必要があります)。 (時間外に戻ってen.lprojディレクトリから始めて;-)

ありがとう! -マイケル

答えて

4

誰かがこの問題に遭遇した場合、私自身の質問に答えます。これはXcodeのビルドパブリッシュサイクルの成果物であり、ユーザーがApp Store経由でアップグレードしても問題ではないようです。私は先に進んで私の更新を公開し、誰も失効したリソースに起因する問題に気づいていません。

開発のスピードアップとして、Xcodeは、シミュレータまたはテストデバイスにビルドしてインストールするときに変更されたことが検出されたリソースだけをコピーするように見えます。 (500MBのリソースを持つゲームがビルドとテストのたびに再コピーされるのを防ぐため)プロジェクトからリソースを(再)移動すると、これを検出せずに古いコピー。私はそれについてAppleにバグを報告します。

しかし、App Storeは、アップグレードごとにクリーンインストール(ユーザーのドキュメントディレクトリをコピー)するように見えるので、これはApp Storeの問題ではありません。ベータテスターに​​.ipaファイルを電子メールで送信する際に問題があるかどうかはわかりません。

+1

私は今日、この厳密な問題について、momdの中にあるデータモデルに取り組んできました。 .ipaでコードをデプロイするときにファイルが削除されたことを確認できます。アドホックビルド.ipaを作成し、それを私のiTunesマシンにパントし、自分の携帯電話をアプリケーションストアと同期させてから、iTunesでipaファイルをインストールしました。それはXCodeがそれらを保存するのに対し、私が必要としないコアデータモデルファイルを削除しました。あなたの恐怖のいくつかを尽くしてくれることを願っています。質問を更新してくれてありがとう、ちょうど私がアプリストアのバージョンでも対処しなければならない「機能」だったと仮定していました。 :( – Diziet

0

私は同じ問題があります。問題は、電話機がペン先のキャッシュを保持していることです。何らかの形で、新しいローカライズされたペン先を見るためにキャッシュをクリアする必要があります。また、ユーザーがデータを保存しているため、アプリを削除する必要もありません。

+0

こんにちはZambonoは、ちょうどあなたが、私はApp Storeに私のアップグレードを発表した後、ユーザーがいないことを知ってもらいたいです腐った資源に気づいた。だから、これはXcodeのビルドパブリッシュサイクルで問題になるだけで、App Store経由でアップグレードするときには問題にはならないようです。 –

関連する問題