我正在开发一个 iOS 应用程序,我注意到只有在应用程序以发布模式构建时才能重现的错误。我发现运行我构建的发布模式应用程序的唯一方法是构建一个存档,使用我的调试配置文件对其进行签名,然后对我的设备进行临时部署。但是使用这种方法我不能附加调试器,我什至不确定我是否可以附加它,如果它在发布版本对代码运行优化器后能正常工作。
有谁知道调试仅在发布模式下构建应用程序时才能重现的问题的好方法?
通常 Debug 构建禁用优化 ( -O0
) 以使调试更容易,而 Release 构建启用优化 (-O3
或-Os
),这使代码运行得更快,但也使调试更难(但并非不可能)。您可以在调试配置中进入 Xcode 中的构建设置并临时调高优化级别 - 这将保留所有其他调试好东西(符号等),但希望也能清除发布模式错误。(完成后不要忘记将优化级别重置为-O0
调试配置!)
要在发布模式下调试 iOS 应用程序,请修改设置:构建设置 -> 部署 -> 部署后处理 -> 发布 -> 将值设置为“否”
为了实现这一点,我不得不短暂地打开自动签名。您无法使用 iOS 分发证书(您需要 iOS 开发证书)直接在设备上构建,并且您无法使用 iOS 开发证书(您需要 iOS 分发证书)发布到 App Store。
我的调试模式配置为使用 iOS 开发证书直接在设备上构建。我的发布模式配置为使用 iOS 分发证书以允许在所有设备上安装应用程序。为了在设备上以发布模式运行,我短暂切换到自动代码签名进行测试。完成测试后,我使用 git 恢复到以前的 Xcode 配置。
不是最优雅的方式,但它完成了工作。