Skip to content

Commit

Permalink
chore: update tooling for xcframework creation (#730)
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcoEidinger authored Jun 29, 2024
1 parent 10b6d84 commit e3de493
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 16 deletions.
2 changes: 1 addition & 1 deletion .xcodegen/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Once `FioriSwiftUI.xcodeproj` was generated by XcodeGen command line tool, you c
xcodebuild -project FioriSwiftUI.xcodeproj -scheme buildBinaryFramework -configuration Release
```

> The modules will be build for iOS, iOS Simulator and MacCatalyst. If you need other platforms please change the run script in porject.yml accordingly.
> The modules will be build for iOS, visionOS, watchOS and MacCatalyst. If you need other platforms please change the run script in porject.yml accordingly.
The binary frameworks will be placed in the `XCFramework` folder.

Expand Down
49 changes: 34 additions & 15 deletions .xcodegen/project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ options:
groupSortPosition: top
generateEmptyDirectories: true
deploymentTarget:
iOS: "15.0"
iOS: "16.0"
visionOS: "1.0"
watchOS: "7.0"

############
# Targets
Expand All @@ -24,7 +26,7 @@ targets:
FioriThemeManager:
name: FioriThemeManager
type: framework
platform: [iOS]
supportedDestinations: [iOS, visionOS, watchOS, macCatalyst]

info:
path: SupportingFiles/FioriThemeManagerInfo.plist
Expand Down Expand Up @@ -53,7 +55,7 @@ targets:
FioriCharts:
name: FioriCharts
type: framework
platform: [iOS]
supportedDestinations: [iOS, visionOS, macCatalyst]

info:
path: SupportingFiles/FioriChartsInfo.plist
Expand Down Expand Up @@ -85,7 +87,7 @@ targets:
FioriSwiftUICore:
name: FioriSwiftUICore
type: framework
platform: [iOS]
supportedDestinations: [iOS, visionOS, macCatalyst]

info:
path: SupportingFiles/FioriSwiftUICoreInfo.plist
Expand Down Expand Up @@ -122,38 +124,55 @@ aggregateTargets:
rm -rf $OUTPUT_DIR_PATH
# FioriThemeManager archives
xcodebuild archive -scheme FioriThemeManager -configuration $CONFIGURATION -destination 'generic/platform=iOS Simulator' ARCHS=arm64 -archivePath ${OUTPUT_DIR_PATH}/iphonesimulator/FioriThemeManager.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme FioriThemeManager -configuration $CONFIGURATION -destination 'generic/platform=iOS Simulator' ARCHS="arm64 x86_64" -archivePath ${OUTPUT_DIR_PATH}/iphonesimulator/FioriThemeManager.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme FioriThemeManager -configuration $CONFIGURATION -destination 'generic/platform=iOS' -archivePath ${OUTPUT_DIR_PATH}/iphoneos/FioriThemeManager.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme FioriThemeManager -configuration $CONFIGURATION -destination 'platform=macOS,arch=x86_64,variant=Mac Catalyst' -archivePath ${OUTPUT_DIR_PATH}/maccatalyst/FioriThemeManager.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme FioriThemeManager -configuration $CONFIGURATION -destination 'generic/platform=visionOS Simulator,name=Apple Vision Pro' ARCHS="arm64 x86_64" -archivePath ${OUTPUT_DIR_PATH}/xrsimulator/FioriThemeManager.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme FioriThemeManager -configuration $CONFIGURATION -destination 'generic/platform=visionOS' -archivePath ${OUTPUT_DIR_PATH}/xros/FioriThemeManager.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme FioriThemeManager -configuration $CONFIGURATION -destination 'generic/platform=watchOS Simulator' ARCHS="arm64 x86_64" -archivePath ${OUTPUT_DIR_PATH}/watchsimulator/FioriThemeManager.xcarchive -derivedDataPath /Users/d041771/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme FioriThemeManager -configuration $CONFIGURATION -destination 'generic/platform=watchOS' ARCHS="arm64 arm64_32" -archivePath ${OUTPUT_DIR_PATH}/watchos/FioriThemeManager.xcarchive -derivedDataPath /Users/d041771/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
# FioriCharts archives
xcodebuild archive -scheme FioriCharts -configuration $CONFIGURATION -destination 'generic/platform=iOS Simulator' ARCHS=arm64 -archivePath ${OUTPUT_DIR_PATH}/iphonesimulator/FioriCharts.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme FioriCharts -configuration $CONFIGURATION -destination 'generic/platform=iOS Simulator' ARCHS="arm64 x86_64" -archivePath ${OUTPUT_DIR_PATH}/iphonesimulator/FioriCharts.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme FioriCharts -configuration $CONFIGURATION -destination 'generic/platform=iOS' -archivePath ${OUTPUT_DIR_PATH}/iphoneos/FioriCharts.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme FioriCharts -configuration $CONFIGURATION -destination 'platform=macOS,arch=x86_64,variant=Mac Catalyst' -archivePath ${OUTPUT_DIR_PATH}/maccatalyst/FioriCharts.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme FioriCharts -configuration $CONFIGURATION -destination 'generic/platform=visionOS Simulator,name=Apple Vision Pro' ARCHS="arm64 x86_64" -archivePath ${OUTPUT_DIR_PATH}/xrsimulator/FioriCharts.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme FioriCharts -configuration $CONFIGURATION -destination 'generic/platform=visionOS' -archivePath ${OUTPUT_DIR_PATH}/xros/FioriCharts.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
# FioriSwiftUICore archives
xcodebuild archive -scheme FioriSwiftUICore -configuration $CONFIGURATION -destination 'generic/platform=iOS Simulator' ARCHS=arm64 -archivePath ${OUTPUT_DIR_PATH}/iphonesimulator/FioriSwiftUICore.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme FioriSwiftUICore -configuration $CONFIGURATION -destination 'generic/platform=iOS Simulator' ARCHS="arm64 x86_64" -archivePath ${OUTPUT_DIR_PATH}/iphonesimulator/FioriSwiftUICore.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme FioriSwiftUICore -configuration $CONFIGURATION -destination 'generic/platform=iOS' -archivePath ${OUTPUT_DIR_PATH}/iphoneos/FioriSwiftUICore.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YE
xcodebuild archive -scheme FioriSwiftUICore -configuration $CONFIGURATION -destination 'platform=macOS,arch=x86_64,variant=Mac Catalyst' -archivePath ${OUTPUT_DIR_PATH}/maccatalyst/FioriSwiftUICore.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme FioriSwiftUICore -configuration $CONFIGURATION -destination 'generic/platform=visionOS Simulator,name=Apple Vision Pro' ARCHS="arm64 x86_64" -archivePath ${OUTPUT_DIR_PATH}/xrsimulator/FioriSwiftUICore.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
xcodebuild archive -scheme FioriSwiftUICore -configuration $CONFIGURATION -destination 'generic/platform=visionOS' -archivePath ${OUTPUT_DIR_PATH}/xros/FioriSwiftUICore.xcarchive -derivedDataPath ${HOME}/Library/Developer/Xcode/ SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
# create FioriThemeManager.xcframework
xcodebuild -create-xcframework \
-framework ${OUTPUT_DIR_PATH}/iphonesimulator/FioriThemeManager.xcarchive/Products/Library/Frameworks/FioriThemeManager.framework \
-framework ${OUTPUT_DIR_PATH}/iphoneos/FioriThemeManager.xcarchive/Products/Library/Frameworks/FioriThemeManager.framework \
-framework ${OUTPUT_DIR_PATH}/maccatalyst/FioriThemeManager.xcarchive/Products/Library/Frameworks/FioriThemeManager.framework \
-framework ${OUTPUT_DIR_PATH}/xros/FioriThemeManager.xcarchive/Products/Library/Frameworks/FioriThemeManager.framework \
-framework ${OUTPUT_DIR_PATH}/xrsimulator/FioriThemeManager.xcarchive/Products/Library/Frameworks/FioriThemeManager.framework \
-framework ${OUTPUT_DIR_PATH}/watchos/FioriThemeManager.xcarchive/Products/Library/Frameworks/FioriThemeManager.framework \
-framework ${OUTPUT_DIR_PATH}/watchsimulator/FioriThemeManager.xcarchive/Products/Library/Frameworks/FioriThemeManager.framework \
-output ${OUTPUT_DIR_PATH}/FioriThemeManager.xcframework
# create FioriCharts.xcframework
xcodebuild -create-xcframework \
-framework ${OUTPUT_DIR_PATH}/iphonesimulator/FioriCharts.xcarchive/Products/Library/Frameworks/FioriCharts.framework \
-framework ${OUTPUT_DIR_PATH}/iphoneos/FioriCharts.xcarchive/Products/Library/Frameworks/FioriCharts.framework \
-framework ${OUTPUT_DIR_PATH}/maccatalyst/FioriCharts.xcarchive/Products/Library/Frameworks/FioriCharts.framework \
-output ${OUTPUT_DIR_PATH}/FioriCharts.xcframework
-framework ${OUTPUT_DIR_PATH}/iphonesimulator/FioriCharts.xcarchive/Products/Library/Frameworks/FioriCharts.framework \
-framework ${OUTPUT_DIR_PATH}/iphoneos/FioriCharts.xcarchive/Products/Library/Frameworks/FioriCharts.framework \
-framework ${OUTPUT_DIR_PATH}/maccatalyst/FioriCharts.xcarchive/Products/Library/Frameworks/FioriCharts.framework \
-framework ${OUTPUT_DIR_PATH}/xros/FioriCharts.xcarchive/Products/Library/Frameworks/FioriCharts.framework \
-framework ${OUTPUT_DIR_PATH}/xrsimulator/FioriCharts.xcarchive/Products/Library/Frameworks/FioriCharts.framework \
-output ${OUTPUT_DIR_PATH}/FioriCharts.xcframework
# create FioriSwiftUICore.xcframework
xcodebuild -create-xcframework \
-framework ${OUTPUT_DIR_PATH}/iphonesimulator/FioriSwiftUICore.xcarchive/Products/Library/Frameworks/FioriSwiftUICore.framework \
-framework ${OUTPUT_DIR_PATH}/iphoneos/FioriSwiftUICore.xcarchive/Products/Library/Frameworks/FioriSwiftUICore.framework \
-framework ${OUTPUT_DIR_PATH}/maccatalyst/FioriSwiftUICore.xcarchive/Products/Library/Frameworks/FioriSwiftUICore.framework \
-output ${OUTPUT_DIR_PATH}/FioriSwiftUICore.xcframework
-framework ${OUTPUT_DIR_PATH}/iphonesimulator/FioriSwiftUICore.xcarchive/Products/Library/Frameworks/FioriSwiftUICore.framework \
-framework ${OUTPUT_DIR_PATH}/iphoneos/FioriSwiftUICore.xcarchive/Products/Library/Frameworks/FioriSwiftUICore.framework \
-framework ${OUTPUT_DIR_PATH}/maccatalyst/FioriSwiftUICore.xcarchive/Products/Library/Frameworks/FioriSwiftUICore.framework \
-framework ${OUTPUT_DIR_PATH}/xros/FioriSwiftUICore.xcarchive/Products/Library/Frameworks/FioriSwiftUICore.framework \
-framework ${OUTPUT_DIR_PATH}/xrsimulator/FioriSwiftUICore.xcarchive/Products/Library/Frameworks/FioriSwiftUICore.framework \
-output ${OUTPUT_DIR_PATH}/FioriSwiftUICore.xcframework

0 comments on commit e3de493

Please sign in to comment.