【发布时间】:2019-05-28 16:29:05
【问题描述】:
我在 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")
}
}
【问题讨论】:
-
您是否尝试过关闭沙盒(如果它已打开)?在左列中选择项目,然后选择 Capabilities 选项卡->Sandboxing。
-
请分享您的代码。尤其是在应用启动时使用
Realm的那个。 -
@Václav 我已更新问题以获得代码。有没有办法复制崩溃本身以了解这种情况何时发生?
-
哈哈。我知道。这就是为什么我要问您是否在关闭沙盒的情况下尝试过。
-
@Jay 如果我无法更改 iOS 应用项目的沙盒,我将如何关闭它?我也没有这样做。当您将应用程序发布到应用商店时,是否可以关闭沙箱?另外,我的问题更多是关于如何复制此崩溃,如果您也可以提供帮助。