如上所述,我实际上是在macOS 10.12上编译的。我导入了Reachability.swift包,它可以兼容到10.9。Package.swift文件中没有指明最低版本。但是,我在编译时收到了以下错误:
针对macOS 10.12进行编译,但模块“可达性”的最低部署目标为macOS 10.13
如果我在Package.swift中指定了Reachability platforms:[.macOS(.v10_10)],
的最低版本,我清理了所有的缓存,我得到了同样的问题。
我可能会将部署目标升级到10. 13(相同的计算机兼容性)或简单地在我的代码中包含Reachability.Swift文件,但我宁愿它工作...
[编辑]注:其他软件包,比如AppCenter,没有同样的问题...这很奇怪。
[EDIT 2]随着XCode 14.1的发布,问题仍然存在。
你有什么建议吗?
1条答案
按热度按时间vybvopom1#
我可以重现你的问题:可以使用AppCenter,但可访问性会引发错误。
这是我的发现,也许这是根本原因:
1.使可达性成为本地SPM,并修改其swift-tool-version设置和平台设置以与AppCenter保持一致。
1.然后如果你点击进入
.v10_12
MacOSVersion,你会发现低于10.13的os版本已经全部被标记为不支持1.如果您转到构建的文件,使用
otool
测试它,您会发现构建的产品的最低支持版本与上面的描述相匹配:因此,即使您将最低支持版本指定为
10.12
,构建工具仍将以10.13
为目标。1.如果您在
AppCenter
上选中LC_MIN_VERSION_MACOSX
,则它也将10.13
作为目标,而不是其软件包.swift文件中的10.12
。1.但是为什么Xcode接受
AppCenter
并为Reachability
引发错误呢?检查下面的构建日志。你会发现在
emitting module
阶段,构建系统正在使用swift-frontend
来嵌入那些第三方依赖项。所以我猜既然AppCenter是用objective C编写的。检查
swift-frontend
的最低操作系统版本行为在OC依赖关系“AppCenter”和Swift依赖关系“可达性”之间是不同的。x1c4d 1x指令集