私たちのアプリでは、実行時にロードして更新できるスタティックレルムを使用しています。レルムスキームの正しいバージョンを識別するために、レルムスキーム記述のmd5ハッシュを使用します。したがって、スキーマが変更された場合、データベースの新しいバージョンを提供するだけで、アプリケーションがそれを見つけることができます。これにより、複数のバージョンを同時に使用することができ、それぞれが対応するデータベースをロードまたは更新できます。レルムスキームの説明がシミュレータとデバイス上で一致しない
これは、最近、レルムスキームの説明が、まれにしかシミュレータとデバイスで同じではないことがわかってから、長い時間がかかりました。私たちは約35のエンティティを持っています。奇妙なことは、フィールドの順序が1つだけ異なるということです。
SomeEntity {
telefon {
type = bool;
objectClassName = (null);
linkOriginPropertyName = (null);
indexed = NO;
isPrimary = NO;
optional = YES;
}
email {
type = bool;
objectClassName = (null);
linkOriginPropertyName = (null);
indexed = NO;
isPrimary = NO;
optional = YES;
}
}
何が違うのですか? "telefon"と "email"は実際のデバイス上で順番に切り替わります。もちろん、別のmd5ハッシュにつながります。
説明はすべてのデバイスで同一であってはなりませんか?
レルムスキームを識別する明確で信頼できる方法は何でしょうか?
編集
両方のデバイスで同じバージョンの領域を使用します。