xcodebuild来自Xcode12-阻止针对Apple Siliconarm64构建

问题描述

使用Xcode 12中的xcodebuild并为Mac构建,如何防止它尝试为arm64构建?

我正在尝试通过xcodebuild在命令行上构建库(mailcore2)的归档文件,目的是为SPM分发创建xcarchive。

在Xcode 11上,此命令可以正常工作:

xcodebuild archive -scheme "mailcore osx" \
    -destination "platform=OS X" \
    -archivePath "$BUILD_DIR/mailcore2.macOS.xcarchive" \
    SKIP_INSTALL=NO \
    BUILD_LIBRARY_FOR_DISTRIBUTION=YES

在Xcode 12上,此消息失败:

The following build commands failed:
    Ld /Users/<USER>/Library/Developer/Xcode/DerivedData/mailcore2-fuubwipfjyvskpfsxtortvjsugny/Build/Intermediates.noindex/ArchiveIntermediates/mailcore\ osx/IntermediateBuildFilesPath/mailcore2.build/Release/mailcore\ osx.build/Objects-normal/arm64/Binary/MailCore normal arm64

似乎在尝试为arm64(Apple Silicon)进行构建时失败了,这是有道理的,因为尚未为ARM Mac建立依赖关系。现在不是什么大问题,我只为x86_64 Macs构建。经过一番搜索,我发现您可以在-destination参数下指定架构,如下所示:-destination "platform=OS X,arch=x86_64"

但是当我尝试使用它时,以下操作将以相同的方式失败:

xcodebuild archive -scheme "mailcore osx" \
    -destination "platform=OS X,arch=x86_64" \
    -archivePath "$BUILD_DIR/mailcore2.macOS.xcarchive" \
    SKIP_INSTALL=NO \
    BUILD_LIBRARY_FOR_DISTRIBUTION=YES

有什么想法吗?

解决方法

好的,因此,通过对xcodebuild手册页的更多搜索和大量实验,似乎可以直接设置AfterViewChecked自变量,而忽略-arch自变量即可实现:

-destination

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...