2

我有一个 iOS Swift 应用程序。我最近添加了一个功能并将新版本上传到 TestFlight。出于某种原因,这个新功能的主要功能不是在发布模式下被调用,而是在调试模式下完美运行。

到目前为止,我尝试了什么:在版本 1 的“Apple LLVM 6.0 - 代码生成”中
)将优化级别更改为无,以及
2)将“默认隐藏的符号”更改为否

我不认为函数的细节在这里很重要,但它的价值在于:它从后端接收和操作一些 JSON 数据。我还有十个其他函数,它们对不同类型的数据做同样的事情——在那里没有遇到同样的问题。

有什么想法吗?发布模式和调试模式之间还有哪些其他区别?这可能是排除故障的良好开端。

谢谢,

4

2 回答 2

0

断言不会在发布模式下运行。有时人们会犯这个错误(这些年来我犯过几次):

assert(doSomethingImportant(), "Failed")

这适用于 Debug,但doSomethingImportant不会在 Release 中调用。

于 2015-04-11T11:28:35.123 回答
0

发布模式和调试模式之间还有哪些其他区别?

除了不同的设备架构DEBUG之外,Release 中还排除了一个预处理器宏。
您可以制定一个允许您在发布模式下调试的方案,并检查它在哪里中断。

于 2015-04-11T06:39:29.417 回答