【发布时间】:2020-12-30 16:44:30
【问题描述】:
我以为我明白 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 应用程序如何在 macOS 后面的 1 个主要版本上运行时崩溃,但 iOS 应用程序可以在 iOS 后面的 4 个主要版本上运行得很好?
我完全误解了这个设置的作用吗?
我们什么时候应该使用Always Embed Swift Standard Libraries?
----- 编辑
我刚刚检查了.app 的内容,它似乎确实有 swift 库,这可以解释为什么 t 没有在iOS 9.3.2 上崩溃。所以还有一个问题。当 Always Embed Swift Standard Libraries 设置为 NO 时,为什么 swift 库会在那里?
【问题讨论】: