xcodebuild (von Xcode12) - Verhindert das Erstellen für Apple Silicon (arm64)

Sep 17 2020

Wie kann ich verhindern, dass mit xcodebuild von Xcode 12 und dem Erstellen für Mac versucht wird, für arm64 zu erstellen?

Ich versuche, über xcodebuild ein Archiv einer Bibliothek ( mailcore2 ) in der Befehlszeile zu erstellen, um ein xcarchive für die SPM-Verteilung zu erstellen.

Unter Xcode 11 funktioniert dieser Befehl einwandfrei:

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

Auf Xcode 12 schlägt dies jedoch mit der folgenden Meldung fehl:

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

Es sieht so aus, als ob es beim Versuch, für arm64 (Apple Silicon) zu erstellen, fehlschlägt. Dies ist sinnvoll, da die Abhängigkeiten noch nicht für arm-Macs erstellt wurden. Im Moment keine große Sache, ich werde nur für x86_64-Macs bauen. Nach einiger Suche habe ich festgestellt, dass Sie die Architektur unter dem folgenden -destinationArgument angeben können :-destination "platform=OS X,arch=x86_64"

Aber wenn ich versuche, das zu verwenden, schlägt das Folgende genauso fehl:

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

Irgendwelche Ideen?

Antworten

1 RogerTheShrubber Sep 17 2020 at 01:15

Okay, mit etwas mehr Durchsuchen der xcodebuild-Manpage und viel Experimentieren scheint es, als würde man das -archArgument direkt setzen und das -destinationArgument weglassen, um es zu erreichen:

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