问题描述
使用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