correctly builds visionOS frameworks - Capacitor needs to be set with 'visionOS' as the base SDK in the xcode project for this to work correctly

This commit is contained in:
Dan Giralte 2024-03-01 09:04:31 -06:00
parent fe3c5b63e7
commit db762b0e90
2 changed files with 47 additions and 9 deletions

View file

@ -1,4 +1,4 @@
// swift-tools-version:5.3 // swift-tools-version:5.9
import PackageDescription import PackageDescription
@ -18,13 +18,15 @@ let package = Package(
targets: [ targets: [
.binaryTarget( .binaryTarget(
name: "Capacitor", name: "Capacitor",
url: "https://github.com/ionic-team/capacitor-swift-pm/releases/download/6.0.0-rc.0/Capacitor.xcframework.zip", path: "frameworks/Capacitor.xcframework.zip"
checksum: "40931648c794e29ade96907e7e25747cac89ad6dc0841263be35c69108732a06" //url: "https://github.com/ionic-team/capacitor-swift-pm/releases/download/vision/Capacitor.xcframework.zip",
//checksum: "498e6b0ac4bd90537ea1983dc4541b5c08990f1d06ac5522e866284947b7d6e7"
), ),
.binaryTarget( .binaryTarget(
name: "Cordova", name: "Cordova",
url: "https://github.com/ionic-team/capacitor-swift-pm/releases/download/6.0.0-rc.0/Cordova.xcframework.zip", path: "frameworks/Cordova.xcframework.zip"
checksum: "0f3eed00c80e54a50eb10c0c2c65c7f09ed0a3d4bddd2b95537f32cc3d41186f" //url: "https://github.com/ionic-team/capacitor-swift-pm/releases/download/vision/Cordova.xcframework.zip",
//checksum: "964c266e7b761630c2dc21ee1a6cb3861379b72ef068d0f7ec2b7e2baf994a4f"
) )
] ]
) )

View file

@ -23,18 +23,51 @@ build_capacitor_ios() {
BUILD_LIBRARY_FOR_DISTRIBUTION=YES BUILD_LIBRARY_FOR_DISTRIBUTION=YES
} }
build_capacitor_vision_simulator() {
xcodebuild archive \
-scheme Capacitor \
-workspace Capacitor.xcworkspace \
-destination "generic/platform=visionOS Simulator" \
-archivePath ./Build/visionOS-Simulator \
-configuration Release \
SKIP_INSTALL=NO \
BUILD_LIBRARY_FOR_DISTRIBUTION=YES
}
build_capacitor_visionos() {
xcodebuild archive \
-scheme Capacitor \
-workspace Capacitor.xcworkspace \
-sdk xros \
-destination "generic/platform=visionOS" \
-archivePath ./Build/visionOS \
SKIP_INSTALL=NO \
SWIFT_SERIALIZE_DEBUGGING_OPTIONS=NO \
DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" \
BUILD_LIBRARY_FOR_DISTRIBUTION=YES
}
create_xcframeworks() { create_xcframeworks() {
build_capacitor_simulator build_capacitor_simulator
build_capacitor_ios build_capacitor_ios
build_capacitor_vision_simulator
build_capacitor_visionos
rm -rf ./Build/iOS-Simulator.xcarchive/Products/Library/Frameworks/Capacitor.framework/Frameworks rm -rf ./Build/iOS-Simulator.xcarchive/Products/Library/Frameworks/Capacitor.framework/Frameworks
rm -rf ./Build/iOS.xcarchive/Products/Library/Frameworks/Capacitor.framework/Frameworks rm -rf ./Build/iOS.xcarchive/Products/Library/Frameworks/Capacitor.framework/Frameworks
rm -rf ./Build/visionOS-Simulator.xcarchive/Products/Library/Frameworks/Capacitor.framework/Frameworks
rm -rf ./Build/visionOS.xcarchive/Products/Library/Frameworks/Capacitor.framework/Frameworks
xcodebuild -create-xcframework \ xcodebuild -create-xcframework \
-framework ./Build/iOS-Simulator.xcarchive/Products/Library/Frameworks/Capacitor.framework \ -framework ./Build/iOS-Simulator.xcarchive/Products/Library/Frameworks/Capacitor.framework \
-debug-symbols $PWD/Build/iOS-Simulator.xcarchive/dSYMs/Capacitor.framework.dSYM \ -debug-symbols $PWD/Build/iOS-Simulator.xcarchive/dSYMs/Capacitor.framework.dSYM \
-framework ./Build/iOS.xcarchive/Products/Library/Frameworks/Capacitor.framework \ -framework ./Build/iOS.xcarchive/Products/Library/Frameworks/Capacitor.framework \
-debug-symbols $PWD/Build/iOS.xcarchive/dSYMs/Capacitor.framework.dSYM \ -debug-symbols $PWD/Build/iOS.xcarchive/dSYMs/Capacitor.framework.dSYM \
-framework ./Build/visionOS-Simulator.xcarchive/Products/Library/Frameworks/Capacitor.framework \
-debug-symbols $PWD/Build/visionOS-Simulator.xcarchive/dSYMs/Capacitor.framework.dSYM \
-framework ./Build/visionOS.xcarchive/Products/Library/Frameworks/Capacitor.framework \
-debug-symbols $PWD/Build/visionOS.xcarchive/dSYMs/Capacitor.framework.dSYM \
-output Capacitor.xcframework -output Capacitor.xcframework
xcodebuild -create-xcframework \ xcodebuild -create-xcframework \
@ -42,6 +75,10 @@ create_xcframeworks() {
-debug-symbols $PWD/Build/iOS-Simulator.xcarchive/dSYMs/Cordova.framework.dSYM \ -debug-symbols $PWD/Build/iOS-Simulator.xcarchive/dSYMs/Cordova.framework.dSYM \
-framework ./Build/iOS.xcarchive/Products/Library/Frameworks/Cordova.framework \ -framework ./Build/iOS.xcarchive/Products/Library/Frameworks/Cordova.framework \
-debug-symbols $PWD/Build/iOS.xcarchive/dSYMs/Cordova.framework.dSYM \ -debug-symbols $PWD/Build/iOS.xcarchive/dSYMs/Cordova.framework.dSYM \
-framework ./Build/visionOS-Simulator.xcarchive/Products/Library/Frameworks/Cordova.framework \
-debug-symbols $PWD/Build/visionOS-Simulator.xcarchive/dSYMs/Cordova.framework.dSYM \
-framework ./Build/visionOS.xcarchive/Products/Library/Frameworks/Cordova.framework \
-debug-symbols $PWD/Build/visionOS.xcarchive/dSYMs/Cordova.framework.dSYM \
-output Cordova.xcframework -output Cordova.xcframework
zip -r Capacitor.xcframework.zip Capacitor.xcframework zip -r Capacitor.xcframework.zip Capacitor.xcframework
@ -50,7 +87,7 @@ create_xcframeworks() {
write_package_file() { write_package_file() {
cat << EOF > Package.swift cat << EOF > Package.swift
// swift-tools-version:5.3 // swift-tools-version:5.9
import PackageDescription import PackageDescription
@ -99,4 +136,3 @@ mkdir frameworks
mv capacitor-checkout/ios/Capacitor/{Capacitor,Cordova}.xcframework.zip frameworks mv capacitor-checkout/ios/Capacitor/{Capacitor,Cordova}.xcframework.zip frameworks
write_package_file $cap_url $cap_sha $cap_cordova_url $cap_cordova_sha write_package_file $cap_url $cap_sha $cap_cordova_url $cap_cordova_sha