diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 4a4dcca..8591455 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -20,6 +20,18 @@ jobs: run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/*/}" >> $GITHUB_ENV - name: Build Capacitor and Cordova run: ./build-cap $RELEASE_VERSION + - name: Sign Capacitor xcframework + uses: ionic-team/sign-xcframework@main + with: + cert-token: ${{ secrets.XCFRAMEWORK_SIGNING_TOKEN }} + xcframework-path: Capacitor.xcframework + - name: Sign Cordova xcframework + uses: ionic-team/sign-xcframework@main + with: + cert-token: ${{ secrets.XCFRAMEWORK_SIGNING_TOKEN }} + xcframework-path: Cordova.xcframework + - name: Package Capacitor and Cordova + run: ./package-cap $RELEASE_VERSION - name: Push manifest update uses: EndBug/add-and-commit@v9 - name: Create Draft Release diff --git a/.gitignore b/.gitignore index 8dd5b10..d95263c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ capacitor-checkout +*.xcframework *.zip .swiftpm frameworks diff --git a/Package.swift b/Package.swift index 962881f..01cc7f7 100644 --- a/Package.swift +++ b/Package.swift @@ -18,13 +18,13 @@ let package = Package( targets: [ .binaryTarget( name: "Capacitor", - url: "https://github.com/ionic-team/capacitor-swift-pm/releases/download/6.0.0-rc.0/Capacitor.xcframework.zip", - checksum: "40931648c794e29ade96907e7e25747cac89ad6dc0841263be35c69108732a06" + url: "https://github.com/ionic-team/capacitor-swift-pm/releases/download/5.7.4/Capacitor.xcframework.zip", + checksum: "3fe57f27e8b578518d0e3bd3ef08046297ff71a0af9610f16c4a7e6bbb5dc033" ), .binaryTarget( name: "Cordova", - url: "https://github.com/ionic-team/capacitor-swift-pm/releases/download/6.0.0-rc.0/Cordova.xcframework.zip", - checksum: "0f3eed00c80e54a50eb10c0c2c65c7f09ed0a3d4bddd2b95537f32cc3d41186f" + url: "https://github.com/ionic-team/capacitor-swift-pm/releases/download/5.7.4/Cordova.xcframework.zip", + checksum: "c5638dab59595073d6ca72a8f0faf844d4097a2c873efe07b2781bc92c6057c3" ) ] ) diff --git a/build-cap b/build-cap index 3598e49..f7091ef 100755 --- a/build-cap +++ b/build-cap @@ -1,86 +1,49 @@ -#!/bin/bash -eoux pipefail +#!/usr/bin/env bash -eoux pipefail build_capacitor_simulator() { - xcodebuild archive \ - -scheme Capacitor \ - -workspace Capacitor.xcworkspace \ - -destination "generic/platform=iOS Simulator" \ - -archivePath ./Build/iOS-Simulator \ - -configuration Release \ - SKIP_INSTALL=NO \ - BUILD_LIBRARY_FOR_DISTRIBUTION=YES + xcodebuild archive \ + -scheme Capacitor \ + -workspace Capacitor.xcworkspace \ + -destination "generic/platform=iOS Simulator" \ + -archivePath ./Build/iOS-Simulator \ + -configuration Release \ + SKIP_INSTALL=NO \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES } build_capacitor_ios() { - xcodebuild archive \ - -scheme Capacitor \ - -workspace Capacitor.xcworkspace \ - -destination "generic/platform=iOS" \ - -archivePath ./Build/iOS \ - SKIP_INSTALL=NO \ - SWIFT_SERIALIZE_DEBUGGING_OPTIONS=NO \ - DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" \ - BUILD_LIBRARY_FOR_DISTRIBUTION=YES + xcodebuild archive \ + -scheme Capacitor \ + -workspace Capacitor.xcworkspace \ + -destination "generic/platform=iOS" \ + -archivePath ./Build/iOS \ + SKIP_INSTALL=NO \ + SWIFT_SERIALIZE_DEBUGGING_OPTIONS=NO \ + DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES } create_xcframeworks() { - build_capacitor_simulator - build_capacitor_ios + build_capacitor_simulator + build_capacitor_ios - 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-Simulator.xcarchive/Products/Library/Frameworks/Capacitor.framework/Frameworks + rm -rf ./Build/iOS.xcarchive/Products/Library/Frameworks/Capacitor.framework/Frameworks - xcodebuild -create-xcframework \ - -framework ./Build/iOS-Simulator.xcarchive/Products/Library/Frameworks/Capacitor.framework \ - -debug-symbols $PWD/Build/iOS-Simulator.xcarchive/dSYMs/Capacitor.framework.dSYM \ - -framework ./Build/iOS.xcarchive/Products/Library/Frameworks/Capacitor.framework \ - -debug-symbols $PWD/Build/iOS.xcarchive/dSYMs/Capacitor.framework.dSYM \ - -output Capacitor.xcframework + xcodebuild -create-xcframework \ + -framework ./Build/iOS-Simulator.xcarchive/Products/Library/Frameworks/Capacitor.framework \ + -debug-symbols $PWD/Build/iOS-Simulator.xcarchive/dSYMs/Capacitor.framework.dSYM \ + -framework ./Build/iOS.xcarchive/Products/Library/Frameworks/Capacitor.framework \ + -debug-symbols $PWD/Build/iOS.xcarchive/dSYMs/Capacitor.framework.dSYM \ + -output Capacitor.xcframework - xcodebuild -create-xcframework \ - -framework ./Build/iOS-Simulator.xcarchive/Products/Library/Frameworks/Cordova.framework \ - -debug-symbols $PWD/Build/iOS-Simulator.xcarchive/dSYMs/Cordova.framework.dSYM \ - -framework ./Build/iOS.xcarchive/Products/Library/Frameworks/Cordova.framework \ - -debug-symbols $PWD/Build/iOS.xcarchive/dSYMs/Cordova.framework.dSYM \ - -output Cordova.xcframework + xcodebuild -create-xcframework \ + -framework ./Build/iOS-Simulator.xcarchive/Products/Library/Frameworks/Cordova.framework \ + -debug-symbols $PWD/Build/iOS-Simulator.xcarchive/dSYMs/Cordova.framework.dSYM \ + -framework ./Build/iOS.xcarchive/Products/Library/Frameworks/Cordova.framework \ + -debug-symbols $PWD/Build/iOS.xcarchive/dSYMs/Cordova.framework.dSYM \ + -output Cordova.xcframework - zip -r Capacitor.xcframework.zip Capacitor.xcframework - zip -r Cordova.xcframework.zip Cordova.xcframework -} - -write_package_file() { - cat << EOF > Package.swift -// swift-tools-version:5.3 - -import PackageDescription - -let package = Package( - name: "capacitor-swift-pm", - products: [ - .library( - name: "Capacitor", - targets: ["Capacitor"] - ), - .library( - name: "Cordova", - targets: ["Cordova"] - ) - ], - dependencies: [], - targets: [ - .binaryTarget( - name: "Capacitor", - url: "$1", - checksum: "$2" - ), - .binaryTarget( - name: "Cordova", - url: "$3", - checksum: "$4" - ) - ] -) -EOF } git clone https://github.com/ionic-team/capacitor capacitor-checkout @@ -89,14 +52,5 @@ git checkout $1 create_xcframeworks -cap_url="https://github.com/ionic-team/capacitor-swift-pm/releases/download/$1/Capacitor.xcframework.zip" -cap_sha=$(shasum -a 256 Capacitor.xcframework.zip | sed 's/ /\n/g' | head -n1 | xargs echo -n) -cap_cordova_url="https://github.com/ionic-team/capacitor-swift-pm/releases/download/$1/Cordova.xcframework.zip" -cap_cordova_sha=$(shasum -a 256 Cordova.xcframework.zip | sed 's/ /\n/g' | head -n1 | xargs echo -n) - -cd ../../../ -mkdir frameworks -mv capacitor-checkout/ios/Capacitor/{Capacitor,Cordova}.xcframework.zip frameworks - -write_package_file $cap_url $cap_sha $cap_cordova_url $cap_cordova_sha - +mv Capacitor.xcframework ../../../ +mv Cordova.xcframework ../../../ diff --git a/package-cap b/package-cap new file mode 100755 index 0000000..3bac560 --- /dev/null +++ b/package-cap @@ -0,0 +1,47 @@ +#!/usr/bin/env bash -eoux pipefail + +mkdir frameworks +zip -r frameworks/Capacitor.xcframework.zip Capacitor.xcframework +zip -r frameworks/Cordova.xcframework.zip Cordova.xcframework + +write_package_file() { + cat <Package.swift +// swift-tools-version:5.3 + +import PackageDescription + +let package = Package( + name: "capacitor-swift-pm", + products: [ + .library( + name: "Capacitor", + targets: ["Capacitor"] + ), + .library( + name: "Cordova", + targets: ["Cordova"] + ) + ], + dependencies: [], + targets: [ + .binaryTarget( + name: "Capacitor", + url: "$1", + checksum: "$2" + ), + .binaryTarget( + name: "Cordova", + url: "$3", + checksum: "$4" + ) + ] +) +EOF +} + +cap_url="https://github.com/ionic-team/capacitor-swift-pm/releases/download/$1/Capacitor.xcframework.zip" +cap_sha=$(shasum -a 256 frameworks/Capacitor.xcframework.zip | sed 's/ /\n/g' | head -n1 | xargs echo -n) +cap_cordova_url="https://github.com/ionic-team/capacitor-swift-pm/releases/download/$1/Cordova.xcframework.zip" +cap_cordova_sha=$(shasum -a 256 frameworks/Cordova.xcframework.zip | sed 's/ /\n/g' | head -n1 | xargs echo -n) + +write_package_file $cap_url $cap_sha $cap_cordova_url $cap_cordova_sha