我以为我明白Always Embed Swift Standard Libraries在做什么,但现在我很困惑。
我MacOS向 App Store推送了一个应用程序的更新,一位用户说它在macOS High Sierra. 经过非常快速的调查,似乎缺少 swift 库,我的一个框架是用 swift 编写的(主应用程序是ObjC)。我切换Always Embed Swift Standard Libraries到YES,重新上传了一个新版本,世界上的一切都很棒。
我现在已经上传了一个全新的iOS应用程序,Testflight它是为iOS 9.3+这个问题而构建并记住的,所以我想我会测试一下。该Always Embed Swift Standard Libraries设置设置为NO必须是Xcode默认值。我TestFlight在一台iOS 9.3.2设备上下载了该应用程序,希望它在启动时崩溃,但不,该应用程序运行良好。
macOS运行在 1 个主要版本后面的应用程序如何崩溃,macOS但iOS应用程序可以在iOS后面的 4 个主要版本上完美运行?
我完全误解了这个设置的作用吗?
我们应该什么时候使用Always Embed Swift Standard Libraries?
----- 编辑我刚刚检查了.app内容,它似乎确实有 swift 库,这可以解释为什么 t 没有崩溃iOS 9.3.2。所以一个额外的问题。为什么 swift 库会在Always Embed Swift Standard Libraries设置为时出现NO?
And*_*jen 13
我必须多次阅读文档才能了解发生了什么:
始终嵌入 Swift 标准库 (ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES)
始终将 Swift 标准库嵌入到目标产品中,即使目标不包含任何 Swift 代码。
这意味着
ALWAYS... 为YES,库肯定会被嵌入。NO,它们将不会总是被嵌入 - 它们可能会也可能不会被嵌入,这取决于构建系统如何聪明地决定它是否需要它们(取决于目标版本等)。这是一个常见的误解: always的否定不是never ,它只是不总是(例如有时或如此)。
| 归档时间: |
|
| 查看次数: |
859 次 |
| 最近记录: |