xcodebuild (Xcode12 से) - Apple Silicon (arm64) के लिए निर्माण रोकें

Sep 17 2020

Xcode 12 से xcodebuild का उपयोग करना और मैक के लिए निर्माण करना, मैं इसे arm64 के लिए निर्माण करने के प्रयास से कैसे रोकूं?

मैं SPM वितरण के लिए xcarchive बनाने के उद्देश्यों के लिए xcodebuild के माध्यम से कमांड लाइन पर एक पुस्तकालय ( mailcore2 ) का एक संग्रह बनाने की कोशिश कर रहा हूं ।

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 अभी तक निर्भरता के लिए नहीं बनाया गया है, तो arm64 (Apple Silicon) के लिए बनाने की कोशिश करते समय यह विफल हो रहा है। अभी के लिए कोई बड़ी बात नहीं है, मैं सिर्फ 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

कोई विचार?

जवाब

1 RogerTheShrubber Sep 17 2020 at 01:15

ठीक है, इसलिए 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