ios Swift宏:找不到外部宏实现类型

stszievb  于 11个月前  发布在  iOS
关注(0)|答案(1)|浏览(145)

我在我的项目中使用MetaCodable宏,通过SwiftPM安装,当我尝试使用Microsoft Azure的Pipeline使用我的本地机器作为运行代理(MBP M1 Max -索诺马- XCode 15)构建项目时,我得到这个错误消息:
第一个月
有些人here建议在构建设置中将-external-plugin-path添加到other Swift flags,但这并不能解决问题。
this thread中,有些人还建议将-load-plugin-library,或-plugin-path,或-load-plugin-executable添加到other Swift flags,我尝试了这些选项的每一个值:$(BUILT_PRODUCTS_DIR)#MetaCodable,但我在每个CI构建中都得到了相同的错误。
我在Azure的Pipeline构建日志中也收到了这个警告:
"output": "<unknown>:0: warning: compiler plugin not loaded: '/Users/my_user_name/Library/Developer/Xcode/DerivedData/MyProject/Build/Products/Release/CodableMacroPlugin; failed to initialize /Users/my_user_name/vsts-agent-osx-x64-2.183.1/_work/9/MyProject/Data/Models/SomeModel.swift
任何关于这一点的想法都是值得赞赏的。

h7wcgrx3

h7wcgrx31#

我也遇到了同样的问题,几个小时后我找到了解决方案。
对于我们的库,我们必须为SwiftSyntaxMacros定义一个除了iOS之外的macOS支持版本。在本地,我们使用MacOS 14并将其设置为14。在服务器上,我们运行13.X。我们没有收到MacOS支持版本的错误“error:external macro implementation type 'foo' could not be found for macro 'foo'”。
将其设置为MacOS 12后,问题消失了:

platforms: [.macOS(.v12), .iOS(.v15)],

字符串
我希望这对你有用。在网上我没有找到这个问题的解决方案。

相关问题