gpt4 book ai didi

xcode - 如何从 macOS 应用程序包中排除标准但未使用的 libswift*.dylib 并减小包大小

转载 作者:行者123 更新时间:2023-12-03 17:38:24 28 4
gpt4 key购买 nike

当我使用 Xcode 9 构建用 Swift 4 编写的简单菜单栏 cocoa 应用程序时,很多 libswift*.dylib 库被链接/下载/嵌入到 .app 包中,如下所示:

libswift

我只用 import Cocoaimport Foundation在我的项目中,一些@objc 函数作为定时器函数的选择器。我真的不认为我的非常简单的菜单栏应用程序需要一些 3D 渲染 Metal 库函数或任何 SwiftOnoneSupport,所以我想要它们 从 .app 包中删除 . (帮助应用程序中也包含相同的库,用于在登录时启动,这使得帮助应用程序甚至超过 10 MB)

我原以为 Xcode 实际上只会复制默认情况下需要的任何内容。问了一些类似的问题 herehere但我认为两者都没有令人满意的最新答案。

到目前为止我尝试过的

我设置了ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIESNOBuild Settings .它似乎没有任何影响。

我设置了LINK_WITH_STANDARD_LIBRARIESNOBuild Settings .它毁了一切并且无法构建它,即使我尝试在链接框架和库部分下自己添加一些框架(Cocoa、Foundation)。

最佳答案

简而言之,不可能排除 Swift 自动包含在应用程序中的标准库并期望它能够工作。目前,任何使用 Swift 创建的应用程序都捆绑了自己版本的 Swift 动态库。 Swift 并不存在于操作系统中,而是存在于每个应用程序包中。这意味着任何使用 Swift 4.1 的应用程序(例如)都包含在 Swift 4.1 动态库(包含 4.1 ABI)中,等等。

Swift 项目路线图上的一件事是最终拥有 ABI Stability .如果 Swift 成为 ABI 稳定版,Swift 将存在于操作系统中,并且它的 ABI 将与 Swift 的每个版本兼容。

关于xcode - 如何从 macOS 应用程序包中排除标准但未使用的 libswift*.dylib 并减小包大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52047664/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com