[我们有使用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来实现此构建行为?
找到以下命令行参数:--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