发布构建崩溃、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”

Obj-C 框架返回 nil,并让我的 Swift 代码崩溃,说“致命错误:在展开可选值时意外发现 nil”

swift 4.2 的 Xcode 10 视觉识别问题