Swift包管理器-如何`始终嵌入Swift标准库?

问题描述 投票:0回答:1

[我们有使用Swift编写的CLI工具,可用于macOS上的常见用法(Android和iOS开发人员)。未安装Xcode的Android开发人员会收到以下错误:

dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: ~/git/myClITool/macosBin Reason: image not found
Abort trap: 6

我们发现在Xcode中启用Always Embed Swift Standard Libraries最有帮助,但是此CLI工具随SPM一起导出,忽略了所有Xcode设置。

如何仅使用SPM来实现此构建行为?

swift build compiler-flags swift-package-manager
1个回答
0
投票

找到以下命令行参数:--static-swift-stdlib

示例用法:swift build --static-swift-stdlib -c release

这将产生我们想要的输出。不幸的是,自Swift 5起,此参数不再有效对于任何平台。

[使用时,SPM引发以下警告:

警告:Swift编译器不再支持静态链接Swift库。默认情况下,它们包含在操作系统中macOS Mojave 10.14.4 beta3。对于macOS Mojave 10.14.3和更早版本,有一个可选的Swift库软件包,可以从中下载苹果开发人员的“更多下载”https://developer.apple.com/download/more/

相关的Swift Bugticket:https://bugs.swift.org/browse/SR-648

© www.soinside.com 2019 - 2024. All rights reserved.