发布版本问题:“致命错误:对类'CustomObject'使用未实现的初始化程序'init()'”

时间:2018-09-26 18:25:53

标签: swift xcode release xcode10

运行时错误消息

main.py

此运行时错误仅在我的from package.script1 import foo from package2.script2 import bar # etc 构建中发生,因为当我运行Fatal error: Use of unimplemented initializer 'init()' for class `CustomClass` 时,一切都会正常进行。因此,它不只是实现正确的初始化程序那么简单。

代码似乎链接到同名但来自错误框架的类。总而言之,代码正在创建一个类,该类继承自从从迦太基下载的框架导入的另一个类。我们使用--no-build系统导入框架,这意味着该框架来自我的工作区中的一个项目。

这是简化的代码

release

数字代表代码中的行。

  1. 崩溃的调用堆栈突出显示了这一行。它突出显示了无处不在的init调用。
  2. 当我们崩溃时,它位于调用堆栈的顶部。突出显示为debug。您会注意到,我们位于错误的框架中,因此系统找不到init()是有道理的,因为它位于错误的框架中的错误对象中。

我猜是一些项目设置搞砸了,所以这里是一些值得注意的设置。

框架搜索路径:

// Framework A
class Object {
    init() {
    }
}

// Framework B
// same class name as Object from Framework A
class Object {    // 2. 
    init(someParms: ParmClass) {
    }
}

// App
import Framework_A

class CustomObject: Framework_A.Object {
   override init() {
       super.init() // 1. 
   }
}

这会生成路径

Thread 1: EXC_BREAKPOINT

这是运行路径搜索路径:

$(inherited)
$(PROJECT_DIR)/Carthage/Build/iOS
$(CONFIGURATION_BUILD_DIR)

0 个答案:

没有答案