xcodebuild (из Xcode12) - запретить сборку для Apple Silicon (arm64)

Используя xcodebuild из Xcode 12 и сборку для Mac, как мне предотвратить попытки сборки для arm64?

Я пытаюсь создать архив библиотеки (mailcore2) в командной строке через xcodebuild для цели создания xcarchive для распространения SPM.

В 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. На данный момент это не имеет большого значения, я буду собирать только для компьютеров Mac x86_64. После некоторого поиска я обнаружил, что вы можете указать архитектуру в аргументе -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

Любые идеи?


person RogerTheShrubber    schedule 16.09.2020    source источник


Ответы (1)


Хорошо, поэтому после некоторого просмотра справочной страницы xcodebuild и большого количества экспериментов кажется, что установка аргумента -arch напрямую и отказ от аргумента -destination выполняет это:

xcodebuild archive -scheme "mailcore osx" \
    -arch "x86_64" \
    -archivePath "$BUILD_DIR/mailcore2.macOS.xcarchive" \
    SKIP_INSTALL=NO \
    BUILD_LIBRARY_FOR_DISTRIBUTION=YES
person RogerTheShrubber    schedule 16.09.2020