我在应用程序商店中的一个应用程序崩溃非常频繁(通过Crashlytics观察到),但是我无法在任何设备上重现或观察到自己的崩溃:
致命错误:“尝试!”表达式意外引发错误:错误 Domain = io.realm代码= 2“无法在路径上打开领域 '/ var / mobile /容器/数据/应用程序/27808B59-B121-40E5-AEB3-B24E043AFC3C/Documents/default.realm.lock': open()失败:不允许操作。“ UserInfo = {错误代码= 2, NSFilePath = / var / mobile / Containers / Data / Application / 27808B59-B121-40E5-AEB3-B24E043AFC3C / Documents / default.realm.lock, Underlying = open(“ / var / mobile / Containers / Data / Application / 27808B59-B121-40E5-AEB3-B24E043AFC3C / Documents / default.realm.lock”) 失败:不允许操作,NSLocalizedDescription =无法打开 道路上的境界 '/ var / mobile /容器/数据/应用程序/27808B59-B121-40E5-AEB3-B24E043AFC3C/Documents/default.realm.lock': open()失败:不允许进行操作。}:文件 /BuildRoot/Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-902.0.54/src/swift/stdlib/public/core/ErrorType.swift, 第184行
该应用使用了后台刷新,因此问题可能出在设备锁定时,使用NSFileProtection自动加密了Realm文件。 通常,是否有任何办法可以强制重现此错误,但特别是使用Realm时? 我尝试做的是这样:
- 密码保护设备
- 将设备设置为在30秒后自动锁定
- 通过Xcode运行应用
- 等待> 30秒,直到设备进入睡眠状态
- 在Xcode中选择“模拟背景刷新”
- 然后通过后台刷新运行代码,以尝试打开领域。
但是成功了,我没有收到任何错误或其他任何类型的失败。
如果无法复制,如何验证我在App Store中看到的Realm错误可能是由于NSFileProtection / lock问题引起的。
iPhone是否已连接到Mac,因此Mac(以及可能的Xcode)已经受到设备的信任,以某种方式阻止了此行为的再现?