私はiPhoneアプリケーションのv1からv2へのアップグレードテストで本当に立ち往生しています。 iTunes経由でiPhoneデバイスにアドホック配布してテストしているIPAリリースがあります。1つはアプリのv1用で、もう1つはv2用です。ご了承ください:
エラーからの抜粋... *
reason=**Can't find model for source store**}, {
URL = "file://localhost/var/mobile/Applications/AAAAF424-D6ED-40FE-AB8D-66879386739D/Documents/MyApp.sqlite";
metadata = {
NSPersistenceFrameworkVersion = 320;
<cut>
質問-これを解決する方法はありますか?ここでどのようなデバッグ/分析を行うことができますか?さらに情報が必要な場合はお知らせください。
概要として私が行ったことは次のとおりです。
これが役立つ場合は、PSのより完全なバージョンのエラー-今回は、シミュレーターでの移行エラーのシミュレーションによるものです
, reason=Can't find model for source store}, {
URL = "file://localhost/Users/greg/Library/Application%20Support/iPhone%20Simulator/4.3.2/Applications/69FDFDCF-631D-4191-B852-CD75151B1EA9/Documents/MyApp.sqlite";
metadata = {
NSPersistenceFrameworkVersion = 320;
NSStoreModelVersionHashes = {
Config = <5f92f988 71e11a66 554ae924 61887562 22b8de8a c318b110 e3e4a569 81adafa2>;
};
NSStoreModelVersionHashesVersion = 3;
NSStoreModelVersionIdentifiers = (
""
);
NSStoreType = SQLite;
NSStoreUUID = "3B9832DA-E3A1-431B-83E8-43431A7F3452";
};
reason = "Can't find model for source store";
}
PSS。これがコアデータモデルの内容に役立つ場合、各バージョンの* .momディレクトリ/パッケージは次のとおりです:
v1
-rw-r--r-- 1 greg staff 1664 5 Sep 21:06 MyApp.mom
-rw-r--r-- 1 greg staff 2656 5 Sep 21:06 MyApp.omo
-rw-r--r-- 1 greg staff 480 5 Sep 21:06 VersionInfo.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd>">
<plist version="1.0">
<dict>
<key>NSManagedObjectModel_CurrentVersionName</key>
<string>MyApp</string>
<key>NSManagedObjectModel_VersionHashes</key>
<dict>
<key>MyApp</key>
<dict>
<key>Config</key>
<data>
X5L5iHHhGmZVSukkYYh1YiK43orDGLEQ4+SlaYGtr6I=
</data>
</dict></dict></dict>
</plist>
v2
-rw-r--r-- 1 greg staff 497 2 Oct 12:47 MyApp 1.mom
-rw-r--r-- 1 greg staff 1601 2 Oct 12:47 MyApp 2.mom
-rw-r--r-- 1 greg staff 1695 2 Oct 12:47 MyApp.mom
-rw-r--r-- 1 greg staff 2920 2 Oct 12:47 MyApp.omo
-rw-r--r-- 1 greg staff 665 2 Oct 12:47 VersionInfo.plist
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd>">
<plist version="1.0">
<dict>
<key>NSManagedObjectModel_CurrentVersionName</key>
<string>MyApp</string>
<key>NSManagedObjectModel_VersionHashes</key>
<dict>
<key>MyApp</key>
<dict>
<key>Config</key>
<data>
Z/n8092QBHPfBwInZvIm1lei53T1UtZhpNzjl3JA0gs=
</data>
</dict>
<key>MyApp 1</key>
<dict/>
<key>MyApp 2</key>
<dict>
<key>Config</key>
<data>
Fih24clI+kZszFd3X6Gm8itq8YDxudiKnjHW8ydNmps=
</data>
</dict></dict></dict>
</plist>
編集:以下に提供されているリンクjrturtonを確認することによって提起された、私には明確ではない別の質問は次のとおりです。
Xcdatamodeldファイルが選択されている場合は、ユーティリティインスペクター(右側のペイン)の[IDとタイプ]タブでデータモデルのバージョンを設定します。これには、「コアデータモデル」と呼ばれるセクションと「識別子」と呼ばれるフィールドがあります。
Xcdatamodeldファイルを選択し、[エディター]-> [モデルバージョンの追加]に移動して、新しいモデルバージョンを追加します。
この時点で、前のモデルのベースにするように求められます。
このプロセスを実行せずに新しいモデルを追加した場合、軽量移行が機能しない可能性があります。
これを引き起こす可能性のある別のことは、次の場合です。
マージしようとしているバージョン1は、ストアを作成したバージョンではないため、同じ効果が得られます。
モデルに変更を加え、モデルオブジェクトを生成し、移行を気にせず、新しいバージョンの作成に関心がないことを確認した場合は、[製品]-> [クリーン]を実行するだけで、通常はこれが修正されます。問題。
それでもこのエラーが発生する場合は、sqliteDBを見つけて削除してください。アプリを再度起動すると、新しいモデルから構築された新しいアプリが作成されます。
または、シミュレーターからアプリを削除するか、他のすべてが失敗した場合は、シミュレーターの上部にある[iOS設定]をタップして[コンテンツと設定をリセット...]を選択すると、シミュレーターがすばやくワイプされて開始できます新鮮な。
Xcode 8、移行せずにこの問題が発生しました
ソースストアのモデルが見つかりません
私がしたことは単に
Simulator > Reset Content and Settings