は私が連絡先の背景同期をやっているロック、およびされている場合、パスでレルムを開くことができませんデバイスは、アプリがクラッシュロックされている場合:キャッチされない例外により「RLMException」にアプリを終了デバイスは私のアプリで
を理由: '/var/mobile/Containers/Data/Application/FF77C6DA-970E-4FDD-AB69-C10C20607243/Documents/MyApp/default.realm.lock: パスでレルムを開くことができません '/var/mobile /Containers/Data/Application/FF77C6DA-970E-4FDD-AB69-C10C20607243/Documents/MyApp/default.realm.lock ': open()に失敗しました:操作が許可されていません。
私が試した:その後、
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"/MyApp"];
if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
[[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:YES attributes:nil error:&error]; //Create folder
と、このフォルダに.realmファイルを作成し、Noneにファイル保護を設定します。
は、新しいフォルダを作成します。 NSFilePosixPermissionsと一緒に
[[NSFileManager defaultManager] setAttributes:@{NSFileProtectionKey: NSFileProtectionNone,
NSFilePosixPermissions : [NSNumber numberWithShort:0777]
}
ofItemAtPath:[[[RLMRealm defaultRealm]configuration]fileURL].URLByDeletingLastPathComponent.path error:nil];
同期中にデバイスがロックされると、アプリがクラッシュします。
これを修正する方法についてのご意見はありますか?
Xcodeターゲットのエンタイトルメントで、データ保護を有効にしていますか? https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/AddingCapabilities/AddingCapabilities.html –
はい、オンになっています。 –
私はそれをオフにした後、クラッシュは発生しませんでした。情報をありがとう@BradBrighton –