iOS崩溃:无法在Path上打开领域

时间:2019-05-28 16:29:06

标签: ios realm

我在Crashlytics上看到了很多崩溃,但是无法重现应用程序启动时发生的崩溃。有谁知道如何重现下面的崩溃。我已经在Github和stackoverflow上尝试了所有答案,但没有人提及重现此特定崩溃的问题。 因此,如果我确实有修复程序,则除了将修复程序投入生产,然后假设Crashlytics不会显示崩溃之外,没有其他方法可以对其进行测试。

请帮助。

错误:

Fatal error: 'try!' expression unexpectedly raised an error: Error Domain=io.realm Code=2 "Unable to open a realm at path '/var/mobile/Containers/Data/Application/03BA7C37-9852-4A01-8EF6-949E308EADCD/Documents/default.realm.lock': open() failed: Operation not permitted." UserInfo={Error Code=2, NSFilePath=/var/mobile/Containers/Data/Application/03BA7C37-9852-4A01-8EF6-949E308EADCD/Documents/default.realm.lock,

通话代码

//passing the fileProtectionType as .none
RealmHelper.configureRealmFiles(with: .none)

示例代码

   static func configureRealmFiles(with fileProtectionType: FileProtectionType) {
            guard let folderPath = realm.configuration.fileURL?.deletingLastPathComponent().path else {
                return
            }

            do {
                try FileManager.default.setAttributes([FileAttributeKey.protectionKey: fileProtectionType],
                                                      ofItemAtPath: folderPath)
            } catch {
                logI("Realm: Couldn't change Realm file protection type")
            }
        }

3 个答案:

答案 0 :(得分:0)

Realm documentation提供了有关如何处理此错误的一些信息。检查他们的降级文件访问属性的说明是否适合您的情况。

答案 1 :(得分:0)

在新位置添加default.realm.lock可以解决问题,并防止崩溃再次出现。但是我从来没有能够复制崩溃。这是因为它可能在后台发生。

答案 2 :(得分:0)

从项目中删除领域pod并重新安装它对我有帮助:)