1

4つのターゲット(それぞれに2つのアプリ、1つのiPhoneと1つのiPadバージョン)を持つxcodeプロジェクトがあります。最近、Core DataLightweightMigrationを実装しました。

現在、iPhoneバージョンの2つのアプリのみをテストしており、それらをAppAとAppBと呼んでいます。iPhoneで現在のアプリストアバージョンのアプリAを実行してから、新しいバージョンのアプリAをインストールしてテストすることができます。軽量移行。それは問題なく動作します。

次に、アプリBで同じことを試します。現在のアプリストアバージョンのアプリBをiPhoneに問題なくインストールできます。しかし、iPhoneに新しいバージョンのアプリBをインストールしようとすると、毎回次のエラー(またはその変形)が発生します:「putpkt:書き込みに失敗しました、パイプが壊れています」

現在の2つのバージョンは同じプロジェクトにあり、すべての構成(デバッグ、リリース、配布)でまったく同じ設定になっているため、混乱しています。アドホック配布ではありません。

このフォーラムやどこでもこのエラーについて読んだすべての投稿は、アプリの削除、デバイスの再起動、xcodeの再起動などを示唆しています。そして確かに、私はそれをそのように動作させることができます。しかし、その方法で移行をテストすることはできません。古いバージョンのアプリをデバイスから削除しても、何も移行されません。

これで髪を抜いています。2つのアプリは元々2つの異なるプロジェクトに含まれていましたが、新しいターゲットとしてアプリBをアプリAプロジェクトに追加しました。これは、すべてを見たような気がするので、私が考えることができる唯一のことです。私はこの問題を理解するためにいくつかの助けを本当にいただければ幸いです。テストできないデータベース更新を送信することに気分が悪くなります。特に、この現在のバージョンまでバックアップオプションを提供していなかった場合は、人々のデータが破損する可能性がありません。うーん。

編集:更新せずにデバイスでアプリBを実行しようとすると、次のエラーが発生することがよくあります。実行可能ファイルの起動中にエラーが発生しました...実行方法がわかりません。「ヘルプターゲット」を試してください。

編集:アプリBの製品名を変更したため、この問題が発生していると思います。これによりバンドルが変更され、データを移行できなくなると思います。私はそれを元に戻して更新を投稿しようとします。それまでの間、マージバンドルはアプリAでうまく機能しているようです。

4

1 に答える 1

0

新しいプロジェクトと元のプロジェクトの製品名とデータ モデル名が同じであることを確認することで、この問題が解決されました。

于 2011-10-22T16:59:54.127 に答える