如何使用iOS中的发布模式构建调试问题?

时间:2013-01-22 13:58:48

标签: ios xcode

我正在开发iOS应用程序,我注意到一个错误只有在应用程序以发布模式构建时才可重现。我发现运行我构建的发布模式应用程序的唯一方法是构建存档,使用我的调试配置文件对其进行签名,以及对我的设备进行临时部署。然而,使用这种方法,我无法使用调试器附加,如果在发布版本在代码上运行优化器之后它能够正常工作,我甚至不确定是否可以附加它。

是否有人知道调试问题的好方法,该问题仅在应用程序在发布模式下构建时才可重现?

5 个答案:

答案 0 :(得分:32)

正常情况下,调试版本已禁用优化(-O0)以使调试更容易,而版本构建已启用优化(-O3-Os),这使代码运行得更快,但也使调试更难(但并非不可能)。您可以在调试配置中进入Xcode中的构建设置,并暂时调高优化级别 - 这将保留所有其他调试好东西(符号等),但希望也可以清除释放模式错误。 (完成后,不要忘记在Debug配置中将优化级别重置为-O0!)

答案 1 :(得分:10)

  1. 转到Xcode应用程序菜单中的“项目”命令,然后选择“编辑方案”(快捷方式:⌘<)
  2. 在左窗格中选择“运行项目名称”
  3. 在右窗格中的“信息”选项卡下,将“构建配置”更改为“发布”

答案 2 :(得分:8)

启用调试后,无法在发布模式下运行应用。这不是故意的。

在发布模式下运行应用时,您必须找到一种不同的方式来观察应用的行为(例如使用提醒)。

Uncheck <code>Debug executable</code> do run your app in release mode

此外,您必须信任设备上的分发配置文件。 Xcode会在第一次运行时通知您并发送警报消息。

答案 3 :(得分:0)

要在发布模式下调试iOS应用程序,请修改设置: 构建设置->部署->部署后处理->发布->将值设置为“否”

Set 'Deployment Post Processing: Release' value as 'No'

答案 4 :(得分:0)

为了完成此操作,我不得不短暂地打开自动签名。您无法直接在带有iOS发行证书的设备上构建(需要iOS开发证书),也无法通过带有iOS开发的证书发行到App Store(需要iOS发行证书)。

我的调试模式已配置为使用iOS开发证书直接在设备上构建。我的发布模式已配置为使用iOS发行证书,以允许在所有设备上安装该应用。为了在设备上以发布模式运行,我短暂切换到自动代码签名进行测试。测试完成后,我使用git还原到以前的Xcode配置。

这不是最优雅的方法,但是它完成了工作。