我正在将项目中的一个整体框架分解成一堆更小的Swift包。这主要是一个将声明移出框架并放入其中一个包的问题,然后更改
import
让我们使用这些软件包。
我遇到了一个问题,因为我的测试与
Thread 1: EXC_BAD_ACCESS (code=1, address=0x30)
.堆栈跟踪如下:
MyUnitTests`StubNetworkClient.__allocating_init(baseURL:):
0x111b3b0d4 <+0>: sub sp, sp, #0x30 ; =0x30
0x111b3b0d8 <+4>: stp x20, x19, [sp, #0x10]
0x111b3b0dc <+8>: stp x29, x30, [sp, #0x20]
0x111b3b0e0 <+12>: add x29, sp, #0x20 ; =0x20
0x111b3b0e4 <+16>: str x0, [sp, #0x8]
0x111b3b0e8 <+20>: mov x0, x20
-> 0x111b3b0ec <+24>: ldr w8, [x0, #0x30]
0x111b3b0f0 <+28>: mov x1, x8
0x111b3b0f4 <+32>: ldrh w8, [x0, #0x34]
0x111b3b0f8 <+36>: mov x2, x8
0x111b3b0fc <+40>: bl 0x111bea0dc ; symbol stub for: swift_allocObject
0x111b3b100 <+44>: mov x20, x0
0x111b3b104 <+48>: ldr x0, [sp, #0x8]
0x111b3b108 <+52>: bl 0x111b3b11c ; NetworkClientTestSupport.StubNetworkClient.init(baseURL: Foundation.URL) -> NetworkClientTestSupport.StubNetworkClient<C> at StubNetworkClient.swift:98
0x111b3b10c <+56>: ldp x29, x30, [sp, #0x20]
0x111b3b110 <+60>: ldp x20, x19, [sp, #0x10]
0x111b3b114 <+64>: add sp, sp, #0x30 ; =0x30
0x111b3b118 <+68>: ret
如果我读对了,它会说这是在库代码中崩溃,甚至在它进入我的初始值设定项之前。
对我来说,创建一个最小的测试用例几乎是不可能的,但我希望有人能对我可以做什么来排除故障或解决它提出建议。
这是针对M1 Macbook Pro上模拟器的Xcode 13.2.1。
后续行动:
我从目标和测试目标的链接阶段删除了所有的包,然后一个接一个地重新添加它们,直到它构建,现在它在测试中不会崩溃。所以这是链接器的问题。