iOS 应用程序在使用 Realm 和 Crashlytics 通过 testflight 启动时冻结
Posted
技术标签:
【中文标题】iOS 应用程序在使用 Realm 和 Crashlytics 通过 testflight 启动时冻结【英文标题】:iOS app freeze when launched through testflight with Realm and Crashlytics 【发布时间】:2016-03-13 18:53:01 【问题描述】:在提交应用程序进行 Beta 审核后,它会因为在 iPad 上启动到空白屏幕而被拒绝。
我已经在多个 iphone 和模拟器上进行了测试,但无法重现任何内容。重现这一点的唯一方法是在 Testflight 应用程序本身中按下“打开”按钮。按主屏幕上的图标始终有效(即使是在从 testflight 中崩溃的 iPad 上)。
通过 USB 连接时,我检查 Xcode 设备中的日志:
... <Warning>: [Crashlytics] Version 3.7.0 (102)
... <Warning>: [Crashlytics:Crash] Warning: NSUncaughtExceptionHandler is '_ZZ34RLMInstallUncaughtExceptionHandlerEN3$_08__invokeEP11NSException' in '/private/var/mobile/Containers/Bundle/Application/DF8A0CBE-99D1-4466-ACAE-F1BB7D8DA4BC/Feeder.app/Frameworks/Realm.framework/Realm'
在最后一行它就停止了。没有更多的调试消息。 launchscreen.xib 消失,屏幕变为白色。它不会崩溃或任何事情。
我试过了:
-
Fabric 和 Crashlytics 的不同版本
移除 Fabric 和 Crashlytics
完全移动 Realm 的初始化
重写应用程序的启动方式
Realm 的不同版本(0.96 和 0.98.4)
【问题讨论】:
您是否尝试过使用“发布”配置在本地构建和运行应用程序以查看问题是否出现?此外,刚刚发布了一个全新的Realm版本,0.98.5;你试过了吗? 【参考方案1】:我发现了这个问题,它与 Realm 或 Crashlytics 无关。我的 AppDelegate 中有这段代码:
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
// This breaks it
for window in application.windows
window.backgroundColor = UIColor.whiteColor()
// this works...
// window?.backgroundColor = UIColor.whiteColor()
return true
【讨论】:
以上是关于iOS 应用程序在使用 Realm 和 Crashlytics 通过 testflight 启动时冻结的主要内容,如果未能解决你的问题,请参考以下文章
主包中的 Realm realmWithPath 方法在 iOS 上崩溃
iOS 数据库比较:SQLite vs Core Data vs Realm