2
votes

Utiliser `xcodebuild` pour créer une ligne de commande pour Catalyst / UIKit pour Mac?

Je ne peux voir cela documenté nulle part - est-ce que quelqu'un a compris comment utiliser xcodebuild pour créer un projet pour UIKIt pour Mac (c'est-à-dire Catalyst)?

Vous pouvez spécifier "-sdk iphoneos" vs "-sdk iphonesimulator" pour basculer entre ces deux cibles, mais "-sdk uikitformac" ne semble pas fonctionner ("SDK not found"), bien que Xcode utilise lui-même cette nomenclature ( par exemple, il se construit dans un dossier "Debug-uikitformac", etc.). J'ai également essayé différentes valeurs du SDK qui auraient pu avoir un sens (comme "-sdk macabi"), mais en vain.

Des suggestions?


0 commentaires

3 Réponses :


2
votes

J'ai utilisé ceci pour construire un XCFramework qui inclut le framework Mac Catalyst

XCFramework et Mac Catalyst


2 commentaires

Si vous le pouvez, vous devez fournir les détails de base dans votre réponse avec un lien


-destination 'platform = macOS, arch = x86_64, variant = Mac Catalyst' merci! Je vais essayer et faire un rapport!



11
votes

Ajoutez un fichier de script à votre dossier de projets:

#----- 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

SCHEME est le nom du schéma de construction dans Xcode.

Permet de construire l'archive macCatalyst :

#----- 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

Vous pouvez également ajouter d'autres plates-formes comme un appareil iOS ou un simulateur:

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

Pour tout inclure dans XCFramework, utilisez:

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

Après l'exécution, vous trouverez votre XCFramework dans votre dossier Documents.


2 commentaires

C'est la meilleure façon de créer xcframeworks pour macCatalyst.


SCHEME est le nom du schéma de construction dans Xcode. Que faire si je veux transformer un framework tiers en un xcframework? Je ne peux pas utiliser SCHEME dans ce cas car ce n'est pas réellement un schéma dans Xcode.



2
votes

Essayez xcodebuild -configuration "Debug" ARCHS = "x86_64h" -destination 'platform = macOS, variant = Mac Catalyst' -project "MyApp.xcodeproj" (notez le 'h' supplémentaire sur l'architecture)


0 commentaires