Compare commits
1 commit
ai/forgejo
...
vision
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
db762b0e90 |
11 changed files with 147 additions and 198 deletions
59
.github/workflows/build-and-release.yaml
vendored
59
.github/workflows/build-and-release.yaml
vendored
|
|
@ -1,59 +0,0 @@
|
||||||
name: Build and Release
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_call:
|
|
||||||
inputs:
|
|
||||||
release-version:
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
draft-flag:
|
|
||||||
type: string
|
|
||||||
default: " "
|
|
||||||
secrets:
|
|
||||||
XCFRAMEWORK_SIGNING_TOKEN:
|
|
||||||
required: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: macos-15
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- name: Validate release version
|
|
||||||
run: |
|
|
||||||
version="${{ inputs.release-version }}"
|
|
||||||
major="${version%%.*}"
|
|
||||||
if [[ ! "$major" =~ ^[0-9]+$ ]] || (( major < 6 || major > 8 )); then
|
|
||||||
echo "::error::Capacitor $version is not supported by this repository. Starting with Capacitor 9 (see https://github.com/ionic-team/capacitor/pull/8588 PR), the iOS platform is a source-first Swift package built directly from the ionic-team/capacitor repository, so SPM distribution no longer happens here. This repository only releases major versions 6, 7, and 8."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
- run: |
|
|
||||||
if [[ "${{ inputs.release-version }}" =~ ^[67]\. ]]; then
|
|
||||||
sudo xcode-select --switch /Applications/Xcode_16.2.app
|
|
||||||
else
|
|
||||||
sudo xcode-select --switch /Applications/Xcode_26.0.app
|
|
||||||
fi
|
|
||||||
- uses: actions/checkout@v7
|
|
||||||
- name: Install dependencies
|
|
||||||
run: brew install ghr
|
|
||||||
- name: Check Simulators
|
|
||||||
run: xcrun simctl list > /dev/null
|
|
||||||
- name: Install Simulators
|
|
||||||
run: xcodebuild -downloadPlatform iOS
|
|
||||||
- name: Build Capacitor and Cordova
|
|
||||||
run: ./build-cap ${{ inputs.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 ${{ inputs.release-version }}
|
|
||||||
- name: Push manifest update
|
|
||||||
uses: EndBug/add-and-commit@v9
|
|
||||||
- name: Create Release
|
|
||||||
run: ghr -token ${{ secrets.GITHUB_TOKEN }} -name ${{ inputs.release-version }} ${{ inputs.draft-flag }} -replace ${{ inputs.release-version }} frameworks
|
|
||||||
21
.github/workflows/dispatch-release.yaml
vendored
21
.github/workflows/dispatch-release.yaml
vendored
|
|
@ -1,21 +0,0 @@
|
||||||
name: Dispatch Release
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
release-version:
|
|
||||||
description: The version to release
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
draft-flag:
|
|
||||||
description: "Create a Draft Release or Immediately Release"
|
|
||||||
type: string
|
|
||||||
default: " "
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
create-release:
|
|
||||||
uses: ./.github/workflows/build-and-release.yaml
|
|
||||||
with:
|
|
||||||
release-version: ${{ inputs.release-version }}
|
|
||||||
draft-flag: ${{ inputs.draft-flag }}
|
|
||||||
secrets: inherit
|
|
||||||
30
.github/workflows/pre-release.yml
vendored
30
.github/workflows/pre-release.yml
vendored
|
|
@ -6,17 +6,21 @@ on:
|
||||||
- "release/**"
|
- "release/**"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release-version:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: macos-14
|
||||||
outputs:
|
timeout-minutes: 30
|
||||||
release-version: ${{ steps.step1.outputs.release_version }}
|
|
||||||
steps:
|
steps:
|
||||||
- id: step1
|
- run: sudo xcode-select --switch /Applications/Xcode_15.1.app
|
||||||
run: echo "release_version=${GITHUB_REF#refs/*/*/}" >> $GITHUB_OUTPUT
|
- uses: actions/checkout@v4
|
||||||
create-pre-release:
|
- name: Install build dependencies
|
||||||
needs: release-version
|
run: |
|
||||||
uses: ./.github/workflows/build-and-release.yaml
|
gem install cocoapods xcpretty
|
||||||
with:
|
brew install ghr
|
||||||
release-version: ${{ needs.release-version.outputs.release-version }}
|
- name: Assign version to RELEASE_VERSION environment variable
|
||||||
draft-flag: -draft
|
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/*/}" >> $GITHUB_ENV
|
||||||
secrets: inherit
|
- name: Build Capacitor and Cordova
|
||||||
|
run: ./build-cap $RELEASE_VERSION
|
||||||
|
- name: Push manifest update
|
||||||
|
uses: EndBug/add-and-commit@v9
|
||||||
|
- name: Create Draft Release
|
||||||
|
run: ghr -token ${{ secrets.GITHUB_TOKEN }} -name ${{ env.RELEASE_VERSION }} -draft -replace ${{ env.RELEASE_VERSION }} frameworks
|
||||||
|
|
|
||||||
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -1,6 +1,5 @@
|
||||||
capacitor-checkout
|
capacitor-checkout
|
||||||
*.xcframework
|
|
||||||
*.zip
|
*.zip
|
||||||
.swiftpm
|
.swiftpm
|
||||||
frameworks
|
frameworks
|
||||||
.build
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
Capacitor/Cordova 8.5.2, unchanged binary artifacts and upstream checksums.
|
|
||||||
Imported once from Ionic; future builds use only git.kico-dev.de.
|
|
||||||
Original upstream revision: 0b6882e9a3288342aacf36348e5a94e4f1dd7b13.
|
|
||||||
Licence and notices are retained from upstream. MeeNow pins this commit.
|
|
||||||
|
|
@ -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://git.kico-dev.de/martin/capacitor-swift-pm/raw/commit/916218efd53e6e646c36bbfd71e8f06c1b643fbf/artifacts/Capacitor.xcframework.zip",
|
path: "frameworks/Capacitor.xcframework.zip"
|
||||||
checksum: "134c65a8bd30bfaa8ccb158d78142fa7231bf3f472e4a5d808c5fbed90fd4c75"
|
//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://git.kico-dev.de/martin/capacitor-swift-pm/raw/commit/916218efd53e6e646c36bbfd71e8f06c1b643fbf/artifacts/Cordova.xcframework.zip",
|
path: "frameworks/Cordova.xcframework.zip"
|
||||||
checksum: "57ff2c8f1e5dcd8d4379ac3cccde1407d81ccd575347dc2aff4f72272b8794a1"
|
//url: "https://github.com/ionic-team/capacitor-swift-pm/releases/download/vision/Cordova.xcframework.zip",
|
||||||
|
//checksum: "964c266e7b761630c2dc21ee1a6cb3861379b72ef068d0f7ec2b7e2baf994a4f"
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
# Swift Package Manager Support for Capacitor
|
# Experimental Swift Package Manager Support for Capacitor
|
||||||
|
|
||||||
This repo is for hosting binary xcframework releases of Capacitor and CapacitorCordova for SPM support.
|
This repo is for hosting binary xcframework releases of Capacitor and CapacitorCordova for experimental SPM support.
|
||||||
|
|
||||||
Only applies to Capacitor major versions 6, 7, and 8. Starting with Capacitor 9, the iOS platform is a source-first Swift package built directly from the [ionic-team/capacitor](https://github.com/ionic-team/capacitor) repository.
|
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
163
build-cap
163
build-cap
|
|
@ -1,54 +1,123 @@
|
||||||
#!/usr/bin/env bash -eoux pipefail
|
#!/bin/bash -eoux pipefail
|
||||||
|
|
||||||
build_simulator() {
|
build_capacitor_simulator() {
|
||||||
local SCHEME=$1
|
xcodebuild archive \
|
||||||
xcodebuild archive \
|
-scheme Capacitor \
|
||||||
-scheme $SCHEME \
|
-workspace Capacitor.xcworkspace \
|
||||||
-workspace Capacitor.xcworkspace \
|
-destination "generic/platform=iOS Simulator" \
|
||||||
-destination "generic/platform=iOS Simulator" \
|
-archivePath ./Build/iOS-Simulator \
|
||||||
-configuration Debug \
|
-configuration Release \
|
||||||
-archivePath ./Build/$SCHEME-iOS-Simulator \
|
SKIP_INSTALL=NO \
|
||||||
SKIP_INSTALL=NO \
|
BUILD_LIBRARY_FOR_DISTRIBUTION=YES
|
||||||
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
|
|
||||||
DEBUG_INFORMATION_FORMAT="dwarf-with-dsym"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
build_ios() {
|
build_capacitor_ios() {
|
||||||
local SCHEME=$1
|
xcodebuild archive \
|
||||||
xcodebuild archive \
|
-scheme Capacitor \
|
||||||
-scheme $SCHEME \
|
-workspace Capacitor.xcworkspace \
|
||||||
-workspace Capacitor.xcworkspace \
|
-destination "generic/platform=iOS" \
|
||||||
-destination "generic/platform=iOS" \
|
-archivePath ./Build/iOS \
|
||||||
-archivePath ./Build/$SCHEME-iOS \
|
SKIP_INSTALL=NO \
|
||||||
SKIP_INSTALL=NO \
|
SWIFT_SERIALIZE_DEBUGGING_OPTIONS=NO \
|
||||||
SWIFT_SERIALIZE_DEBUGGING_OPTIONS=NO \
|
DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" \
|
||||||
DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" \
|
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_simulator Capacitor
|
build_capacitor_simulator
|
||||||
build_simulator Cordova
|
build_capacitor_ios
|
||||||
|
build_capacitor_vision_simulator
|
||||||
|
build_capacitor_visionos
|
||||||
|
|
||||||
build_ios Capacitor
|
rm -rf ./Build/iOS-Simulator.xcarchive/Products/Library/Frameworks/Capacitor.framework/Frameworks
|
||||||
build_ios Cordova
|
rm -rf ./Build/iOS.xcarchive/Products/Library/Frameworks/Capacitor.framework/Frameworks
|
||||||
|
|
||||||
rm -rf ./Build/Capacitor-iOS-Simulator.xcarchive/Products/Library/Frameworks/Capacitor.framework/Frameworks
|
rm -rf ./Build/visionOS-Simulator.xcarchive/Products/Library/Frameworks/Capacitor.framework/Frameworks
|
||||||
rm -rf ./Build/Capacitor-iOS.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/Capacitor-iOS-Simulator.xcarchive/Products/Library/Frameworks/Capacitor.framework \
|
-framework ./Build/iOS-Simulator.xcarchive/Products/Library/Frameworks/Capacitor.framework \
|
||||||
-debug-symbols $PWD/Build/Capacitor-iOS-Simulator.xcarchive/dSYMs/Capacitor.framework.dSYM \
|
-debug-symbols $PWD/Build/iOS-Simulator.xcarchive/dSYMs/Capacitor.framework.dSYM \
|
||||||
-framework ./Build/Capacitor-iOS.xcarchive/Products/Library/Frameworks/Capacitor.framework \
|
-framework ./Build/iOS.xcarchive/Products/Library/Frameworks/Capacitor.framework \
|
||||||
-debug-symbols $PWD/Build/Capacitor-iOS.xcarchive/dSYMs/Capacitor.framework.dSYM \
|
-debug-symbols $PWD/Build/iOS.xcarchive/dSYMs/Capacitor.framework.dSYM \
|
||||||
-output Capacitor.xcframework
|
-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
|
||||||
|
|
||||||
xcodebuild -create-xcframework \
|
xcodebuild -create-xcframework \
|
||||||
-framework ./Build/Cordova-iOS-Simulator.xcarchive/Products/Library/Frameworks/Cordova.framework \
|
-framework ./Build/iOS-Simulator.xcarchive/Products/Library/Frameworks/Cordova.framework \
|
||||||
-debug-symbols $PWD/Build/Cordova-iOS-Simulator.xcarchive/dSYMs/Cordova.framework.dSYM \
|
-debug-symbols $PWD/Build/iOS-Simulator.xcarchive/dSYMs/Cordova.framework.dSYM \
|
||||||
-framework ./Build/Cordova-iOS.xcarchive/Products/Library/Frameworks/Cordova.framework \
|
-framework ./Build/iOS.xcarchive/Products/Library/Frameworks/Cordova.framework \
|
||||||
-debug-symbols $PWD/Build/Cordova-iOS.xcarchive/dSYMs/Cordova.framework.dSYM \
|
-debug-symbols $PWD/Build/iOS.xcarchive/dSYMs/Cordova.framework.dSYM \
|
||||||
-output Cordova.xcframework
|
-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
|
||||||
|
|
||||||
|
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.9
|
||||||
|
|
||||||
|
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
|
git clone https://github.com/ionic-team/capacitor capacitor-checkout
|
||||||
|
|
@ -57,5 +126,13 @@ git checkout $1
|
||||||
|
|
||||||
create_xcframeworks
|
create_xcframeworks
|
||||||
|
|
||||||
mv Capacitor.xcframework ../../../
|
cap_url="https://github.com/ionic-team/capacitor-swift-pm/releases/download/$1/Capacitor.xcframework.zip"
|
||||||
mv Cordova.xcframework ../../../
|
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
|
||||||
|
|
|
||||||
47
package-cap
47
package-cap
|
|
@ -1,47 +0,0 @@
|
||||||
#!/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 <<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
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
|
||||||
Loading…
Reference in a new issue