【问题标题】:Swift compiler optimisations cause freezesSwift 编译器优化导致冻结
【发布时间】:2016-09-19 05:44:42
【问题描述】:

我的应用仅在发布配置中冻结。
我追查到这个设置的问题:

Swift 编译器有缺陷已经不是什么秘密了。 我从未见过编译器崩溃(而且经常崩溃)。

那么,在优化级别设置为“无”的情况下提交到 App Store 是否“安全”?
有什么经验吗?

【问题讨论】:

    标签: swift xcode7 compiler-optimization


    【解决方案1】:

    Apple 不建议在没有编译器优化的情况下发布您的应用程序。[1]

    无:编译器不尝试优化代码。使用此选项 在开发过程中,当您专注于解决逻辑错误和 需要一个快速的编译时间。不要使用此选项运送您的 可执行文件。

    取自apple.developer.com

    虽然存在编译器优化错误,[2] Xcode 可能不是问题的根源,正如 stackoverflow 用户 @kfmfe04 提供的答案 here 中所述:

    在极少数情况下,调试代码有效,但发布 代码失败。当这种情况发生时,几乎总是,问题出在我的 代码;发布版本中的积极优化可以揭示导致的错误 被误解的临时工的寿命等等......


    请记住,您始终可以通过检查已编译的程序集文件来追踪问题的根源,但需要一些 ASM 知识才能了解编译器在后台执行的操作。

    在 Xcode 选项中:

    Debug -> Debug Workflow -> Always Show Disassembly

    然后在要检查 ASM 代码的地方放置一个断点。

    【讨论】:

    • 不过,Apple 也建议发布不会冻结的应用程序。
    • 你在问什么是“安全”的。提交没有编译器优化的应用程序可能会被拒绝。
    • 我在问是否有人有提交没有优化的构建的经验。如果我找不到问题的原因,这可能是我唯一的选择。问题的根源可能在我正在使用的库中。
    • @NickKanelopoulos 当然,请记住,虽然 Apple 可能会让您的应用通过应用商店,但此设置对您的用户来说是一个糟糕的选择。这将使您的应用程序变得更慢且更大。
    猜你喜欢
    • 2011-02-13
    • 1970-01-01
    • 2012-04-11
    • 2020-11-15
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    相关资源
    最近更新 更多