使用 `xcodebuild` 为 Catalyst/UIKit 为 Mac 执行命令行构建?

Using `xcodebuild` to do a command line builds for Catalyst/UIKit for Mac?

我在任何地方都看不到这个文档——有没有人想出我们如何使用 xcodebuild 为 Mac(即 Catalyst)构建 UIKIt 项目?

您可以指定“-sdk iphoneos”与“-sdk iphonesimulator”以在这两个目标之间切换,但“-sdk uikitformac”似乎不起作用 ("SDK not found"),尽管 Xcode 本身使用该命名法(例如,它构建到 "Debug-uikitformac" 文件夹等)。我还尝试了可能有意义的不同 SDK 值(例如“-sdk macabi”),但无济于事。

建议?

我用它构建了一个包含 Mac Catalyst 框架的 XCFramework

XCFramework and Mac Catalyst

将脚本文件添加到您的项目文件夹:

SCHEME=TestFramework \
ARCHS=~/Documents/Archives \

SCHEME 是 Xcode 中构建方案的名称。

让我们构建 macCatalyst 存档:

#----- Make macCatalyst archive
xcodebuild archive \
-scheme $SCHEME \
-archivePath $ARCHS/macCatalyst.xcarchive \
-sdk macosx \
SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES SUPPORTS_MACCATALYST=YES

您还可以添加其他平台,例如 iOS 设备或​​模拟器:

#----- Make iOS Simulator archive
xcodebuild archive \
-scheme $SCHEME \
-archivePath $ARCHS/simulator.xcarchive \
-sdk iphonesimulator \
SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES

#----- Make iOS device archive
xcodebuild archive \
-scheme $SCHEME \
-archivePath $ARCHS/iosdevice.xcarchive \
-sdk iphoneos \
SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES

要在 XCFramework 中包含所有内容,请使用:

#----- Make XCFramework
xcodebuild -create-xcframework \
-framework $ARCHS/simulator.xcarchive/Products/Library/Frameworks/$SCHEME.framework \
-framework $ARCHS/iosdevice.xcarchive/Products/Library/Frameworks/$SCHEME.framework \
-framework $ARCHS/macCatalyst.xcarchive/Products/Library/Frameworks/$SCHEME.framework \
-output ~/Documents/$SCHEME.xcframework

在 运行 之后,您将在您的文档文件夹中找到您的 XCFramework。

尝试:

xcodebuild -configuration "Debug" ARCHS="x86_64h" \
  -destination 'platform=macOS,variant=Mac Catalyst' \
  -project "MyApp.xcodeproj"

(注意架构上额外的 'h')