Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
3d8c595
starting on turning capacitor ios into a swift package
theproducer Aug 10, 2026
1c748f1
Starting on converting Objective C files to Swift
theproducer Aug 10, 2026
fd83796
Remove CapacitorObjC and CapacitorC targets
theproducer Aug 17, 2026
35dae30
Move more CapacitorCordova sources under ios/Sources for SPM
theproducer Aug 17, 2026
78dd7d9
Move iOS test suite into ios/Tests for SPM, drop Xcode project
theproducer Aug 17, 2026
feec12f
add missing imports, resources, and podspec paths
theproducer Aug 17, 2026
19d9b26
Split CapacitorCordova into separate Cordova and CapacitorCordova SPM…
theproducer Aug 17, 2026
c2e09c8
Move Package.swift to repo root and add explicit target paths
theproducer Aug 17, 2026
90b4fae
Expose Cordova as a separate SPM library product
theproducer Aug 17, 2026
d51f9ea
updating cli to support new spm template
theproducer Aug 18, 2026
15955b8
Merge branch 'next' into feature/source-spm
theproducer Aug 18, 2026
7528a5f
Use Bundle.module for native-bridge.js when built via SPM
theproducer Aug 18, 2026
40abeed
Fix native-bridge.js lookup path for SPM builds
theproducer Aug 18, 2026
0f64694
Merge branch 'next' into feature/source-spm
theproducer Aug 18, 2026
ffb389e
Point SPM package dependency to next branch instead of feature/source…
theproducer Aug 19, 2026
6090548
fixing tests
theproducer Aug 19, 2026
5cbe5a8
fmt
theproducer Aug 19, 2026
9a3f9ff
Update native-bridge.js path for SPM directory layout
theproducer Aug 19, 2026
e00d310
Update swiftlint excluded paths for restructured iOS test dirs
theproducer Aug 20, 2026
3c3abb0
Rename class_ to classRef in UIStatusBarManager swizzle
theproducer Aug 20, 2026
ffb8fa9
Update iOS CI to macos-26-intel runner and Xcode 26.6
theproducer Aug 20, 2026
35c4b20
Update iOS simulator OS version to 26.5 in test script
theproducer Aug 20, 2026
5b02e3b
Switch iOS CI runner from macos-26-intel to macos-26
theproducer Aug 24, 2026
9305c70
Starting on adding UIScene support
theproducer Jun 12, 2026
9bcf38b
use UIScene lifecycle notifications
theproducer Jun 12, 2026
383dce1
scene-aware openURL and universal link notifications
theproducer Jun 15, 2026
6a26a6c
remove TmpViewController
theproducer Jun 15, 2026
2e14e5d
adding CapacitorView
theproducer Jun 22, 2026
d9cf1e1
updating templates for UIScene changes
theproducer Jun 22, 2026
f5dbb1f
remove CapacitorView from core
theproducer Jun 22, 2026
b3a1fe0
Add SwiftUI App-struct support to SceneDelegateProxy and bridge
theproducer Jun 22, 2026
61ce0a3
Release 8.4.1
Jun 19, 2026
e59bbef
fix(ios): mirror deep-link URL to ApplicationDelegateProxy for getLau…
ItsChaceD Jun 29, 2026
1644881
fmt
theproducer Jul 22, 2026
4522cdd
add SceneDelegate to TestsHostApp
theproducer Jul 22, 2026
fa64ab8
fmt
theproducer Jul 22, 2026
12222a4
Initialize window with CAPBridgeViewController in SceneDelegate
theproducer Jul 27, 2026
b6be36d
Defer scene connect URL/activity delivery until plugins load
theproducer Jul 27, 2026
eba574d
Remove Phase 2 multi-window TODO stubs from SceneDelegateProxy
theproducer Jul 27, 2026
fc93f59
Adding SwiftUI components to pods template
theproducer Jun 22, 2026
48e01aa
Add AppDelegate lifecycle integration to iOS pods template for legacy…
theproducer Aug 7, 2026
960d6bd
Adding SwiftUI to SPM template
theproducer Aug 7, 2026
5a44888
Add helper to find the active foreground UIWindowScene
theproducer Aug 25, 2026
e6cf857
Remove unused Capacitor-Bridging-Header.h
theproducer Aug 25, 2026
c2c1935
Merge branch 'feature/source-spm' into RMET-5226
theproducer Aug 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ cli/assets
dist
types
android/capacitor/src/main/assets/native-bridge.js
ios/Capacitor/Capacitor/assets/native-bridge.js
ios/Sources/Capacitor/assets/native-bridge.js
ios/Frameworks/Capacitor.xcframework/ios-arm64_x86_64-simulator/Capacitor.framework/native-bridge.js
ios/Frameworks/Capacitor.xcframework/ios-arm64/Capacitor.framework/native-bridge.js
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,15 +89,15 @@ jobs:
- run: npm test
working-directory: ./core
test-ios:
runs-on: macos-15
runs-on: macos-26
timeout-minutes: 30
needs:
- setup
- lint
strategy:
matrix:
xcode:
- /Applications/Xcode_26.0.app
- /Applications/Xcode_26.6.app
steps:
- run: sudo xcode-select --switch ${{ matrix.xcode }}
- run: xcrun simctl list > /dev/null
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Pods/
Podfile.lock
Build/*
build/
.build
Index/
.*.sw*
android-template.iml
Expand Down
2 changes: 1 addition & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ core/types
cli/assets
dist
android/capacitor/src/main/assets/native-bridge.js
ios/Capacitor/Capacitor/assets/native-bridge.js
ios/Sources/Capacitor/assets/native-bridge.js
ios/Frameworks/Capacitor.xcframework/ios-arm64_x86_64-simulator/Capacitor.framework/native-bridge.js
ios/Frameworks/Capacitor.xcframework/ios-arm64/Capacitor.framework/native-bridge.js
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

# [9.0.0-alpha.6](https://github.com/ionic-team/capacitor/compare/9.0.0-alpha.5...9.0.0-alpha.6) (2026-07-14)
## [8.4.1](https://github.com/ionic-team/capacitor/compare/8.4.0...8.4.1) (2026-06-19)

### Bug Fixes

- **cli:** make SPM dependency patch work on prereleases ([#8508](https://github.com/ionic-team/capacitor/issues/8508)) ([6048e90](https://github.com/ionic-team/capacitor/commit/6048e90171afa0229a3c25b52a23c377c6bb804c))
- **cli:** patch Capacitor SPM dependency version in plugins ([#8492](https://github.com/ionic-team/capacitor/issues/8492)) ([28bb2c6](https://github.com/ionic-team/capacitor/commit/28bb2c687069dfdd6aa7abc866004a1c6388d103))

# [8.4.0](https://github.com/ionic-team/capacitor/compare/8.3.4...8.4.0) (2026-06-02)

### Bug Fixes

Expand Down
62 changes: 62 additions & 0 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
// swift-tools-version: 6.3
import PackageDescription

let package = Package(
name: "Capacitor",
platforms: [.iOS(.v16)],
products: [
.library(
name: "Capacitor",
targets: ["Capacitor"]
),
.library(
name: "Cordova",
targets: ["Cordova"]
),
.library(
name: "CapacitorCordova",
targets: ["Cordova", "CapacitorCordova"]
)
],
targets: [
.target(
name: "Capacitor",
path: "ios/Sources/Capacitor",
resources: [.copy("assets")],
swiftSettings: [
.swiftLanguageMode(.v5)
],

),
.target(
name: "Cordova",
path: "ios/Sources/Cordova",
publicHeadersPath: "include",
cSettings: [
.headerSearchPath("include"),
],
linkerSettings: [
.linkedFramework("UIKit"),
.linkedFramework("WebKit"),
.linkedFramework("MobileCoreServices"),
.linkedFramework("CFNetwork")
]
),
.target(
name: "CapacitorCordova",
dependencies: ["Capacitor", "Cordova"],
path: "ios/Sources/CapacitorCordova",
),
.testTarget(
name: "CapacitorTests",
dependencies: [
"Capacitor"
],
path: "ios/Tests/CapacitorTests",
resources: [
.copy("Resources/configurations")
]
)
],
swiftLanguageModes: [.v5]
)
4 changes: 4 additions & 0 deletions android/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline

# [9.0.0-alpha.3](https://github.com/ionic-team/capacitor/compare/8.4.0...9.0.0-alpha.3) (2026-06-02)

## [8.4.1](https://github.com/ionic-team/capacitor/compare/8.4.0...8.4.1) (2026-06-19)

**Note:** Version bump only for package @capacitor/android

# [8.4.0](https://github.com/ionic-team/capacitor/compare/8.3.4...8.4.0) (2026-06-02)

### Bug Fixes
Expand Down
7 changes: 6 additions & 1 deletion cli/src/ios/update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,18 @@ async function updatePluginFiles(config: Config, plugins: Plugin[], deployment:
await Promise.all(
validSPMPackages.map(async (plugin) => {
const iosPlatformVersion = await getCapacitorPackageVersion(config, config.ios.name);
const majorCapVersion = major(iosPlatformVersion);
if (majorCapVersion >= 9) {
// Capacitor 9+ uses a branch-based dependency, so there's no version to reconcile.
return;
}

const packageSwiftPath = join(plugin.rootPath, 'Package.swift');
let content = await readFile(packageSwiftPath, { encoding: 'utf-8' });
const regex = new RegExp(
'url:\\s*"https://github.com/ionic-team/capacitor-swift-pm\\.git",\\s*from:\\s*"([^"]+)"',
);
const version = content.match(regex)?.[1];
const majorCapVersion = major(iosPlatformVersion);
if (version && major(version) != majorCapVersion) {
const preCapVersion = prerelease(iosPlatformVersion);
const forceVersion = preCapVersion ? iosPlatformVersion : `${majorCapVersion}.0.0`;
Expand Down
27 changes: 18 additions & 9 deletions cli/src/util/cordova-ios.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { copy, readFile, writeFile, remove } from 'fs-extra';
import { join } from 'path';
import { major } from 'semver';

import { getCapacitorPackageVersion } from '../common';
import { needsStaticPod } from '../cordova';
Expand Down Expand Up @@ -353,18 +354,26 @@ export async function generateCordovaPackageFile(p: Plugin, config: Config): Pro
publicHeadersPath: "."`;
}

const useSourceSPM = major(iosPlatformVersion) >= 9;
const capacitorPackageName = useSourceSPM ? 'capacitor' : 'capacitor-swift-pm';
const capacitorPackageUrl = useSourceSPM
? 'https://github.com/ionic-team/capacitor'
: 'https://github.com/ionic-team/capacitor-swift-pm.git';
const capacitorPackageVersionSuffix = useSourceSPM
? ` branch: "feature/source-spm"`
: ` from: "${iosPlatformVersion}"`;

const platformTag = getPluginPlatform(p, platform);

if (platformTag.$?.package) {
const packageSwiftPath = join(p.rootPath, 'Package.swift');
let content = await readFile(packageSwiftPath, { encoding: 'utf-8' });
content = content.replace(`apache`, `ionic-team`).replaceAll(`cordova-ios`, `capacitor-swift-pm`);
content = setAllStringIn(
content,
`url: "https://github.com/ionic-team/capacitor-swift-pm.git",`,
`)`,
` from: "${iosPlatformVersion}"`,
);
content = content.replace(`apache`, `ionic-team`);
// The source repo is referenced as "cordova-ios.git" in URLs; source-SPM's package has no .git suffix.
content = useSourceSPM
? content.replaceAll(`cordova-ios.git`, capacitorPackageName).replaceAll(`cordova-ios`, capacitorPackageName)
: content.replaceAll(`cordova-ios`, capacitorPackageName);
content = setAllStringIn(content, `url: "${capacitorPackageUrl}",`, `)`, capacitorPackageVersionSuffix);
await writeFile(packageSwiftPath, content);
} else {
const content = `// swift-tools-version: 5.9
Expand All @@ -381,13 +390,13 @@ let package = Package(
)
],
dependencies: [
.package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", from: "${iosPlatformVersion}")
.package(url: "${capacitorPackageUrl}",${capacitorPackageVersionSuffix})
],
targets: [
.target(
name: "${p.name}",
dependencies: [
.product(name: "Cordova", package: "capacitor-swift-pm")
.product(name: "Cordova", package: "${capacitorPackageName}")
],
path: "."${headersText}
)
Expand Down
14 changes: 10 additions & 4 deletions cli/src/util/spm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { tmpdir } from 'os';
import { join, relative, resolve } from 'path';
import type { PlistObject } from 'plist';
import { build, parse } from 'plist';
import { major } from 'semver';
import { extract } from 'tar';

import { getCapacitorPackageVersion } from '../common';
Expand Down Expand Up @@ -105,7 +106,12 @@ export async function generatePackageText(config: Config, plugins: Plugin[]): Pr
const enableCordova = cordovaPlugins.length > 0;
const packageTraits = config.app.extConfig.experimental?.ios?.spm?.packageTraits ?? {};
const packageOptions = config.app.extConfig.experimental?.ios?.spm?.packageOptions ?? {};
const swiftToolsVersion = config.app.extConfig.experimental?.ios?.spm?.swiftToolsVersion ?? '5.9';
const swiftToolsVersion = config.app.extConfig.experimental?.ios?.spm?.swiftToolsVersion ?? '6.3';
const useSourceSPM = major(iosPlatformVersion) >= 9;
const capacitorPackageName = useSourceSPM ? 'capacitor' : 'capacitor-swift-pm';
const capacitorPackageDependency = useSourceSPM
? `.package(url: "https://github.com/ionic-team/capacitor", branch: "next")`
: `.package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", exact: "${iosPlatformVersion}")`;

let packageSwiftText = `// swift-tools-version: ${swiftToolsVersion}
import PackageDescription
Expand All @@ -120,7 +126,7 @@ let package = Package(
targets: ["CapApp-SPM"])
],
dependencies: [
.package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", exact: "${iosPlatformVersion}")`;
${capacitorPackageDependency}`;

for (const plugin of plugins) {
if (getPluginType(plugin, config.ios.name) === PluginType.Cordova) {
Expand Down Expand Up @@ -165,10 +171,10 @@ let package = Package(
.target(
name: "CapApp-SPM",
dependencies: [
.product(name: "Capacitor", package: "capacitor-swift-pm")`;
.product(name: "Capacitor", package: "${capacitorPackageName}")`;

if (enableCordova) {
packageSwiftText += `,\n .product(name: "Cordova", package: "capacitor-swift-pm")`;
packageSwiftText += `,\n .product(name: "Cordova", package: "${capacitorPackageName}")`;
}

for (const plugin of plugins) {
Expand Down
2 changes: 1 addition & 1 deletion core/rollup.bridge.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export default {
sourcemap: false,
},
{
file: '../ios/Capacitor/Capacitor/assets/native-bridge.js',
file: '../ios/Sources/Capacitor/assets/native-bridge.js',
format: 'iife',
name: 'nativeBridge',
preferConst: true,
Expand Down
32 changes: 12 additions & 20 deletions ios-pods-template/App/App.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,26 @@
/* Begin PBXBuildFile section */
2FAD9763203C412B000D30F8 /* config.xml in Resources */ = {isa = PBXBuildFile; fileRef = 2FAD9762203C412B000D30F8 /* config.xml */; };
50379B232058CBB4000EE86E /* capacitor.config.json in Resources */ = {isa = PBXBuildFile; fileRef = 50379B222058CBB4000EE86E /* capacitor.config.json */; };
504EC3081FED79650016851F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504EC3071FED79650016851F /* AppDelegate.swift */; };
504EC30D1FED79650016851F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 504EC30B1FED79650016851F /* Main.storyboard */; };
504EC30F1FED79650016851F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 504EC30E1FED79650016851F /* Assets.xcassets */; };
504EC3121FED79650016851F /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 504EC3101FED79650016851F /* LaunchScreen.storyboard */; };
50B271D11FEDC1A000F3C39B /* public in Resources */ = {isa = PBXBuildFile; fileRef = 50B271D01FEDC1A000F3C39B /* public */; };
9582B6852FE996820072D4E8 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9582B6842FE996800072D4E8 /* SceneDelegate.swift */; };
952C1C64302642D6000D0FF6 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 952C1C63302642D3000D0FF6 /* AppDelegate.swift */; };
9582B68A2FE9ABF30072D4E8 /* App.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9582B6892FE9ABF10072D4E8 /* App.swift */; };
9582B68C2FE9ACC30072D4E8 /* CapacitorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9582B68B2FE9ACBE0072D4E8 /* CapacitorView.swift */; };
A084ECDBA7D38E1E42DFC39D /* Pods_App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF277DCFFFF123FFC6DF26C7 /* Pods_App.framework */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
2FAD9762203C412B000D30F8 /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = config.xml; sourceTree = "<group>"; };
50379B222058CBB4000EE86E /* capacitor.config.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = capacitor.config.json; sourceTree = "<group>"; };
504EC3041FED79650016851F /* App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; };
504EC3071FED79650016851F /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
504EC30C1FED79650016851F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
504EC30E1FED79650016851F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
504EC3111FED79650016851F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
504EC3131FED79650016851F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
50B271D01FEDC1A000F3C39B /* public */ = {isa = PBXFileReference; lastKnownFileType = folder; path = public; sourceTree = "<group>"; };
9582B6842FE996800072D4E8 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
952C1C63302642D3000D0FF6 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
9582B6892FE9ABF10072D4E8 /* App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = App.swift; sourceTree = "<group>"; };
9582B68B2FE9ACBE0072D4E8 /* CapacitorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CapacitorView.swift; sourceTree = "<group>"; };
AF277DCFFFF123FFC6DF26C7 /* Pods_App.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_App.framework; sourceTree = BUILT_PRODUCTS_DIR; };
AF51FD2D460BCFE21FA515B2 /* Pods-App.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App.release.xcconfig"; path = "Pods/Target Support Files/Pods-App/Pods-App.release.xcconfig"; sourceTree = "<group>"; };
FC68EB0AF532CFC21C3344DD /* Pods-App.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App.debug.xcconfig"; path = "Pods/Target Support Files/Pods-App/Pods-App.debug.xcconfig"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -75,10 +75,10 @@
504EC3061FED79650016851F /* App */ = {
isa = PBXGroup;
children = (
9582B6842FE996800072D4E8 /* SceneDelegate.swift */,
952C1C63302642D3000D0FF6 /* AppDelegate.swift */,
9582B68B2FE9ACBE0072D4E8 /* CapacitorView.swift */,
9582B6892FE9ABF10072D4E8 /* App.swift */,
50379B222058CBB4000EE86E /* capacitor.config.json */,
504EC3071FED79650016851F /* AppDelegate.swift */,
504EC30B1FED79650016851F /* Main.storyboard */,
504EC30E1FED79650016851F /* Assets.xcassets */,
504EC3101FED79650016851F /* LaunchScreen.storyboard */,
504EC3131FED79650016851F /* Info.plist */,
Expand Down Expand Up @@ -164,7 +164,6 @@
50B271D11FEDC1A000F3C39B /* public in Resources */,
504EC30F1FED79650016851F /* Assets.xcassets in Resources */,
50379B232058CBB4000EE86E /* capacitor.config.json in Resources */,
504EC30D1FED79650016851F /* Main.storyboard in Resources */,
2FAD9763203C412B000D30F8 /* config.xml in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand Down Expand Up @@ -212,22 +211,15 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
504EC3081FED79650016851F /* AppDelegate.swift in Sources */,
9582B6852FE996820072D4E8 /* SceneDelegate.swift in Sources */,
952C1C64302642D6000D0FF6 /* AppDelegate.swift in Sources */,
9582B68A2FE9ABF30072D4E8 /* App.swift in Sources */,
9582B68C2FE9ACC30072D4E8 /* CapacitorView.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */

/* Begin PBXVariantGroup section */
504EC30B1FED79650016851F /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
504EC30C1FED79650016851F /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
504EC3101FED79650016851F /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
Expand Down
20 changes: 20 additions & 0 deletions ios-pods-template/App/App/App.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import SwiftUI
import Capacitor

@main
struct CapacitorApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

var body: some Scene {
WindowGroup {
CapacitorView()
.ignoresSafeArea()
.onOpenURL { url in
SceneDelegateProxy.shared.handle(openURL: url)
}
.onContinueUserActivity(NSUserActivityTypeBrowsingWeb) { activity in
SceneDelegateProxy.shared.handle(userActivity: activity)
}
}
}
}
Loading
Loading