如何调试发行版构建

     2023-03-10     166

关键词:

【中文标题】如何调试发行版构建【英文标题】:how do I debug a distribution build 【发布时间】:2011-07-29 11:03:51 【问题描述】:

好的

所以最近我在调试模式下工作但无法在分发模式下工作的应用程序时遇到了很多麻烦。

是否可以将断点和变量跟踪等 xcode 调试工具与应用的临时分发版本一起使用?

如果不是这样,人们通常会如何调试这样的东西?

【问题讨论】:

怎么不工作了?它会崩溃吗?一种方法不会给出预期的结果吗?您在使用第三方库吗? 这很奇怪,因为它不会崩溃。基本上,当按下按钮时,它的状态应该会改变,并且音频应该通过核心音频播放。从按下按钮到播放音频的时间,有很多功能。问题可能真的在任何地方。我真的不知道要寻找什么。在设备上的调试器中工作正常,但在归档时不能。不涉及第三部分库。 【参考方案1】:

假设您的崩溃日志没有为您提供任何线索(您需要连接到设备才能获得它们),您可以做很多事情。

但我会先查看崩溃日志...线索会在那里,不要忘记 Apple 通过 iTunesConnect 为您提供分发崩溃日志。

1) 丰富的日志记录是一回事。许多开发人员使用开关,以便在调试中,日志转到控制台,但对于其他构建,它们被丢弃。考虑一个不同的选项,您可以在其中登录到文件。然后,您可以将日志文件推送到远程服务器进行调试。设置这一切有点困难,但一旦你完成了,你会想知道没有它你是如何生活的。

2) 另一种选择是在检测到出现问题时使用 Flurry 并记录事件。当事情不如预期而不是随机崩溃时,这可以涵盖更多受控问题。如果您的条款和条件清楚说明您正在记录哪些数据以及原因,这对于已发布的应用来说可能是一项有用的功能。

3) 确保您进行了干净的构建,我确定您已经这样做了,但有时它会清除这些问题。

4) 您是否使用外部库/模块?我遇到了旧版本 TT 的问题,其中 arm6/7 构建设置错误,这导致分发构建出现问题。基本上检查每个配置文件的构建设置并确保它符合您的期望。

5) 怀疑竞态条件。在分发模式下(通常是因为关闭了日志记录),您会发现您的应用程序运行得更快一些。这可以揭示写得不好的代码中的计时问题。

所以是的...您可以做很多事情...您只是无法附加调试器;-)

【讨论】:

【参考方案2】:

无法在分发模式下调试应用程序。

分发、调试和发布之间的构建配置差异实际上是您在 XCode 中设置的任何参数。如果您的发行版配置给您带来问题而发行版没有,那么修复它的最简单方法是返回 Apple 复制发行版配置并进行更改以使其成为发行版配置的步骤,就像您最初所做的那样。

另一种方法是检查 Release 和 Distribution 的每一行配置并找出不同之处。另一种方式要快很多。 :)

【讨论】:

如何使用正确分发的发行版 pdb 文件构建 Qt5

】如何使用正确分发的发行版pdb文件构建Qt5【英文标题】:HowTobuildQt5withcorrectlydistributedreleasepdbfiles【发布时间】:2015-03-2711:19:47【问题描述】:我想在debug和release模式下从带有PDB文件的源代码构建Qt5,但我遇到了两个问题:没... 查看详情

在 docker 中构建 lumen 时如何重新安装 libzip 发行版

】在docker中构建lumen时如何重新安装libzip发行版【英文标题】:Howtoreinstallthelibzipdistributionwhenbuildlumenindocker【发布时间】:2019-05-1507:33:06【问题描述】:我在osx版本10.11.6上使用docker版本17.12.0-ce-mac55(23011)。我在docker上构建lumen时... 查看详情

如何编译(构建)我的 Qt 应用程序以在许多 Linux 发行版上运行?

】如何编译(构建)我的Qt应用程序以在许多Linux发行版上运行?【英文标题】:Howtocompile(build)myQtapplicationtorunonmanylinuxdistributions?【发布时间】:2010-07-1909:00:20【问题描述】:我创建了一个QtGUI应用程序,我想提供一个在尽可能... 查看详情

在 Visual Studio 2008 中将应用程序构建为发行版时出现问题 - C++

...到了一点问题。它构建得很好,没有任何错误或警告作为调试。该应用程序主要是Win32和一些MF 查看详情

如何使用 GLFW 预编译的二进制文件编译 Visual Studio 2019 发行版

】如何使用GLFW预编译的二进制文件编译VisualStudio2019发行版【英文标题】:HowtocompileVisualStudio2019releasebuildwithGLFWpre-compiledbinaries【发布时间】:2019-08-2903:34:48【问题描述】:我正在尝试在VisualStudio2019中构建一个使用GLFW预编译静态... 查看详情

构建 Apache Cassandra 的 DataStax 发行版

】构建ApacheCassandra的DataStax发行版【英文标题】:BuildDataStaxDistributionofApacheCassandra【发布时间】:2020-01-2914:46:02【问题描述】:我从page下载了ApacheCassandra(DDAC)的DataStaxDistribution。nodetool.bat在其中一个语句中运行cassandra.in.bat、cassan... 查看详情

Cordova:无论如何,是不是可以在 Javascript 中检测 iOS 应用程序是作为调试版还是作为发布版构建的?

】Cordova:无论如何,是不是可以在Javascript中检测iOS应用程序是作为调试版还是作为发布版构建的?【英文标题】:Cordova:isthereanywaytodetectinJavascriptwhetheraniOSappisbuiltasdebugorrelease?Cordova:无论如何,是否可以在Javascript中检测iOS应用... 查看详情

构建电子 linux 发行版:找到了 SUID 沙箱助手二进制文件,但未正确配置

】构建电子linux发行版:找到了SUID沙箱助手二进制文件,但未正确配置【英文标题】:Buildingelectronlinuxdistro:TheSUIDsandboxhelperbinarywasfound,butisnotconfiguredcorrectly【发布时间】:2020-12-2601:44:50【问题描述】:我正在为linux生成电子发行... 查看详情

带有 proguard 的 Android ant build.xml 未在发行版中构建

】带有proguard的Androidantbuild.xml未在发行版中构建【英文标题】:Androidantbuild.xmlwithproguarddoesnotbuildinrelease【发布时间】:2012-08-1708:11:13【问题描述】:我有以下项目设置:两个库“commoncomponents”和“libs”都定义了一些活动,例如... 查看详情

我们可以使用 conda 获得一个以调试模式构建的 python 环境吗?

】我们可以使用conda获得一个以调试模式构建的python环境吗?【英文标题】:Canwegetapythonenvironmentbuiltindebugmodeusingconda?【发布时间】:2021-11-1715:51:54【问题描述】:Conda环境是在发布模式下构建的Python发行版,但对于我的Python扩展... 查看详情

azure部署管道:将发行版添加到配置中(代码片段)

...序的配置设置中写入构建ID并显示该ID,但恐怕我不知道如何获取该编号并将其从发布管道写入应用程序设置。有人有建议吗?答案[Here您具有发布管道的预定义变量的列表。您可以使用Release.ReleaseId 查看详情

Flutter Advance_pdf_viewer 在发行版中不起作用

...正在使用Advance_pdf_viewer包来可视化来自URL的pdf文件。它在调试模式下工作正常,但是当我构建发布APK时它不起作用。我就是这样使用它的:FutureBuilder(future:P 查看详情

针对自定义构建的 tcl85.lib 的链接器错误,针对 ActiveState 发行版的 tcl85.lib

】针对自定义构建的tcl85.lib的链接器错误,针对ActiveState发行版的tcl85.lib【英文标题】:Linkererrorsagainstcustombuilttcl85.lib,worksagainstActiveStatedistribution\'stcl85.lib【发布时间】:2014-01-2004:30:33【问题描述】:我们正在自己构建Tcl,以便... 查看详情

为数十万台设备更新内部linux发行版,google如何做到?

谷歌内部使用了许多不同的操作系统平台,其中包括 ​​Linux​​。15多年前,谷歌选择基于UbuntuLTS构建内部Linux发行版Goobuntu,主要是看中了Ubuntu具备用户友好、易于使用的特性,以及提供了许多优秀功能。谷歌内部使用了... 查看详情

如何从源代码创建 Linux 发行版? [关闭]

】如何从源代码创建Linux发行版?[关闭]【英文标题】:HowcanIcreateaLinuxdistrofromthesourcecode?[closed]【发布时间】:2022-01-2213:03:27【问题描述】:如果我想创建像kali、parrot这样的Linux发行版。如何下载Linux发行版的源代码并编辑源代码... 查看详情

从零构建一个riscv64ubuntu-20发行版系统(代码片段)

文章目录1.搭建开发环境1.1开发涉及的环境/工具:1.2安装qemu虚拟化工具1.2.1apt安装1.2.2手动交叉编译安装2.获取riscv架构ubuntu根文件系统3.Vmwareubuntu挂载riscv架构ubuntu文件系统3.1.解压缩riscv架构ubuntu文件系统到ubuntu下3.1.2拷贝qemu... 查看详情

NSFileManager 在 Xcode 中作为发行版构建时有效,但在作为独立 OS X Cocoa 应用程序运行时无效

】NSFileManager在Xcode中作为发行版构建时有效,但在作为独立OSXCocoa应用程序运行时无效【英文标题】:NSFileManagerworkswhenbuiltinXcodeasrelease,butnotwhenranasstandaloneOSXCocoaapp【发布时间】:2011-06-1617:25:41【问题描述】:我编写了以下函数... 查看详情

如何在另一个发行版上安装 LLNL VisIt

】如何在另一个发行版上安装LLNLVisIt【英文标题】:HowtoinstallLLNLVisItonanotherdistribution【发布时间】:2020-12-1600:20:59【问题描述】:社区,我是一名使用OpenFOAM和ParaView进行CFD工作的学生,但由于项目要求,现在我想安装VisIt。我们... 查看详情