swift-openapi-generator的命令行构建失败-本地和Azure DevOps管道上

prdp8dxp  于 5个月前  发布在  Swift
关注(0)|答案(1)|浏览(35)

我正在使用Azure DevOps Pipeline来构建我的Xcode项目,我在那里遇到了这个问题。使用的Xcode版本是15.0.1
我已经按照官方教程here在我们的项目中设置了swift-openapi-generator,当在Xcode中运行时,它工作得很好。Xcode构建了模型和客户端。但是当我运行时,它在命令行上失败了:
xcodebuild -sdk iphoneos -configuration Release -workspace /Users/zeeshan/Development/MyProjext/myproject.xcodeproj/project.xcworkspace -scheme elvis -destination platform=iOS Simulator,name=MyiPhone,OS=17.0.1 build CODE_SIGNING_ALLOWED=NO错误,如下面的屏幕截图。
x1c 0d1x的数据
这个命令行是我们在Azure DevOps Pipeline for CI上使用了一段时间的命令行,所以我们知道命令行可以工作。只有在根据其官方教程添加swift-openapi-generator后,它才开始失败。
没有关于此错误消息的文档,并且网上唯一的几个来源在某种程度上指出了这个问题,要求从构建阶段链接中删除_OpenAPIGeneratorCore与二进制设置,但事实并非如此,因为_OpenAPIGeneratorCore从未在二进制链接中存在。
日志中的错误消息显示:error: _OpenAPIGeneratorCore is only to be used by swift-openapi-generator itself—your target should not link this library or the command line tool directly.
我没有将我的目标链接到_OpenAPIGeneratorCore,除非Xcode自动这样做,在这种情况下,我不知道在哪里取消链接。
我尝试了所有方法,但都没有效果。似乎命令行构建需要有一个信任和启用swift-openapi-generator库的选项,我不知道如何实现这一点。其他人遇到过这个问题并找到了解决方案吗?
附项目截图:

3yhwsihp

3yhwsihp1#

所以经过多次尝试和错误,我发现这个问题的解决方案是在Target Build Settings中只将Base SDK and Supported Platforms设置为iOS,而不是同时设置为macOSiOS。我通过创建两个全新的项目来测试这一点,并遵循每个项目的swift-openapi-generator图腾,以确保这两个新项目都是如此。如果你添加macOS,这是Xcode 15默认为新项目添加的,命令行构建开始失败。

默认值:

修复:

此更改相应地更新了project.pbxproj文件以反映这些更改,这将导致命令行构建在本地和Azure DevOps Pipeline中都能正常工作。


相关问题