#xcode #macos #xcodebuild #xcode12 #apple-silicon
#xcode #macos #xcodebuild #xcode12 #apple-silicon
Вопрос:
Используя 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. Пока ничего особенного, я просто создам только для x86_64 Mac. После некоторого поиска я обнаружил, что вы можете указать архитектуру в -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
Есть идеи?
Ответ №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