发布构建崩溃、Swift、Armchair 框架、Xcode 6.2
Posted
技术标签:
【中文标题】发布构建崩溃、Swift、Armchair 框架、Xcode 6.2【英文标题】:Release build crash, Swift, Armchair framework, Xcode 6.2 【发布时间】:2015-05-08 23:16:29 【问题描述】:我正在使用 Armchair 框架 (https://github.com/UrbanApps/Armchair) 作为我的应用的应用审查管理器。该应用程序是用 Swift 编写的(符合 Swift 1.1),我正在运行带有基本 SDK 8.2 和 8.0 部署目标的 Xcode 6.2。
我在发布/临时构建应用程序时遇到了一个奇怪的问题 - 应用程序在启动后立即崩溃。我用符号表示了崩溃日志,这就是我所看到的 -
Version: 1 (1.0)
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
Date/Time: 2015-05-08 13:01:54.192 -0700
Launch Time: 2015-05-08 13:01:52.013 -0700
OS Version: ios 8.3 (12F70)
Report Version: 105
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x00000001007643d8
Triggered by Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
__TFC8Armchair7ManagerP33_0F5394B43958D8E2A7FE7B1C7DE959CE18defaultReviewTitlefS0_FT_SS Armchair.swift:1566
__TFC8Armchair7ManagerP33_0F5394B43958D8E2A7FE7B1C7DE959CE18defaultReviewTitlefS0_FT_SS Armchair.swift:695
__TFC8Armchair7ManagerP33_0F5394B43958D8E2A7FE7B1C7DE959CE15showRatingAlertfS0_FT_T_ Armchair.swift:699
__dispatch_call_block_and_release + 20
__dispatch_client_callout + 12
__dispatch_main_queue_callback_4CF + 1604
___CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
___CFRunLoopRun + 1488
_CFRunLoopRunSpecific + 392
_GSEventRunModal + 164
_UIApplicationMain + 1484
11 <MyAppName> 0x0000000100292560 0x1000e8000 + 1746272
_tlv_get_addr + 176
当我在模拟器上运行应用程序/从 Xcode 直接在设备上运行时,一切都运行良好。
任何人的任何指示?
【问题讨论】:
在扶手椅框架中看起来像是一个例外。我会直接联系他们——也许开发人员已经意识到这个问题了?你有扶手椅源代码吗?是否有任何与 defaultReviewTitle 相关的代码? 【参考方案1】:我要做的第一件事是更新到最新的 Xcode (6.3.1)。由于语言的变化,您将不得不匆忙修复您的 Swift。但是这个版本的 Swift 还修复了一些内存管理错误,这些错误会导致 Release 版本中的崩溃(并且不会出现在 Debug 版本中)。
当然,如果您所拥有的只是此第三方框架的编译代码,那可能无济于事。
【讨论】:
谢谢。我将我的代码更新到了最新的 Xcode (6.3.1) 和 Swift 1.2,现在一切似乎都正常了。因此,我会将您的答案标记为已接受的答案,因为它确实指导了我正确的方向。以上是关于发布构建崩溃、Swift、Armchair 框架、Xcode 6.2的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 的 Objective-C++ 类中设置变量 --> 意外的 nil 崩溃
线程1:自定义框架Swift中Reachability框架中的signal SIGABRT
@IBDesignable 无法使用 Swift 3 呈现类实例并崩溃代理
Obj-C 框架返回 nil,并让我的 Swift 代码崩溃,说“致命错误:在展开可选值时意外发现 nil”