【发布时间】:2021-03-26 18:32:51
【问题描述】:
这个真是让人头疼……
第一部分
我们有一个快速的 iOS 应用程序,具有不同的开发和生产目标(普通的东西)。
我们已将 Google Protobufs 纳入其中,以实现我们的一项最新功能。这是使用 Google 的 J2ObjC 库和 pod 'Protobuf', '= 3.11.4' pod 完成的。 (我们的.proto 文件是使用 v3.11.4 制作的)。
运行我们的 Dev 目标可以正常工作(主要见第二部分)。运行我们的 Prod 目标在任何 GPBMessage 对象的构造函数中崩溃。
它在我们的消息对象的pbobc.m 文件的+ (GPBDescriptor *)descriptor 函数内崩溃...最终在GPBDescriptor.m 中出现此错误
行:
enumHandling_.enumDescriptor_ = coreDesc->dataTypeSpecific.enumDescFunc();
错误:
(lldb) po coreDesc->dataTpeSpecific
error: <user expression 2>:1:11: no member named 'dataTpeSpecific' in 'GPBMessageFieldDescription'
coreDesc->dataTpeSpecific
~~~~~~~~ ^
奇怪的是这会在 Prod 而不是 Dev 中崩溃。梳理两个目标的构建设置...它们相同。构建阶段相同,构建规则相同,Plists 基本相同......
我不知道还要检查什么。
第二部分
在我们的 Dev 和 Prod 目标中,有一条 GPB 消息在初始化时崩溃。 (我们可以在没有它的情况下运行,所以我在开发过程中将其注释掉了。) 此消息与其他消息之间的区别在于,此消息是枚举列表。 它在同一条线上崩溃。 ¯\(ツ)/¯
提前非常感谢! :D
【问题讨论】:
标签: ios swift objective-c protocol-buffers