xcodebuild (de Xcode12): evita la construcción para Apple Silicon (arm64)

Sep 17 2020

Usando xcodebuild de Xcode 12 y compilando para Mac, ¿cómo puedo evitar que intente compilar para arm64?

Estoy intentando crear un archivo de una biblioteca ( mailcore2 ) en la línea de comandos a través de xcodebuild con el fin de crear un xcarchive para la distribución de SPM.

En Xcode 11, este comando funciona bien:

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

En Xcode 12, sin embargo, está fallando con este mensaje:

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

Parece que está fallando al intentar construir para arm64 (Apple Silicon), lo cual tiene sentido ya que las dependencias aún no están diseñadas para arm Macs. No es gran cosa por ahora, solo construiré para Mac x86_64. Después de algunas búsquedas, encontré que puede especificar la arquitectura bajo el -destinationargumento de esta manera:-destination "platform=OS X,arch=x86_64"

Pero cuando trato de usar eso, lo siguiente simplemente falla de la misma manera:

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

¿Algunas ideas?

Respuestas

1 RogerTheShrubber Sep 17 2020 at 01:15

De acuerdo, con un poco más de búsqueda en la página de manual de xcodebuild y mucha experimentación, parece que establecer el -archargumento directamente y dejar el -destinationargumento lo logra:

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