使用 'xcodebuild' 为 Catalyst/UIKit for Mac 执行命令行构建



我在任何地方都看不到这个记录 - 有没有人想过如何使用xcodebuild为UIKIt for Mac(即Catalyst(构建一个propject?

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

建议?

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

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"(

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

XCFramework 和 Mac Catalyst

最新更新