2011-10-31 13 views
0

私のアプリでは、コアデータを使用しており、バージョン1〜5を使用しています。以前のアプリにはバージョン1があり、新しいアップデートにはバージョン5があります。したがって、バージョン2,3,4はデバッグとアドホックリリースではスキップされます。 ここで、何らかのコアデータの問題によってアプリストアがクラッシュすることが判明しました。バージョン管理の問題については、私はそれを考えています。古いアプリが削除され、新しいアプリがインストールされている場合は、問題が解決されます。アプリストアアプリのコアデータ移行

この問題を解決するにはどうすればよいですか?既存のアプリをユーザーの電話にインストールしたままにして、新しいバージョンをリリースすると、以前のバージョンのユーザーは更新のためにアプリを削除する必要はありません。

答えて

0

私は移行スキームを探します。直感的な文書を見つけることができませんでした。古いバージョンのxcdatamodelファイルを壊してしまった場合、どのように移行したり修正したりできますか?

私のケースでは、重要なデータは保存されておらず、すべてのデータは現在のアプリケーションの実行に関連して動的だったので、次のリリースでは、ドキュメントディレクトリの古いsqliteファイルを削除してクリーンアップします。私は今から新しいデータを格納する別のsqliteファイルを使用します...

0

それは私にも起こった。 私は何度も何度もテストしていました...マイグレーションはうまくいっていて、アプリがライブになったとき、AppStoreから来ていたアプリでマイグレーションがうまくいっていませんでした。

解決方法: XCodeではなくiTunes経由でアプリケーションをインストールして、移行をテストします。

方法: iPhoneからアプリを削除します。 iTunesと同期する。 iTunesのアプリからアプリが削除されていることを確認してください。 古いアプリをXCodeからデバイスにインストールします。 アプリの新しいバージョンをXCodeで開きます。 iPhoneデバイスのビルドに選択します(シミュレータ用ではありません)。 /app/library/developer/Xcode/ DerivedDataの.appファイルを探します。// Build/Products/Debug-iphoneos iTunesで.appファイルをドラッグします。 端末と同期します。

このようにして、新しいアプリケーションはあなたのiPhoneの古いものを、AppStoreをアップグレードしたときとまったく同じ方法で上書きします。

ここで、デバッグログを記録して、問題の原因を突き止めることができます。 ログは、デバイスのコンソールにあるオーガナイザで確認できます。

私の場合、問題はpathForResourceメソッドがサブディレクトリを調べていないことです。しかし、私の古いお母さんのファイルはディレクトリにありました。だから私は同じメソッドの余分なパラメータ "inDirectory"を使用しなければなりませんでした。

XCode経由でインストールしてiTunesで動かなかったときにこの方法がうまくいった理由は私を打ちのめしてしまいます。

少なくとも今私は物事を知っています: - pathForResourceはサブディレクトリを調べません - ライブに行く前に必ずiTunes経由で私のアプリをインストールしてください!

関連する問題