From fdbcd817f6ab89525149685045f6ea7b78606b45 Mon Sep 17 00:00:00 2001 From: Robin Genz Date: Mon, 13 Jan 2025 21:13:15 +0100 Subject: [PATCH] feat: add SPM support (#382) * feat(live-update): add SPM support * chore: add `ios:spm:install` script * fix: add missing scripts * feat: add SPM support to all packages * wip * docs: add changeset [skip ci] * wip * wip --- .changeset/gorgeous-bottles-hammer.md | 20 ++++++++++++ .github/workflows/ci.yml | 16 ++++++++-- package.json | 3 ++ .../android-battery-optimization/.gitignore | 11 +++++-- packages/android-dark-mode-support/.gitignore | 8 +++++ .../android-foreground-service/.gitignore | 11 +++++-- packages/app-review/.gitignore | 8 +++++ packages/app-review/Package.swift | 28 ++++++++++++++++ .../ios/Plugin.xcodeproj/project.pbxproj | 8 ----- .../app-review/ios/Plugin/AppReviewPlugin.h | 10 ------ .../app-review/ios/Plugin/AppReviewPlugin.m | 9 ------ .../ios/Plugin/AppReviewPlugin.swift | 8 ++++- packages/app-review/package.json | 4 ++- packages/app-shortcuts/.gitignore | 8 +++++ packages/app-shortcuts/Package.swift | 28 ++++++++++++++++ .../ios/Plugin.xcodeproj/project.pbxproj | 8 ----- .../ios/Plugin/AppShortcutsPlugin.h | 10 ------ .../ios/Plugin/AppShortcutsPlugin.m | 10 ------ .../ios/Plugin/AppShortcutsPlugin.swift | 9 +++++- packages/app-shortcuts/package.json | 4 ++- packages/app-update/.gitignore | 11 +++++-- packages/app-update/Package.swift | 28 ++++++++++++++++ .../ios/Plugin.xcodeproj/project.pbxproj | 8 ----- .../app-update/ios/Plugin/AppUpdatePlugin.h | 10 ------ .../app-update/ios/Plugin/AppUpdatePlugin.m | 12 ------- .../ios/Plugin/AppUpdatePlugin.swift | 11 ++++++- packages/app-update/package.json | 3 +- packages/background-task/.gitignore | 11 +++++-- packages/background-task/Package.swift | 28 ++++++++++++++++ .../ios/Plugin.xcodeproj/project.pbxproj | 8 ----- .../ios/Plugin/BackgroundTaskPlugin.h | 10 ------ .../ios/Plugin/BackgroundTaskPlugin.m | 9 ------ .../ios/Plugin/BackgroundTaskPlugin.swift | 8 ++++- packages/background-task/package.json | 4 ++- packages/badge/.gitignore | 11 +++++-- packages/badge/Package.swift | 28 ++++++++++++++++ .../ios/Plugin.xcodeproj/project.pbxproj | 8 ----- packages/badge/ios/Plugin/BadgePlugin.h | 10 ------ packages/badge/ios/Plugin/BadgePlugin.m | 15 --------- packages/badge/ios/Plugin/BadgePlugin.swift | 14 +++++++- packages/badge/package.json | 4 ++- packages/cloudinary/.gitignore | 11 +++++-- .../CapawesomeCapacitorCloudinary.podspec | 2 +- packages/cloudinary/Package.swift | 30 +++++++++++++++++ .../ios/Plugin.xcodeproj/project.pbxproj | 8 ----- .../cloudinary/ios/Plugin/CloudinaryPlugin.h | 10 ------ .../cloudinary/ios/Plugin/CloudinaryPlugin.m | 10 ------ .../ios/Plugin/CloudinaryPlugin.swift | 9 +++++- packages/cloudinary/package.json | 4 ++- packages/datetime-picker/.gitignore | 11 +++++-- packages/datetime-picker/Package.swift | 28 ++++++++++++++++ .../ios/Plugin.xcodeproj/project.pbxproj | 8 ----- .../ios/Plugin/DatetimePickerPlugin.h | 10 ------ .../ios/Plugin/DatetimePickerPlugin.m | 8 ----- .../ios/Plugin/DatetimePickerPlugin.swift | 7 +++- packages/datetime-picker/package.json | 4 ++- packages/file-opener/.gitignore | 8 +++++ packages/file-opener/Package.swift | 28 ++++++++++++++++ .../ios/Plugin.xcodeproj/project.pbxproj | 8 ----- .../file-opener/ios/Plugin/FileOpenerPlugin.h | 10 ------ .../file-opener/ios/Plugin/FileOpenerPlugin.m | 8 ----- .../ios/Plugin/FileOpenerPlugin.swift | 7 +++- packages/file-opener/package.json | 4 ++- packages/file-picker/.gitignore | 11 +++++-- packages/file-picker/Package.swift | 28 ++++++++++++++++ .../ios/Plugin.xcodeproj/project.pbxproj | 8 ----- .../file-picker/ios/Plugin/FilePickerPlugin.h | 10 ------ .../file-picker/ios/Plugin/FilePickerPlugin.m | 13 -------- .../ios/Plugin/FilePickerPlugin.swift | 12 ++++++- packages/file-picker/package.json | 4 ++- packages/live-update/.gitignore | 8 +++++ .../CapawesomeCapacitorLiveUpdate.podspec | 2 +- packages/live-update/Package.swift | 32 +++++++++++++++++++ packages/live-update/README.md | 10 ++++++ .../ios/Plugin.xcodeproj/project.pbxproj | 8 ----- .../live-update/ios/Plugin/LiveUpdate.swift | 4 +++ .../live-update/ios/Plugin/LiveUpdatePlugin.h | 10 ------ .../live-update/ios/Plugin/LiveUpdatePlugin.m | 27 ---------------- .../ios/Plugin/LiveUpdatePlugin.swift | 29 +++++++++++++++-- packages/live-update/package.json | 3 +- packages/managed-configurations/.gitignore | 8 +++++ packages/managed-configurations/Package.swift | 28 ++++++++++++++++ .../ios/Plugin.xcodeproj/project.pbxproj | 8 ----- .../ios/Plugin/ManagedConfigurationsPlugin.h | 10 ------ .../ios/Plugin/ManagedConfigurationsPlugin.m | 10 ------ .../Plugin/ManagedConfigurationsPlugin.swift | 9 +++++- packages/managed-configurations/package.json | 4 ++- packages/photo-editor/.gitignore | 11 +++++-- packages/photo-editor/Package.swift | 28 ++++++++++++++++ .../ios/Plugin.xcodeproj/project.pbxproj | 8 ----- .../ios/Plugin/PhotoEditorPlugin.h | 10 ------ .../ios/Plugin/PhotoEditorPlugin.m | 8 ----- .../ios/Plugin/PhotoEditorPlugin.swift | 7 +++- packages/photo-editor/package.json | 4 ++- packages/posthog/.gitignore | 8 +++++ .../CapawesomeCapacitorPosthog.podspec | 2 +- packages/posthog/Package.swift | 30 +++++++++++++++++ .../ios/Plugin.xcodeproj/project.pbxproj | 8 ----- packages/posthog/ios/Plugin/PosthogPlugin.h | 10 ------ packages/posthog/ios/Plugin/PosthogPlugin.m | 17 ---------- .../posthog/ios/Plugin/PosthogPlugin.swift | 16 +++++++++- packages/posthog/package.json | 4 ++- packages/screen-orientation/.gitignore | 11 +++++-- packages/screen-orientation/Package.swift | 28 ++++++++++++++++ .../ios/Plugin.xcodeproj/project.pbxproj | 8 ----- .../ios/Plugin/ScreenOrientationPlugin.h | 10 ------ .../ios/Plugin/ScreenOrientationPlugin.m | 10 ------ .../ios/Plugin/ScreenOrientationPlugin.swift | 9 +++++- packages/screen-orientation/package.json | 4 ++- packages/screenshot/.gitignore | 8 +++++ packages/screenshot/Package.swift | 28 ++++++++++++++++ .../ios/Plugin.xcodeproj/project.pbxproj | 8 ----- .../screenshot/ios/Plugin/Screenshot.swift | 2 +- .../screenshot/ios/Plugin/ScreenshotPlugin.h | 10 ------ .../screenshot/ios/Plugin/ScreenshotPlugin.m | 8 ----- .../ios/Plugin/ScreenshotPlugin.swift | 7 +++- packages/screenshot/package.json | 4 ++- packages/torch/.gitignore | 8 +++++ packages/torch/Package.swift | 28 ++++++++++++++++ .../ios/Plugin.xcodeproj/project.pbxproj | 8 ----- packages/torch/ios/Plugin/TorchPlugin.h | 10 ------ packages/torch/ios/Plugin/TorchPlugin.m | 12 ------- packages/torch/ios/Plugin/TorchPlugin.swift | 11 ++++++- packages/torch/package.json | 4 ++- turbo.json | 3 +- 125 files changed, 867 insertions(+), 544 deletions(-) create mode 100644 .changeset/gorgeous-bottles-hammer.md create mode 100644 packages/app-review/Package.swift delete mode 100644 packages/app-review/ios/Plugin/AppReviewPlugin.h delete mode 100644 packages/app-review/ios/Plugin/AppReviewPlugin.m create mode 100644 packages/app-shortcuts/Package.swift delete mode 100644 packages/app-shortcuts/ios/Plugin/AppShortcutsPlugin.h delete mode 100644 packages/app-shortcuts/ios/Plugin/AppShortcutsPlugin.m create mode 100644 packages/app-update/Package.swift delete mode 100644 packages/app-update/ios/Plugin/AppUpdatePlugin.h delete mode 100644 packages/app-update/ios/Plugin/AppUpdatePlugin.m create mode 100644 packages/background-task/Package.swift delete mode 100644 packages/background-task/ios/Plugin/BackgroundTaskPlugin.h delete mode 100644 packages/background-task/ios/Plugin/BackgroundTaskPlugin.m create mode 100644 packages/badge/Package.swift delete mode 100644 packages/badge/ios/Plugin/BadgePlugin.h delete mode 100644 packages/badge/ios/Plugin/BadgePlugin.m create mode 100644 packages/cloudinary/Package.swift delete mode 100644 packages/cloudinary/ios/Plugin/CloudinaryPlugin.h delete mode 100644 packages/cloudinary/ios/Plugin/CloudinaryPlugin.m create mode 100644 packages/datetime-picker/Package.swift delete mode 100644 packages/datetime-picker/ios/Plugin/DatetimePickerPlugin.h delete mode 100644 packages/datetime-picker/ios/Plugin/DatetimePickerPlugin.m create mode 100644 packages/file-opener/Package.swift delete mode 100644 packages/file-opener/ios/Plugin/FileOpenerPlugin.h delete mode 100644 packages/file-opener/ios/Plugin/FileOpenerPlugin.m create mode 100644 packages/file-picker/Package.swift delete mode 100644 packages/file-picker/ios/Plugin/FilePickerPlugin.h delete mode 100644 packages/file-picker/ios/Plugin/FilePickerPlugin.m create mode 100644 packages/live-update/Package.swift delete mode 100644 packages/live-update/ios/Plugin/LiveUpdatePlugin.h delete mode 100644 packages/live-update/ios/Plugin/LiveUpdatePlugin.m create mode 100644 packages/managed-configurations/Package.swift delete mode 100644 packages/managed-configurations/ios/Plugin/ManagedConfigurationsPlugin.h delete mode 100644 packages/managed-configurations/ios/Plugin/ManagedConfigurationsPlugin.m create mode 100644 packages/photo-editor/Package.swift delete mode 100644 packages/photo-editor/ios/Plugin/PhotoEditorPlugin.h delete mode 100644 packages/photo-editor/ios/Plugin/PhotoEditorPlugin.m create mode 100644 packages/posthog/Package.swift delete mode 100644 packages/posthog/ios/Plugin/PosthogPlugin.h delete mode 100644 packages/posthog/ios/Plugin/PosthogPlugin.m create mode 100644 packages/screen-orientation/Package.swift delete mode 100644 packages/screen-orientation/ios/Plugin/ScreenOrientationPlugin.h delete mode 100644 packages/screen-orientation/ios/Plugin/ScreenOrientationPlugin.m create mode 100644 packages/screenshot/Package.swift delete mode 100644 packages/screenshot/ios/Plugin/ScreenshotPlugin.h delete mode 100644 packages/screenshot/ios/Plugin/ScreenshotPlugin.m create mode 100644 packages/torch/Package.swift delete mode 100644 packages/torch/ios/Plugin/TorchPlugin.h delete mode 100644 packages/torch/ios/Plugin/TorchPlugin.m diff --git a/.changeset/gorgeous-bottles-hammer.md b/.changeset/gorgeous-bottles-hammer.md new file mode 100644 index 00000000..11a67223 --- /dev/null +++ b/.changeset/gorgeous-bottles-hammer.md @@ -0,0 +1,20 @@ +--- +'@capawesome/capacitor-app-review': minor +'@capawesome/capacitor-app-shortcuts': minor +'@capawesome/capacitor-app-update': minor +'@capawesome/capacitor-background-task': minor +'@capawesome/capacitor-badge': minor +'@capawesome/capacitor-cloudinary': minor +'@capawesome-team/capacitor-datetime-picker': minor +'@capawesome-team/capacitor-file-opener': minor +'@capawesome/capacitor-file-picker': minor +'@capawesome/capacitor-live-update': minor +'@capawesome/capacitor-managed-configurations': minor +'@capawesome/capacitor-photo-editor': minor +'@capawesome/capacitor-posthog': minor +'@capawesome/capacitor-screen-orientation': minor +'@capawesome/capacitor-screenshot': minor +'@capawesome/capacitor-torch': minor +--- + +feat: add SPM support diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bbac53a8..2397e8da 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ on: workflow_dispatch: env: - NODE_VERSION: 18 + NODE_VERSION: 20 JAVA_VERSION: 17 jobs: @@ -35,8 +35,20 @@ jobs: with: distribution: 'zulu' java-version: ${{ env.JAVA_VERSION }} - - name: Install dependencies + - name: Install Node.js dependencies run: npm ci + - name: Install CocoaPods dependencies of packages affected by changes + if: github.ref != 'refs/heads/main' + run: npm run affected:ios:pod:install + - name: Install all CocoaPods dependencies + if: github.ref == 'refs/heads/main' + run: npm run ios:pod:install + - name: Install SPM dependencies of packages affected by changes + if: github.ref != 'refs/heads/main' + run: npm run affected:ios:spm:install + - name: Install all SPM dependencies + if: github.ref == 'refs/heads/main' + run: npm run ios:spm:install - name: Build packages affected by changes if: github.ref != 'refs/heads/main' run: npm run affected:verify diff --git a/package.json b/package.json index 046914bb..6a6962bb 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "build": "turbo run build", "version": "turbo run version", "ios:pod:install": "turbo run ios:pod:install --concurrency=1 --no-cache", + "ios:spm:install": "turbo run ios:spm:install --concurrency=1 --no-cache", "affected:verify": "npm run affected:verify:android && npm run affected:verify:ios && npm run affected:verify:web", "affected:verify:android": "turbo run verify:android --since=origin/main --concurrency=1 --no-cache", "affected:verify:ios": "turbo run verify:ios --since=origin/main --concurrency=1 --no-cache", @@ -25,6 +26,8 @@ "affected:docgen": "turbo run docgen --since=origin/main", "affected:build": "turbo run build --since=origin/main", "affected:version": "turbo run version --since=origin/main", + "affected:ios:pod:install": "turbo run ios:pod:install --since=origin/main --concurrency=1 --no-cache", + "affected:ios:spm:install": "turbo run ios:spm:install --since=origin/main --concurrency=1 --no-cache", "changeset": "changeset", "release": "npm run build && changeset publish", "release:preview": "pkg-pr-new publish './packages/*'" diff --git a/packages/android-battery-optimization/.gitignore b/packages/android-battery-optimization/.gitignore index b36840ac..68176379 100644 --- a/packages/android-battery-optimization/.gitignore +++ b/packages/android-battery-optimization/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store @@ -59,6 +67,3 @@ captures # External native build folder generated in Android Studio 2.2 and later .externalNativeBuild - -# VSCode -.vscode diff --git a/packages/android-dark-mode-support/.gitignore b/packages/android-dark-mode-support/.gitignore index 70ccbf71..68176379 100644 --- a/packages/android-dark-mode-support/.gitignore +++ b/packages/android-dark-mode-support/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store diff --git a/packages/android-foreground-service/.gitignore b/packages/android-foreground-service/.gitignore index b36840ac..68176379 100644 --- a/packages/android-foreground-service/.gitignore +++ b/packages/android-foreground-service/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store @@ -59,6 +67,3 @@ captures # External native build folder generated in Android Studio 2.2 and later .externalNativeBuild - -# VSCode -.vscode diff --git a/packages/app-review/.gitignore b/packages/app-review/.gitignore index 70ccbf71..68176379 100644 --- a/packages/app-review/.gitignore +++ b/packages/app-review/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store diff --git a/packages/app-review/Package.swift b/packages/app-review/Package.swift new file mode 100644 index 00000000..5c22f956 --- /dev/null +++ b/packages/app-review/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapawesomeCapacitorAppReview", + platforms: [.iOS(.v13)], + products: [ + .library( + name: "CapawesomeCapacitorAppReview", + targets: ["AppReviewPlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "6.0.0") + ], + targets: [ + .target( + name: "AppReviewPlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm") + ], + path: "ios/Sources/AppReviewPlugin"), + .testTarget( + name: "AppReviewPluginTests", + dependencies: ["AppReviewPlugin"], + path: "ios/Tests/AppReviewPluginTests") + ] +) diff --git a/packages/app-review/ios/Plugin.xcodeproj/project.pbxproj b/packages/app-review/ios/Plugin.xcodeproj/project.pbxproj index f655255d..7abf3595 100644 --- a/packages/app-review/ios/Plugin.xcodeproj/project.pbxproj +++ b/packages/app-review/ios/Plugin.xcodeproj/project.pbxproj @@ -12,9 +12,7 @@ 2F98D68224C9AAE500613A4C /* AppReview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F98D68124C9AAE400613A4C /* AppReview.swift */; }; 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; }; 50ADFF97201F53D600D50D53 /* AppReviewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* AppReviewTests.swift */; }; - 50ADFF99201F53D600D50D53 /* AppReviewPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* AppReviewPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; }; - 50ADFFA82020EE4F00D50D53 /* AppReviewPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* AppReviewPlugin.m */; }; 50E1A94820377CB70090CE1A /* AppReviewPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* AppReviewPlugin.swift */; }; 7C80E29B2CEBD87B008BDF17 /* CustomError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C80E29A2CEBD87B008BDF17 /* CustomError.swift */; }; 7CD20BC62CF4E99B0099154B /* OpenAppStoreOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CD20BC52CF4E99A0099154B /* OpenAppStoreOptions.swift */; }; @@ -34,13 +32,11 @@ 2F98D68124C9AAE400613A4C /* AppReview.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppReview.swift; sourceTree = ""; }; 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFF8B201F53D600D50D53 /* AppReviewPlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppReviewPlugin.h; sourceTree = ""; }; 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF96201F53D600D50D53 /* AppReviewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppReviewTests.swift; sourceTree = ""; }; 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFFA72020EE4F00D50D53 /* AppReviewPlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppReviewPlugin.m; sourceTree = ""; }; 50E1A94720377CB70090CE1A /* AppReviewPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppReviewPlugin.swift; sourceTree = ""; }; 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; }; 7C80E29A2CEBD87B008BDF17 /* CustomError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomError.swift; sourceTree = ""; }; @@ -100,8 +96,6 @@ 7C80E2992CEBD876008BDF17 /* Enums */, 50E1A94720377CB70090CE1A /* AppReviewPlugin.swift */, 2F98D68124C9AAE400613A4C /* AppReview.swift */, - 50ADFF8B201F53D600D50D53 /* AppReviewPlugin.h */, - 50ADFFA72020EE4F00D50D53 /* AppReviewPlugin.m */, 50ADFF8C201F53D600D50D53 /* Info.plist */, ); path = Plugin; @@ -168,7 +162,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 50ADFF99201F53D600D50D53 /* AppReviewPlugin.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -340,7 +333,6 @@ 7C80E29B2CEBD87B008BDF17 /* CustomError.swift in Sources */, 2F98D68224C9AAE500613A4C /* AppReview.swift in Sources */, 7CD20BC62CF4E99B0099154B /* OpenAppStoreOptions.swift in Sources */, - 50ADFFA82020EE4F00D50D53 /* AppReviewPlugin.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/packages/app-review/ios/Plugin/AppReviewPlugin.h b/packages/app-review/ios/Plugin/AppReviewPlugin.h deleted file mode 100644 index f2bd9e0b..00000000 --- a/packages/app-review/ios/Plugin/AppReviewPlugin.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for Plugin. -FOUNDATION_EXPORT double PluginVersionNumber; - -//! Project version string for Plugin. -FOUNDATION_EXPORT const unsigned char PluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/packages/app-review/ios/Plugin/AppReviewPlugin.m b/packages/app-review/ios/Plugin/AppReviewPlugin.m deleted file mode 100644 index 1c31d307..00000000 --- a/packages/app-review/ios/Plugin/AppReviewPlugin.m +++ /dev/null @@ -1,9 +0,0 @@ -#import -#import - -// Define the plugin using the CAP_PLUGIN Macro, and -// each method the plugin supports using the CAP_PLUGIN_METHOD macro. -CAP_PLUGIN(AppReviewPlugin, "AppReview", - CAP_PLUGIN_METHOD(openAppStore, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(requestReview, CAPPluginReturnPromise); -) diff --git a/packages/app-review/ios/Plugin/AppReviewPlugin.swift b/packages/app-review/ios/Plugin/AppReviewPlugin.swift index 0ce6c05e..22de91f2 100644 --- a/packages/app-review/ios/Plugin/AppReviewPlugin.swift +++ b/packages/app-review/ios/Plugin/AppReviewPlugin.swift @@ -6,7 +6,13 @@ import Capacitor * here: https://capacitorjs.com/docs/plugins/ios */ @objc(AppReviewPlugin) -public class AppReviewPlugin: CAPPlugin { +public class AppReviewPlugin: CAPPlugin, CAPBridgedPlugin { + public let identifier = "AppReviewPlugin" + public let jsName = "AppReview" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "openAppStore", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "requestReview", returnType: CAPPluginReturnPromise) + ] public static let tag = "AppReviewPlugin" private var implementation: AppReview? diff --git a/packages/app-review/package.json b/packages/app-review/package.json index 24d216ab..be3edce8 100644 --- a/packages/app-review/package.json +++ b/packages/app-review/package.json @@ -11,7 +11,8 @@ "android/build.gradle", "dist/", "ios/Plugin/", - "CapawesomeCapacitorAppReview.podspec" + "CapawesomeCapacitorAppReview.podspec", + "Package.swift" ], "author": "Robin Genz ", "license": "MIT", @@ -57,6 +58,7 @@ "clean": "rimraf ./dist", "watch": "tsc --watch", "ios:pod:install": "cd ios && pod install --repo-update && cd ..", + "ios:spm:install": "cd ios && swift package resolve && cd ..", "prepublishOnly": "npm run build" }, "devDependencies": { diff --git a/packages/app-shortcuts/.gitignore b/packages/app-shortcuts/.gitignore index 70ccbf71..68176379 100644 --- a/packages/app-shortcuts/.gitignore +++ b/packages/app-shortcuts/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store diff --git a/packages/app-shortcuts/Package.swift b/packages/app-shortcuts/Package.swift new file mode 100644 index 00000000..be4e4a26 --- /dev/null +++ b/packages/app-shortcuts/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapawesomeCapacitorAppShortcuts", + platforms: [.iOS(.v13)], + products: [ + .library( + name: "CapawesomeCapacitorAppShortcuts", + targets: ["AppShortcutsPlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "6.0.0") + ], + targets: [ + .target( + name: "AppShortcutsPlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm") + ], + path: "ios/Sources/AppShortcutsPlugin"), + .testTarget( + name: "AppShortcutsPluginTests", + dependencies: ["AppShortcutsPlugin"], + path: "ios/Tests/AppShortcutsPluginTests") + ] +) diff --git a/packages/app-shortcuts/ios/Plugin.xcodeproj/project.pbxproj b/packages/app-shortcuts/ios/Plugin.xcodeproj/project.pbxproj index ab41d160..b85c508f 100644 --- a/packages/app-shortcuts/ios/Plugin.xcodeproj/project.pbxproj +++ b/packages/app-shortcuts/ios/Plugin.xcodeproj/project.pbxproj @@ -12,9 +12,7 @@ 2F98D68224C9AAE500613A4C /* AppShortcuts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F98D68124C9AAE400613A4C /* AppShortcuts.swift */; }; 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; }; 50ADFF97201F53D600D50D53 /* AppShortcutsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* AppShortcutsTests.swift */; }; - 50ADFF99201F53D600D50D53 /* AppShortcutsPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* AppShortcutsPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; }; - 50ADFFA82020EE4F00D50D53 /* AppShortcutsPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* AppShortcutsPlugin.m */; }; 50E1A94820377CB70090CE1A /* AppShortcutsPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* AppShortcutsPlugin.swift */; }; 7C23F4112D1434F80062E466 /* ClickEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C23F4102D1434F00062E466 /* ClickEvent.swift */; }; 7CC437E92D0CCF94007934A8 /* GetResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CC437E82D0CCF7A007934A8 /* GetResult.swift */; }; @@ -37,13 +35,11 @@ 2F98D68124C9AAE400613A4C /* AppShortcuts.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppShortcuts.swift; sourceTree = ""; }; 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFF8B201F53D600D50D53 /* AppShortcutsPlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppShortcutsPlugin.h; sourceTree = ""; }; 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF96201F53D600D50D53 /* AppShortcutsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppShortcutsTests.swift; sourceTree = ""; }; 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFFA72020EE4F00D50D53 /* AppShortcutsPlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppShortcutsPlugin.m; sourceTree = ""; }; 50E1A94720377CB70090CE1A /* AppShortcutsPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppShortcutsPlugin.swift; sourceTree = ""; }; 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; }; 7C23F4102D1434F00062E466 /* ClickEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClickEvent.swift; sourceTree = ""; }; @@ -107,8 +103,6 @@ 7CC437E62D0CCF63007934A8 /* Classes */, 50E1A94720377CB70090CE1A /* AppShortcutsPlugin.swift */, 2F98D68124C9AAE400613A4C /* AppShortcuts.swift */, - 50ADFF8B201F53D600D50D53 /* AppShortcutsPlugin.h */, - 50ADFFA72020EE4F00D50D53 /* AppShortcutsPlugin.m */, 50ADFF8C201F53D600D50D53 /* Info.plist */, ); path = Plugin; @@ -201,7 +195,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 50ADFF99201F53D600D50D53 /* AppShortcutsPlugin.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -375,7 +368,6 @@ 7CC437E92D0CCF94007934A8 /* GetResult.swift in Sources */, 2F98D68224C9AAE500613A4C /* AppShortcuts.swift in Sources */, 7CC437F82D0E30A0007934A8 /* Result.swift in Sources */, - 50ADFFA82020EE4F00D50D53 /* AppShortcutsPlugin.m in Sources */, 7C23F4112D1434F80062E466 /* ClickEvent.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/packages/app-shortcuts/ios/Plugin/AppShortcutsPlugin.h b/packages/app-shortcuts/ios/Plugin/AppShortcutsPlugin.h deleted file mode 100644 index f2bd9e0b..00000000 --- a/packages/app-shortcuts/ios/Plugin/AppShortcutsPlugin.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for Plugin. -FOUNDATION_EXPORT double PluginVersionNumber; - -//! Project version string for Plugin. -FOUNDATION_EXPORT const unsigned char PluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/packages/app-shortcuts/ios/Plugin/AppShortcutsPlugin.m b/packages/app-shortcuts/ios/Plugin/AppShortcutsPlugin.m deleted file mode 100644 index 2c7c0157..00000000 --- a/packages/app-shortcuts/ios/Plugin/AppShortcutsPlugin.m +++ /dev/null @@ -1,10 +0,0 @@ -#import -#import - -// Define the plugin using the CAP_PLUGIN Macro, and -// each method the plugin supports using the CAP_PLUGIN_METHOD macro. -CAP_PLUGIN(AppShortcutsPlugin, "AppShortcuts", - CAP_PLUGIN_METHOD(get, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(set, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(clear, CAPPluginReturnPromise); -) diff --git a/packages/app-shortcuts/ios/Plugin/AppShortcutsPlugin.swift b/packages/app-shortcuts/ios/Plugin/AppShortcutsPlugin.swift index 8d5370be..d10e60d8 100644 --- a/packages/app-shortcuts/ios/Plugin/AppShortcutsPlugin.swift +++ b/packages/app-shortcuts/ios/Plugin/AppShortcutsPlugin.swift @@ -6,7 +6,14 @@ import Capacitor * here: https://capacitorjs.com/docs/plugins/ios */ @objc(AppShortcutsPlugin) -public class AppShortcutsPlugin: CAPPlugin { +public class AppShortcutsPlugin: CAPPlugin, CAPBridgedPlugin { + public let identifier = "AppShortcutsPlugin" + public let jsName = "AppShortcuts" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "get", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "set", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "clear", returnType: CAPPluginReturnPromise) + ] public static let notificationName = "handleAppShortcutNotification" public static let userInfoShortcutItemKey = "shortcutItem" diff --git a/packages/app-shortcuts/package.json b/packages/app-shortcuts/package.json index 2d9f5f05..f5063a22 100644 --- a/packages/app-shortcuts/package.json +++ b/packages/app-shortcuts/package.json @@ -11,7 +11,8 @@ "android/build.gradle", "dist/", "ios/Plugin/", - "CapawesomeCapacitorAppShortcuts.podspec" + "CapawesomeCapacitorAppShortcuts.podspec", + "Package.swift" ], "author": "Robin Genz ", "license": "MIT", @@ -57,6 +58,7 @@ "clean": "rimraf ./dist", "watch": "tsc --watch", "ios:pod:install": "cd ios && pod install --repo-update && cd ..", + "ios:spm:install": "cd ios && swift package resolve && cd ..", "prepublishOnly": "npm run build" }, "devDependencies": { diff --git a/packages/app-update/.gitignore b/packages/app-update/.gitignore index b36840ac..68176379 100644 --- a/packages/app-update/.gitignore +++ b/packages/app-update/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store @@ -59,6 +67,3 @@ captures # External native build folder generated in Android Studio 2.2 and later .externalNativeBuild - -# VSCode -.vscode diff --git a/packages/app-update/Package.swift b/packages/app-update/Package.swift new file mode 100644 index 00000000..6927f8e9 --- /dev/null +++ b/packages/app-update/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapawesomeCapacitorAppUpdate", + platforms: [.iOS(.v13)], + products: [ + .library( + name: "CapawesomeCapacitorAppUpdate", + targets: ["AppUpdatePlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "6.0.0") + ], + targets: [ + .target( + name: "AppUpdatePlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm") + ], + path: "ios/Sources/AppUpdatePlugin"), + .testTarget( + name: "AppUpdatePluginTests", + dependencies: ["AppUpdatePlugin"], + path: "ios/Tests/AppUpdatePluginTests") + ] +) diff --git a/packages/app-update/ios/Plugin.xcodeproj/project.pbxproj b/packages/app-update/ios/Plugin.xcodeproj/project.pbxproj index 7fec2995..7fdda6a5 100644 --- a/packages/app-update/ios/Plugin.xcodeproj/project.pbxproj +++ b/packages/app-update/ios/Plugin.xcodeproj/project.pbxproj @@ -11,9 +11,7 @@ 20C0B05DCFC8E3958A738AF2 /* Pods_PluginTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F6753A823D3815DB436415E3 /* Pods_PluginTests.framework */; }; 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; }; 50ADFF97201F53D600D50D53 /* AppUpdatePluginTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* AppUpdatePluginTests.swift */; }; - 50ADFF99201F53D600D50D53 /* AppUpdatePlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* AppUpdatePlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; }; - 50ADFFA82020EE4F00D50D53 /* AppUpdatePlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* AppUpdatePlugin.m */; }; 50E1A94820377CB70090CE1A /* AppUpdatePlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* AppUpdatePlugin.swift */; }; /* End PBXBuildFile section */ @@ -30,13 +28,11 @@ /* Begin PBXFileReference section */ 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFF8B201F53D600D50D53 /* AppUpdatePlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppUpdatePlugin.h; sourceTree = ""; }; 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF96201F53D600D50D53 /* AppUpdatePluginTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUpdatePluginTests.swift; sourceTree = ""; }; 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFFA72020EE4F00D50D53 /* AppUpdatePlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppUpdatePlugin.m; sourceTree = ""; }; 50E1A94720377CB70090CE1A /* AppUpdatePlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppUpdatePlugin.swift; sourceTree = ""; }; 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; }; 91781294A431A2A7CC6EB714 /* Pods-Plugin.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.release.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.release.xcconfig"; sourceTree = ""; }; @@ -91,8 +87,6 @@ isa = PBXGroup; children = ( 50E1A94720377CB70090CE1A /* AppUpdatePlugin.swift */, - 50ADFF8B201F53D600D50D53 /* AppUpdatePlugin.h */, - 50ADFFA72020EE4F00D50D53 /* AppUpdatePlugin.m */, 50ADFF8C201F53D600D50D53 /* Info.plist */, ); path = Plugin; @@ -135,7 +129,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 50ADFF99201F53D600D50D53 /* AppUpdatePlugin.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -304,7 +297,6 @@ buildActionMask = 2147483647; files = ( 50E1A94820377CB70090CE1A /* AppUpdatePlugin.swift in Sources */, - 50ADFFA82020EE4F00D50D53 /* AppUpdatePlugin.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/packages/app-update/ios/Plugin/AppUpdatePlugin.h b/packages/app-update/ios/Plugin/AppUpdatePlugin.h deleted file mode 100644 index f2bd9e0b..00000000 --- a/packages/app-update/ios/Plugin/AppUpdatePlugin.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for Plugin. -FOUNDATION_EXPORT double PluginVersionNumber; - -//! Project version string for Plugin. -FOUNDATION_EXPORT const unsigned char PluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/packages/app-update/ios/Plugin/AppUpdatePlugin.m b/packages/app-update/ios/Plugin/AppUpdatePlugin.m deleted file mode 100644 index f8d80e11..00000000 --- a/packages/app-update/ios/Plugin/AppUpdatePlugin.m +++ /dev/null @@ -1,12 +0,0 @@ -#import -#import - -// Define the plugin using the CAP_PLUGIN Macro, and -// each method the plugin supports using the CAP_PLUGIN_METHOD macro. -CAP_PLUGIN(AppUpdatePlugin, "AppUpdate", - CAP_PLUGIN_METHOD(getAppUpdateInfo, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(openAppStore, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(performImmediateUpdate, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(startFlexibleUpdate, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(completeFlexibleUpdate, CAPPluginReturnPromise); -) diff --git a/packages/app-update/ios/Plugin/AppUpdatePlugin.swift b/packages/app-update/ios/Plugin/AppUpdatePlugin.swift index fa75dd36..e93442a5 100644 --- a/packages/app-update/ios/Plugin/AppUpdatePlugin.swift +++ b/packages/app-update/ios/Plugin/AppUpdatePlugin.swift @@ -6,7 +6,16 @@ import Capacitor * here: https://capacitorjs.com/docs/plugins/ios */ @objc(AppUpdatePlugin) -public class AppUpdatePlugin: CAPPlugin { +public class AppUpdatePlugin: CAPPlugin, CAPBridgedPlugin { + public let identifier = "AppUpdatePlugin" + public let jsName = "AppUpdate" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "getAppUpdateInfo", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "openAppStore", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "performImmediateUpdate", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "startFlexibleUpdate", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "completeFlexibleUpdate", returnType: CAPPluginReturnPromise) + ] private static let updateAvailabilityNotAvailable = 1 private static let updateAvailabilityAvailable = 2 diff --git a/packages/app-update/package.json b/packages/app-update/package.json index 893f0747..190afb04 100644 --- a/packages/app-update/package.json +++ b/packages/app-update/package.json @@ -11,7 +11,8 @@ "android/build.gradle", "dist/", "ios/Plugin/", - "CapawesomeCapacitorAppUpdate.podspec" + "CapawesomeCapacitorAppUpdate.podspec", + "Package.swift" ], "author": "Robin Genz ", "license": "MIT", diff --git a/packages/background-task/.gitignore b/packages/background-task/.gitignore index e0e07578..68176379 100644 --- a/packages/background-task/.gitignore +++ b/packages/background-task/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store @@ -59,6 +67,3 @@ captures # External native build folder generated in Android Studio 2.2 and later .externalNativeBuild - -# VS Code -.vscode diff --git a/packages/background-task/Package.swift b/packages/background-task/Package.swift new file mode 100644 index 00000000..f953f3f5 --- /dev/null +++ b/packages/background-task/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapawesomeCapacitorBackgroundTask", + platforms: [.iOS(.v13)], + products: [ + .library( + name: "CapawesomeCapacitorBackgroundTask", + targets: ["BackgroundTaskPlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "6.0.0") + ], + targets: [ + .target( + name: "BackgroundTaskPlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm") + ], + path: "ios/Sources/BackgroundTaskPlugin"), + .testTarget( + name: "BackgroundTaskPluginTests", + dependencies: ["BackgroundTaskPlugin"], + path: "ios/Tests/BackgroundTaskPluginTests") + ] +) diff --git a/packages/background-task/ios/Plugin.xcodeproj/project.pbxproj b/packages/background-task/ios/Plugin.xcodeproj/project.pbxproj index ef243719..3440d2e7 100644 --- a/packages/background-task/ios/Plugin.xcodeproj/project.pbxproj +++ b/packages/background-task/ios/Plugin.xcodeproj/project.pbxproj @@ -12,9 +12,7 @@ 2F98D68224C9AAE500613A4C /* BackgroundTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F98D68124C9AAE400613A4C /* BackgroundTask.swift */; }; 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; }; 50ADFF97201F53D600D50D53 /* BackgroundTaskPluginTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* BackgroundTaskPluginTests.swift */; }; - 50ADFF99201F53D600D50D53 /* BackgroundTaskPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* BackgroundTaskPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; }; - 50ADFFA82020EE4F00D50D53 /* BackgroundTaskPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* BackgroundTaskPlugin.m */; }; 50E1A94820377CB70090CE1A /* BackgroundTaskPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* BackgroundTaskPlugin.swift */; }; /* End PBXBuildFile section */ @@ -32,13 +30,11 @@ 2F98D68124C9AAE400613A4C /* BackgroundTask.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BackgroundTask.swift; sourceTree = ""; }; 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFF8B201F53D600D50D53 /* BackgroundTaskPlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BackgroundTaskPlugin.h; sourceTree = ""; }; 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF96201F53D600D50D53 /* BackgroundTaskPluginTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundTaskPluginTests.swift; sourceTree = ""; }; 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFFA72020EE4F00D50D53 /* BackgroundTaskPlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BackgroundTaskPlugin.m; sourceTree = ""; }; 50E1A94720377CB70090CE1A /* BackgroundTaskPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BackgroundTaskPlugin.swift; sourceTree = ""; }; 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; }; 91781294A431A2A7CC6EB714 /* Pods-Plugin.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.release.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.release.xcconfig"; sourceTree = ""; }; @@ -94,8 +90,6 @@ children = ( 50E1A94720377CB70090CE1A /* BackgroundTaskPlugin.swift */, 2F98D68124C9AAE400613A4C /* BackgroundTask.swift */, - 50ADFF8B201F53D600D50D53 /* BackgroundTaskPlugin.h */, - 50ADFFA72020EE4F00D50D53 /* BackgroundTaskPlugin.m */, 50ADFF8C201F53D600D50D53 /* Info.plist */, ); path = Plugin; @@ -138,7 +132,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 50ADFF99201F53D600D50D53 /* BackgroundTaskPlugin.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -308,7 +301,6 @@ files = ( 50E1A94820377CB70090CE1A /* BackgroundTaskPlugin.swift in Sources */, 2F98D68224C9AAE500613A4C /* BackgroundTask.swift in Sources */, - 50ADFFA82020EE4F00D50D53 /* BackgroundTaskPlugin.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/packages/background-task/ios/Plugin/BackgroundTaskPlugin.h b/packages/background-task/ios/Plugin/BackgroundTaskPlugin.h deleted file mode 100644 index f2bd9e0b..00000000 --- a/packages/background-task/ios/Plugin/BackgroundTaskPlugin.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for Plugin. -FOUNDATION_EXPORT double PluginVersionNumber; - -//! Project version string for Plugin. -FOUNDATION_EXPORT const unsigned char PluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/packages/background-task/ios/Plugin/BackgroundTaskPlugin.m b/packages/background-task/ios/Plugin/BackgroundTaskPlugin.m deleted file mode 100644 index 856989a0..00000000 --- a/packages/background-task/ios/Plugin/BackgroundTaskPlugin.m +++ /dev/null @@ -1,9 +0,0 @@ -#import -#import - -// Define the plugin using the CAP_PLUGIN Macro, and -// each method the plugin supports using the CAP_PLUGIN_METHOD macro. -CAP_PLUGIN(BackgroundTaskPlugin, "BackgroundTask", - CAP_PLUGIN_METHOD(beforeExit, CAPPluginReturnCallback); - CAP_PLUGIN_METHOD(finish, CAPPluginReturnNone); -) diff --git a/packages/background-task/ios/Plugin/BackgroundTaskPlugin.swift b/packages/background-task/ios/Plugin/BackgroundTaskPlugin.swift index d3087f71..3083fb95 100644 --- a/packages/background-task/ios/Plugin/BackgroundTaskPlugin.swift +++ b/packages/background-task/ios/Plugin/BackgroundTaskPlugin.swift @@ -6,7 +6,13 @@ import Capacitor * here: https://capacitorjs.com/docs/plugins/ios */ @objc(BackgroundTaskPlugin) -public class BackgroundTaskPlugin: CAPPlugin { +public class BackgroundTaskPlugin: CAPPlugin, CAPBridgedPlugin { + public let identifier = "BackgroundTaskPlugin" + public let jsName = "BackgroundTask" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "beforeExit", returnType: CAPPluginReturnCallback), + CAPPluginMethod(name: "finish", returnType: CAPPluginReturnNone) + ] private let implementation = BackgroundTask() @objc public func beforeExit(_ call: CAPPluginCall) { diff --git a/packages/background-task/package.json b/packages/background-task/package.json index 9f3809e1..91bb803f 100644 --- a/packages/background-task/package.json +++ b/packages/background-task/package.json @@ -11,7 +11,8 @@ "android/build.gradle", "dist/", "ios/Plugin/", - "CapawesomeCapacitorBackgroundTask.podspec" + "CapawesomeCapacitorBackgroundTask.podspec", + "Package.swift" ], "author": "Robin Genz ", "license": "MIT", @@ -53,6 +54,7 @@ "clean": "rimraf ./dist", "watch": "tsc --watch", "ios:pod:install": "cd ios && pod install --repo-update && cd ..", + "ios:spm:install": "cd ios && swift package resolve && cd ..", "prepublishOnly": "npm run build" }, "devDependencies": { diff --git a/packages/badge/.gitignore b/packages/badge/.gitignore index e0e07578..68176379 100644 --- a/packages/badge/.gitignore +++ b/packages/badge/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store @@ -59,6 +67,3 @@ captures # External native build folder generated in Android Studio 2.2 and later .externalNativeBuild - -# VS Code -.vscode diff --git a/packages/badge/Package.swift b/packages/badge/Package.swift new file mode 100644 index 00000000..086d9892 --- /dev/null +++ b/packages/badge/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapawesomeCapacitorBadge", + platforms: [.iOS(.v13)], + products: [ + .library( + name: "CapawesomeCapacitorBadge", + targets: ["BadgePlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "6.0.0") + ], + targets: [ + .target( + name: "BadgePlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm") + ], + path: "ios/Sources/BadgePlugin"), + .testTarget( + name: "BadgePluginTests", + dependencies: ["BadgePlugin"], + path: "ios/Tests/BadgePluginTests") + ] +) diff --git a/packages/badge/ios/Plugin.xcodeproj/project.pbxproj b/packages/badge/ios/Plugin.xcodeproj/project.pbxproj index cc77d48b..a09fa0fd 100644 --- a/packages/badge/ios/Plugin.xcodeproj/project.pbxproj +++ b/packages/badge/ios/Plugin.xcodeproj/project.pbxproj @@ -12,9 +12,7 @@ 2F98D68224C9AAE500613A4C /* Badge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F98D68124C9AAE400613A4C /* Badge.swift */; }; 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; }; 50ADFF97201F53D600D50D53 /* BadgePluginTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* BadgePluginTests.swift */; }; - 50ADFF99201F53D600D50D53 /* BadgePlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* BadgePlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; }; - 50ADFFA82020EE4F00D50D53 /* BadgePlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* BadgePlugin.m */; }; 50E1A94820377CB70090CE1A /* BadgePlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* BadgePlugin.swift */; }; 7CD6AA5C26B06155008C4493 /* BadgeConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CD6AA5B26B06155008C4493 /* BadgeConfig.swift */; }; /* End PBXBuildFile section */ @@ -33,13 +31,11 @@ 2F98D68124C9AAE400613A4C /* Badge.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Badge.swift; sourceTree = ""; }; 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFF8B201F53D600D50D53 /* BadgePlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BadgePlugin.h; sourceTree = ""; }; 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF96201F53D600D50D53 /* BadgePluginTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgePluginTests.swift; sourceTree = ""; }; 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFFA72020EE4F00D50D53 /* BadgePlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BadgePlugin.m; sourceTree = ""; }; 50E1A94720377CB70090CE1A /* BadgePlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BadgePlugin.swift; sourceTree = ""; }; 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; }; 7CD6AA5B26B06155008C4493 /* BadgeConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeConfig.swift; sourceTree = ""; }; @@ -96,8 +92,6 @@ children = ( 50E1A94720377CB70090CE1A /* BadgePlugin.swift */, 2F98D68124C9AAE400613A4C /* Badge.swift */, - 50ADFF8B201F53D600D50D53 /* BadgePlugin.h */, - 50ADFFA72020EE4F00D50D53 /* BadgePlugin.m */, 50ADFF8C201F53D600D50D53 /* Info.plist */, 7CD6AA5B26B06155008C4493 /* BadgeConfig.swift */, ); @@ -141,7 +135,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 50ADFF99201F53D600D50D53 /* BadgePlugin.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -312,7 +305,6 @@ 50E1A94820377CB70090CE1A /* BadgePlugin.swift in Sources */, 7CD6AA5C26B06155008C4493 /* BadgeConfig.swift in Sources */, 2F98D68224C9AAE500613A4C /* Badge.swift in Sources */, - 50ADFFA82020EE4F00D50D53 /* BadgePlugin.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/packages/badge/ios/Plugin/BadgePlugin.h b/packages/badge/ios/Plugin/BadgePlugin.h deleted file mode 100644 index f2bd9e0b..00000000 --- a/packages/badge/ios/Plugin/BadgePlugin.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for Plugin. -FOUNDATION_EXPORT double PluginVersionNumber; - -//! Project version string for Plugin. -FOUNDATION_EXPORT const unsigned char PluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/packages/badge/ios/Plugin/BadgePlugin.m b/packages/badge/ios/Plugin/BadgePlugin.m deleted file mode 100644 index 7f96aee8..00000000 --- a/packages/badge/ios/Plugin/BadgePlugin.m +++ /dev/null @@ -1,15 +0,0 @@ -#import -#import - -// Define the plugin using the CAP_PLUGIN Macro, and -// each method the plugin supports using the CAP_PLUGIN_METHOD macro. -CAP_PLUGIN(BadgePlugin, "Badge", - CAP_PLUGIN_METHOD(requestPermissions, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(checkPermissions, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(get, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(set, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(increase, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(decrease, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(clear, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(isSupported, CAPPluginReturnPromise); -) diff --git a/packages/badge/ios/Plugin/BadgePlugin.swift b/packages/badge/ios/Plugin/BadgePlugin.swift index 1272241c..9aa5b82b 100644 --- a/packages/badge/ios/Plugin/BadgePlugin.swift +++ b/packages/badge/ios/Plugin/BadgePlugin.swift @@ -6,7 +6,19 @@ import Capacitor * here: https://capacitorjs.com/docs/plugins/ios */ @objc(BadgePlugin) -public class BadgePlugin: CAPPlugin { +public class BadgePlugin: CAPPlugin, CAPBridgedPlugin { + public let identifier = "BadgePlugin" + public let jsName = "Badge" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "requestPermissions", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "checkPermissions", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "get", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "set", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "increase", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "decrease", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "clear", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "isSupported", returnType: CAPPluginReturnPromise) + ] private var implementation: Badge? override public func load() { diff --git a/packages/badge/package.json b/packages/badge/package.json index 5401064b..70dc7e18 100644 --- a/packages/badge/package.json +++ b/packages/badge/package.json @@ -11,7 +11,8 @@ "android/build.gradle", "dist/", "ios/Plugin/", - "CapawesomeCapacitorBadge.podspec" + "CapawesomeCapacitorBadge.podspec", + "Package.swift" ], "author": "Robin Genz ", "license": "MIT", @@ -58,6 +59,7 @@ "clean": "rimraf ./dist", "watch": "tsc --watch", "ios:pod:install": "cd ios && pod install --repo-update && cd ..", + "ios:spm:install": "cd ios && swift package resolve && cd ..", "prepublishOnly": "npm run build" }, "devDependencies": { diff --git a/packages/cloudinary/.gitignore b/packages/cloudinary/.gitignore index b36840ac..68176379 100644 --- a/packages/cloudinary/.gitignore +++ b/packages/cloudinary/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store @@ -59,6 +67,3 @@ captures # External native build folder generated in Android Studio 2.2 and later .externalNativeBuild - -# VSCode -.vscode diff --git a/packages/cloudinary/CapawesomeCapacitorCloudinary.podspec b/packages/cloudinary/CapawesomeCapacitorCloudinary.podspec index de5f63f5..db6d1e03 100644 --- a/packages/cloudinary/CapawesomeCapacitorCloudinary.podspec +++ b/packages/cloudinary/CapawesomeCapacitorCloudinary.podspec @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source_files = 'ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}' s.ios.deployment_target = '13.0' s.dependency 'Capacitor' - s.dependency 'Cloudinary', '5.0.0' + s.dependency 'Cloudinary', '~> 5.0.0' s.swift_version = '5.1' s.static_framework = true end diff --git a/packages/cloudinary/Package.swift b/packages/cloudinary/Package.swift new file mode 100644 index 00000000..7933daf2 --- /dev/null +++ b/packages/cloudinary/Package.swift @@ -0,0 +1,30 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapawesomeCapacitorCloudinary", + platforms: [.iOS(.v13)], + products: [ + .library( + name: "CapawesomeCapacitorCloudinary", + targets: ["CloudinaryPlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "6.0.0"), + .package(url: "https://github.com/cloudinary/cloudinary_ios.git", .upToNextMajor(from: "5.0.0")) + ], + targets: [ + .target( + name: "CloudinaryPlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm"), + .product(name: "Cloudinary", package: "cloudinary_ios") + ], + path: "ios/Sources/CloudinaryPlugin"), + .testTarget( + name: "CloudinaryPluginTests", + dependencies: ["CloudinaryPlugin"], + path: "ios/Tests/CloudinaryPluginTests") + ] +) diff --git a/packages/cloudinary/ios/Plugin.xcodeproj/project.pbxproj b/packages/cloudinary/ios/Plugin.xcodeproj/project.pbxproj index 7755f324..59ea5185 100644 --- a/packages/cloudinary/ios/Plugin.xcodeproj/project.pbxproj +++ b/packages/cloudinary/ios/Plugin.xcodeproj/project.pbxproj @@ -12,9 +12,7 @@ 2F98D68224C9AAE500613A4C /* Cloudinary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F98D68124C9AAE400613A4C /* Cloudinary.swift */; }; 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; }; 50ADFF97201F53D600D50D53 /* CloudinaryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* CloudinaryTests.swift */; }; - 50ADFF99201F53D600D50D53 /* CloudinaryPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* CloudinaryPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; }; - 50ADFFA82020EE4F00D50D53 /* CloudinaryPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* CloudinaryPlugin.m */; }; 50E1A94820377CB70090CE1A /* CloudinaryPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* CloudinaryPlugin.swift */; }; 7C05C6DD293A2A4900D4DE31 /* CloudinaryHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C05C6DC293A2A4900D4DE31 /* CloudinaryHelper.swift */; }; /* End PBXBuildFile section */ @@ -33,13 +31,11 @@ 2F98D68124C9AAE400613A4C /* Cloudinary.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Cloudinary.swift; sourceTree = ""; }; 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFF8B201F53D600D50D53 /* CloudinaryPlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CloudinaryPlugin.h; sourceTree = ""; }; 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF96201F53D600D50D53 /* CloudinaryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudinaryTests.swift; sourceTree = ""; }; 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFFA72020EE4F00D50D53 /* CloudinaryPlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CloudinaryPlugin.m; sourceTree = ""; }; 50E1A94720377CB70090CE1A /* CloudinaryPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CloudinaryPlugin.swift; sourceTree = ""; }; 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; }; 7C05C6DC293A2A4900D4DE31 /* CloudinaryHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudinaryHelper.swift; sourceTree = ""; }; @@ -96,8 +92,6 @@ children = ( 50E1A94720377CB70090CE1A /* CloudinaryPlugin.swift */, 2F98D68124C9AAE400613A4C /* Cloudinary.swift */, - 50ADFF8B201F53D600D50D53 /* CloudinaryPlugin.h */, - 50ADFFA72020EE4F00D50D53 /* CloudinaryPlugin.m */, 50ADFF8C201F53D600D50D53 /* Info.plist */, 7C05C6DC293A2A4900D4DE31 /* CloudinaryHelper.swift */, ); @@ -141,7 +135,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 50ADFF99201F53D600D50D53 /* CloudinaryPlugin.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -313,7 +306,6 @@ files = ( 50E1A94820377CB70090CE1A /* CloudinaryPlugin.swift in Sources */, 2F98D68224C9AAE500613A4C /* Cloudinary.swift in Sources */, - 50ADFFA82020EE4F00D50D53 /* CloudinaryPlugin.m in Sources */, 7C05C6DD293A2A4900D4DE31 /* CloudinaryHelper.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/packages/cloudinary/ios/Plugin/CloudinaryPlugin.h b/packages/cloudinary/ios/Plugin/CloudinaryPlugin.h deleted file mode 100644 index f2bd9e0b..00000000 --- a/packages/cloudinary/ios/Plugin/CloudinaryPlugin.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for Plugin. -FOUNDATION_EXPORT double PluginVersionNumber; - -//! Project version string for Plugin. -FOUNDATION_EXPORT const unsigned char PluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/packages/cloudinary/ios/Plugin/CloudinaryPlugin.m b/packages/cloudinary/ios/Plugin/CloudinaryPlugin.m deleted file mode 100644 index ab5c627a..00000000 --- a/packages/cloudinary/ios/Plugin/CloudinaryPlugin.m +++ /dev/null @@ -1,10 +0,0 @@ -#import -#import - -// Define the plugin using the CAP_PLUGIN Macro, and -// each method the plugin supports using the CAP_PLUGIN_METHOD macro. -CAP_PLUGIN(CloudinaryPlugin, "Cloudinary", - CAP_PLUGIN_METHOD(initialize, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(uploadResource, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(downloadResource, CAPPluginReturnPromise); -) diff --git a/packages/cloudinary/ios/Plugin/CloudinaryPlugin.swift b/packages/cloudinary/ios/Plugin/CloudinaryPlugin.swift index a1e17c86..aebe9651 100644 --- a/packages/cloudinary/ios/Plugin/CloudinaryPlugin.swift +++ b/packages/cloudinary/ios/Plugin/CloudinaryPlugin.swift @@ -6,7 +6,14 @@ import Capacitor * here: https://capacitorjs.com/docs/plugins/ios */ @objc(CloudinaryPlugin) -public class CloudinaryPlugin: CAPPlugin { +public class CloudinaryPlugin: CAPPlugin, CAPBridgedPlugin { + public let identifier = "CloudinaryPlugin" + public let jsName = "Cloudinary" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "initialize", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "uploadResource", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "downloadResource", returnType: CAPPluginReturnPromise) + ] public let errorNotInitialized = "Plugin is not initialized." public let errorFileNotFound = "The file was not found." public let errorUnknown = "An unknown error occurred." diff --git a/packages/cloudinary/package.json b/packages/cloudinary/package.json index 31ea63ce..26aa70f5 100644 --- a/packages/cloudinary/package.json +++ b/packages/cloudinary/package.json @@ -11,7 +11,8 @@ "android/build.gradle", "dist/", "ios/Plugin/", - "CapawesomeCapacitorCloudinary.podspec" + "CapawesomeCapacitorCloudinary.podspec", + "Package.swift" ], "author": "Robin Genz ", "license": "MIT", @@ -60,6 +61,7 @@ "clean": "rimraf ./dist", "watch": "tsc --watch", "ios:pod:install": "cd ios && pod install --repo-update && cd ..", + "ios:spm:install": "cd ios && swift package resolve && cd ..", "prepublishOnly": "npm run build" }, "devDependencies": { diff --git a/packages/datetime-picker/.gitignore b/packages/datetime-picker/.gitignore index b16e7d49..68176379 100644 --- a/packages/datetime-picker/.gitignore +++ b/packages/datetime-picker/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store @@ -59,6 +67,3 @@ captures # External native build folder generated in Android Studio 2.2 and later .externalNativeBuild - -# VSCode -.vscode/settings.json diff --git a/packages/datetime-picker/Package.swift b/packages/datetime-picker/Package.swift new file mode 100644 index 00000000..4a5f77a0 --- /dev/null +++ b/packages/datetime-picker/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapawesomeTeamCapacitorDatetimePicker", + platforms: [.iOS(.v13)], + products: [ + .library( + name: "CapawesomeTeamCapacitorDatetimePicker", + targets: ["DatetimePickerPlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "6.0.0") + ], + targets: [ + .target( + name: "DatetimePickerPlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm") + ], + path: "ios/Sources/DatetimePickerPlugin"), + .testTarget( + name: "DatetimePickerPluginTests", + dependencies: ["DatetimePickerPlugin"], + path: "ios/Tests/DatetimePickerPluginTests") + ] +) diff --git a/packages/datetime-picker/ios/Plugin.xcodeproj/project.pbxproj b/packages/datetime-picker/ios/Plugin.xcodeproj/project.pbxproj index 1e72fbb6..39a5f126 100644 --- a/packages/datetime-picker/ios/Plugin.xcodeproj/project.pbxproj +++ b/packages/datetime-picker/ios/Plugin.xcodeproj/project.pbxproj @@ -12,9 +12,7 @@ 2F98D68224C9AAE500613A4C /* DatetimePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F98D68124C9AAE400613A4C /* DatetimePicker.swift */; }; 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; }; 50ADFF97201F53D600D50D53 /* DatetimePickerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* DatetimePickerTests.swift */; }; - 50ADFF99201F53D600D50D53 /* DatetimePickerPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* DatetimePickerPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; }; - 50ADFFA82020EE4F00D50D53 /* DatetimePickerPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* DatetimePickerPlugin.m */; }; 50E1A94820377CB70090CE1A /* DatetimePickerPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* DatetimePickerPlugin.swift */; }; 7C0B236E28A3D60300C78F21 /* DatetimePickerHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C0B236D28A3D60300C78F21 /* DatetimePickerHelper.swift */; }; 7C0CB8CE28A3D7D9000D55CD /* RPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C0CB8CD28A3D7D9000D55CD /* RPicker.swift */; }; @@ -38,13 +36,11 @@ 2F98D68124C9AAE400613A4C /* DatetimePicker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatetimePicker.swift; sourceTree = ""; }; 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFF8B201F53D600D50D53 /* DatetimePickerPlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DatetimePickerPlugin.h; sourceTree = ""; }; 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF96201F53D600D50D53 /* DatetimePickerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatetimePickerTests.swift; sourceTree = ""; }; 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFFA72020EE4F00D50D53 /* DatetimePickerPlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DatetimePickerPlugin.m; sourceTree = ""; }; 50E1A94720377CB70090CE1A /* DatetimePickerPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatetimePickerPlugin.swift; sourceTree = ""; }; 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; }; 7C0B236D28A3D60300C78F21 /* DatetimePickerHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatetimePickerHelper.swift; sourceTree = ""; }; @@ -108,8 +104,6 @@ 7C0CB8CD28A3D7D9000D55CD /* RPicker.swift */, 2F98D68124C9AAE400613A4C /* DatetimePicker.swift */, 7C0B236D28A3D60300C78F21 /* DatetimePickerHelper.swift */, - 50ADFF8B201F53D600D50D53 /* DatetimePickerPlugin.h */, - 50ADFFA72020EE4F00D50D53 /* DatetimePickerPlugin.m */, 50ADFF8C201F53D600D50D53 /* Info.plist */, 7CD7816828A3976B001BEAAE /* DatetimePickerConfig.swift */, 7CD7816A28A39BA0001BEAAE /* Theme.swift */, @@ -156,7 +150,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 50ADFF99201F53D600D50D53 /* DatetimePickerPlugin.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -332,7 +325,6 @@ 7CA3513828B69A7C00D3C1C7 /* ErrorCode.swift in Sources */, 7C0CB8CE28A3D7D9000D55CD /* RPicker.swift in Sources */, 7CD7816928A3976B001BEAAE /* DatetimePickerConfig.swift in Sources */, - 50ADFFA82020EE4F00D50D53 /* DatetimePickerPlugin.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/packages/datetime-picker/ios/Plugin/DatetimePickerPlugin.h b/packages/datetime-picker/ios/Plugin/DatetimePickerPlugin.h deleted file mode 100644 index f2bd9e0b..00000000 --- a/packages/datetime-picker/ios/Plugin/DatetimePickerPlugin.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for Plugin. -FOUNDATION_EXPORT double PluginVersionNumber; - -//! Project version string for Plugin. -FOUNDATION_EXPORT const unsigned char PluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/packages/datetime-picker/ios/Plugin/DatetimePickerPlugin.m b/packages/datetime-picker/ios/Plugin/DatetimePickerPlugin.m deleted file mode 100644 index 6fac9de5..00000000 --- a/packages/datetime-picker/ios/Plugin/DatetimePickerPlugin.m +++ /dev/null @@ -1,8 +0,0 @@ -#import -#import - -// Define the plugin using the CAP_PLUGIN Macro, and -// each method the plugin supports using the CAP_PLUGIN_METHOD macro. -CAP_PLUGIN(DatetimePickerPlugin, "DatetimePicker", - CAP_PLUGIN_METHOD(present, CAPPluginReturnPromise); -) diff --git a/packages/datetime-picker/ios/Plugin/DatetimePickerPlugin.swift b/packages/datetime-picker/ios/Plugin/DatetimePickerPlugin.swift index 98a7f12a..b12fb841 100644 --- a/packages/datetime-picker/ios/Plugin/DatetimePickerPlugin.swift +++ b/packages/datetime-picker/ios/Plugin/DatetimePickerPlugin.swift @@ -6,7 +6,12 @@ import Capacitor * here: https://capacitorjs.com/docs/plugins/ios */ @objc(DatetimePickerPlugin) -public class DatetimePickerPlugin: CAPPlugin { +public class DatetimePickerPlugin: CAPPlugin, CAPBridgedPlugin { + public let identifier = "DatetimePickerPlugin" + public let jsName = "DatetimePicker" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "present", returnType: CAPPluginReturnPromise) + ] public let errorModeInvalid = "The provided mode is invalid." public let errorPickerCanceled = "The picker was canceled." public let errorPickerDismissed = "The picker was dismissed." diff --git a/packages/datetime-picker/package.json b/packages/datetime-picker/package.json index 78d14cc9..b7fc8e1d 100644 --- a/packages/datetime-picker/package.json +++ b/packages/datetime-picker/package.json @@ -11,7 +11,8 @@ "android/build.gradle", "dist/", "ios/Plugin/", - "CapawesomeTeamCapacitorDatetimePicker.podspec" + "CapawesomeTeamCapacitorDatetimePicker.podspec", + "Package.swift" ], "author": "Robin Genz ", "license": "MIT", @@ -57,6 +58,7 @@ "clean": "rimraf ./dist", "watch": "tsc --watch", "ios:pod:install": "cd ios && pod install --repo-update && cd ..", + "ios:spm:install": "cd ios && swift package resolve && cd ..", "prepublishOnly": "npm run build" }, "devDependencies": { diff --git a/packages/file-opener/.gitignore b/packages/file-opener/.gitignore index 70ccbf71..68176379 100644 --- a/packages/file-opener/.gitignore +++ b/packages/file-opener/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store diff --git a/packages/file-opener/Package.swift b/packages/file-opener/Package.swift new file mode 100644 index 00000000..e2aea641 --- /dev/null +++ b/packages/file-opener/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapawesomeTeamCapacitorFileOpener", + platforms: [.iOS(.v13)], + products: [ + .library( + name: "CapawesomeTeamCapacitorFileOpener", + targets: ["FileOpenerPlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "6.0.0") + ], + targets: [ + .target( + name: "FileOpenerPlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm") + ], + path: "ios/Sources/FileOpenerPlugin"), + .testTarget( + name: "FileOpenerPluginTests", + dependencies: ["FileOpenerPlugin"], + path: "ios/Tests/FileOpenerPluginTests") + ] +) diff --git a/packages/file-opener/ios/Plugin.xcodeproj/project.pbxproj b/packages/file-opener/ios/Plugin.xcodeproj/project.pbxproj index efb1f62f..c0e3a2c8 100644 --- a/packages/file-opener/ios/Plugin.xcodeproj/project.pbxproj +++ b/packages/file-opener/ios/Plugin.xcodeproj/project.pbxproj @@ -12,9 +12,7 @@ 2F98D68224C9AAE500613A4C /* FileOpener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F98D68124C9AAE400613A4C /* FileOpener.swift */; }; 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; }; 50ADFF97201F53D600D50D53 /* FileOpenerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* FileOpenerTests.swift */; }; - 50ADFF99201F53D600D50D53 /* FileOpenerPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* FileOpenerPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; }; - 50ADFFA82020EE4F00D50D53 /* FileOpenerPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* FileOpenerPlugin.m */; }; 50E1A94820377CB70090CE1A /* FileOpenerPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* FileOpenerPlugin.swift */; }; /* End PBXBuildFile section */ @@ -32,13 +30,11 @@ 2F98D68124C9AAE400613A4C /* FileOpener.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileOpener.swift; sourceTree = ""; }; 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFF8B201F53D600D50D53 /* FileOpenerPlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileOpenerPlugin.h; sourceTree = ""; }; 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF96201F53D600D50D53 /* FileOpenerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileOpenerTests.swift; sourceTree = ""; }; 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFFA72020EE4F00D50D53 /* FileOpenerPlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FileOpenerPlugin.m; sourceTree = ""; }; 50E1A94720377CB70090CE1A /* FileOpenerPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileOpenerPlugin.swift; sourceTree = ""; }; 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; }; 91781294A431A2A7CC6EB714 /* Pods-Plugin.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.release.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.release.xcconfig"; sourceTree = ""; }; @@ -94,8 +90,6 @@ children = ( 50E1A94720377CB70090CE1A /* FileOpenerPlugin.swift */, 2F98D68124C9AAE400613A4C /* FileOpener.swift */, - 50ADFF8B201F53D600D50D53 /* FileOpenerPlugin.h */, - 50ADFFA72020EE4F00D50D53 /* FileOpenerPlugin.m */, 50ADFF8C201F53D600D50D53 /* Info.plist */, ); path = Plugin; @@ -138,7 +132,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 50ADFF99201F53D600D50D53 /* FileOpenerPlugin.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -308,7 +301,6 @@ files = ( 50E1A94820377CB70090CE1A /* FileOpenerPlugin.swift in Sources */, 2F98D68224C9AAE500613A4C /* FileOpener.swift in Sources */, - 50ADFFA82020EE4F00D50D53 /* FileOpenerPlugin.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/packages/file-opener/ios/Plugin/FileOpenerPlugin.h b/packages/file-opener/ios/Plugin/FileOpenerPlugin.h deleted file mode 100644 index f2bd9e0b..00000000 --- a/packages/file-opener/ios/Plugin/FileOpenerPlugin.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for Plugin. -FOUNDATION_EXPORT double PluginVersionNumber; - -//! Project version string for Plugin. -FOUNDATION_EXPORT const unsigned char PluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/packages/file-opener/ios/Plugin/FileOpenerPlugin.m b/packages/file-opener/ios/Plugin/FileOpenerPlugin.m deleted file mode 100644 index 7e5972ed..00000000 --- a/packages/file-opener/ios/Plugin/FileOpenerPlugin.m +++ /dev/null @@ -1,8 +0,0 @@ -#import -#import - -// Define the plugin using the CAP_PLUGIN Macro, and -// each method the plugin supports using the CAP_PLUGIN_METHOD macro. -CAP_PLUGIN(FileOpenerPlugin, "FileOpener", - CAP_PLUGIN_METHOD(openFile, CAPPluginReturnPromise); -) diff --git a/packages/file-opener/ios/Plugin/FileOpenerPlugin.swift b/packages/file-opener/ios/Plugin/FileOpenerPlugin.swift index 16b43729..27156c81 100644 --- a/packages/file-opener/ios/Plugin/FileOpenerPlugin.swift +++ b/packages/file-opener/ios/Plugin/FileOpenerPlugin.swift @@ -6,7 +6,12 @@ import Capacitor * here: https://capacitorjs.com/docs/plugins/ios */ @objc(FileOpenerPlugin) -public class FileOpenerPlugin: CAPPlugin { +public class FileOpenerPlugin: CAPPlugin, CAPBridgedPlugin { + public let identifier = "FileOpenerPlugin" + public let jsName = "FileOpener" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "openFile", returnType: CAPPluginReturnPromise) + ] public let errorPathMissing = "path must be provided." public let errorFileNotExist = "File does not exist." public let errorCannotOpenFile = "File cannot be opened." diff --git a/packages/file-opener/package.json b/packages/file-opener/package.json index 9ea5f16c..44678fe5 100644 --- a/packages/file-opener/package.json +++ b/packages/file-opener/package.json @@ -11,7 +11,8 @@ "android/build.gradle", "dist/", "ios/Plugin/", - "CapawesomeTeamCapacitorFileOpener.podspec" + "CapawesomeTeamCapacitorFileOpener.podspec", + "Package.swift" ], "author": "Robin Genz ", "license": "MIT", @@ -57,6 +58,7 @@ "clean": "rimraf ./dist", "watch": "tsc --watch", "ios:pod:install": "cd ios && pod install --repo-update && cd ..", + "ios:spm:install": "cd ios && swift package resolve && cd ..", "prepublishOnly": "npm run build" }, "devDependencies": { diff --git a/packages/file-picker/.gitignore b/packages/file-picker/.gitignore index b16e7d49..68176379 100644 --- a/packages/file-picker/.gitignore +++ b/packages/file-picker/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store @@ -59,6 +67,3 @@ captures # External native build folder generated in Android Studio 2.2 and later .externalNativeBuild - -# VSCode -.vscode/settings.json diff --git a/packages/file-picker/Package.swift b/packages/file-picker/Package.swift new file mode 100644 index 00000000..f2ba6df1 --- /dev/null +++ b/packages/file-picker/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapawesomeCapacitorFilePicker", + platforms: [.iOS(.v13)], + products: [ + .library( + name: "CapawesomeCapacitorFilePicker", + targets: ["FilePickerPlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "6.0.0") + ], + targets: [ + .target( + name: "FilePickerPlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm") + ], + path: "ios/Sources/FilePickerPlugin"), + .testTarget( + name: "FilePickerPluginTests", + dependencies: ["FilePickerPlugin"], + path: "ios/Tests/FilePickerPluginTests") + ] +) diff --git a/packages/file-picker/ios/Plugin.xcodeproj/project.pbxproj b/packages/file-picker/ios/Plugin.xcodeproj/project.pbxproj index 1cab2918..f700e6a4 100644 --- a/packages/file-picker/ios/Plugin.xcodeproj/project.pbxproj +++ b/packages/file-picker/ios/Plugin.xcodeproj/project.pbxproj @@ -12,9 +12,7 @@ 2F98D68224C9AAE500613A4C /* FilePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F98D68124C9AAE400613A4C /* FilePicker.swift */; }; 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; }; 50ADFF97201F53D600D50D53 /* FilePickerPluginTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* FilePickerPluginTests.swift */; }; - 50ADFF99201F53D600D50D53 /* FilePickerPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* FilePickerPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; }; - 50ADFFA82020EE4F00D50D53 /* FilePickerPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* FilePickerPlugin.m */; }; 50E1A94820377CB70090CE1A /* FilePickerPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* FilePickerPlugin.swift */; }; /* End PBXBuildFile section */ @@ -32,13 +30,11 @@ 2F98D68124C9AAE400613A4C /* FilePicker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilePicker.swift; sourceTree = ""; }; 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFF8B201F53D600D50D53 /* FilePickerPlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilePickerPlugin.h; sourceTree = ""; }; 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF96201F53D600D50D53 /* FilePickerPluginTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilePickerPluginTests.swift; sourceTree = ""; }; 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFFA72020EE4F00D50D53 /* FilePickerPlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FilePickerPlugin.m; sourceTree = ""; }; 50E1A94720377CB70090CE1A /* FilePickerPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilePickerPlugin.swift; sourceTree = ""; }; 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; }; 91781294A431A2A7CC6EB714 /* Pods-Plugin.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.release.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.release.xcconfig"; sourceTree = ""; }; @@ -94,8 +90,6 @@ children = ( 50E1A94720377CB70090CE1A /* FilePickerPlugin.swift */, 2F98D68124C9AAE400613A4C /* FilePicker.swift */, - 50ADFF8B201F53D600D50D53 /* FilePickerPlugin.h */, - 50ADFFA72020EE4F00D50D53 /* FilePickerPlugin.m */, 50ADFF8C201F53D600D50D53 /* Info.plist */, ); path = Plugin; @@ -138,7 +132,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 50ADFF99201F53D600D50D53 /* FilePickerPlugin.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -308,7 +301,6 @@ files = ( 50E1A94820377CB70090CE1A /* FilePickerPlugin.swift in Sources */, 2F98D68224C9AAE500613A4C /* FilePicker.swift in Sources */, - 50ADFFA82020EE4F00D50D53 /* FilePickerPlugin.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/packages/file-picker/ios/Plugin/FilePickerPlugin.h b/packages/file-picker/ios/Plugin/FilePickerPlugin.h deleted file mode 100644 index f2bd9e0b..00000000 --- a/packages/file-picker/ios/Plugin/FilePickerPlugin.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for Plugin. -FOUNDATION_EXPORT double PluginVersionNumber; - -//! Project version string for Plugin. -FOUNDATION_EXPORT const unsigned char PluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/packages/file-picker/ios/Plugin/FilePickerPlugin.m b/packages/file-picker/ios/Plugin/FilePickerPlugin.m deleted file mode 100644 index 6052def5..00000000 --- a/packages/file-picker/ios/Plugin/FilePickerPlugin.m +++ /dev/null @@ -1,13 +0,0 @@ -#import -#import - -// Define the plugin using the CAP_PLUGIN Macro, and -// each method the plugin supports using the CAP_PLUGIN_METHOD macro. -CAP_PLUGIN(FilePickerPlugin, "FilePicker", - CAP_PLUGIN_METHOD(convertHeicToJpeg, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(pickFiles, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(pickImages, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(pickMedia, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(pickVideos, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(pickDirectory, CAPPluginReturnPromise); -) diff --git a/packages/file-picker/ios/Plugin/FilePickerPlugin.swift b/packages/file-picker/ios/Plugin/FilePickerPlugin.swift index 7fceaa6a..4ee63bae 100644 --- a/packages/file-picker/ios/Plugin/FilePickerPlugin.swift +++ b/packages/file-picker/ios/Plugin/FilePickerPlugin.swift @@ -8,7 +8,17 @@ import MobileCoreServices * here: https://capacitorjs.com/docs/plugins/ios */ @objc(FilePickerPlugin) -public class FilePickerPlugin: CAPPlugin { +public class FilePickerPlugin: CAPPlugin, CAPBridgedPlugin { + public let identifier = "FilePickerPlugin" + public let jsName = "FilePicker" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "convertHeicToJpeg", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "pickFiles", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "pickImages", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "pickMedia", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "pickVideos", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "pickDirectory", returnType: CAPPluginReturnPromise) + ] public let errorPathMissing = "path must be provided." public let errorFileNotExist = "File does not exist." public let errorConvertFailed = "File could not be converted." diff --git a/packages/file-picker/package.json b/packages/file-picker/package.json index 3a71409d..fd3a026d 100644 --- a/packages/file-picker/package.json +++ b/packages/file-picker/package.json @@ -11,7 +11,8 @@ "android/build.gradle", "dist/", "ios/Plugin/", - "CapawesomeCapacitorFilePicker.podspec" + "CapawesomeCapacitorFilePicker.podspec", + "Package.swift" ], "author": "Robin Genz ", "license": "MIT", @@ -58,6 +59,7 @@ "clean": "rimraf ./dist", "watch": "tsc --watch", "ios:pod:install": "cd ios && pod install --repo-update && cd ..", + "ios:spm:install": "cd ios && swift package resolve && cd ..", "prepublishOnly": "npm run build" }, "devDependencies": { diff --git a/packages/live-update/.gitignore b/packages/live-update/.gitignore index 70ccbf71..68176379 100644 --- a/packages/live-update/.gitignore +++ b/packages/live-update/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store diff --git a/packages/live-update/CapawesomeCapacitorLiveUpdate.podspec b/packages/live-update/CapawesomeCapacitorLiveUpdate.podspec index 926de26b..7b0397d8 100644 --- a/packages/live-update/CapawesomeCapacitorLiveUpdate.podspec +++ b/packages/live-update/CapawesomeCapacitorLiveUpdate.podspec @@ -14,7 +14,7 @@ Pod::Spec.new do |s| s.ios.deployment_target = '13.0' s.dependency 'Capacitor' s.dependency 'Alamofire', '~> 5.9.0' - s.dependency 'SSZipArchive', '~> 2.2' + s.dependency 'SSZipArchive', '~> 2.2.3' s.swift_version = '5.1' s.static_framework = true end diff --git a/packages/live-update/Package.swift b/packages/live-update/Package.swift new file mode 100644 index 00000000..ed0992a7 --- /dev/null +++ b/packages/live-update/Package.swift @@ -0,0 +1,32 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapawesomeCapacitorLiveUpdate", + platforms: [.iOS(.v16)], + products: [ + .library( + name: "CapawesomeCapacitorLiveUpdate", + targets: ["LiveUpdatePlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "6.0.0"), + .package(url: "https://github.com/Alamofire/Alamofire.git", .upToNextMajor(from: "5.9.0")), + .package(url: "https://github.com/ZipArchive/ZipArchive.git", .upToNextMajor(from: "2.2.3")) + ], + targets: [ + .target( + name: "LiveUpdatePlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm"), + .product(name: "Alamofire", package: "Alamofire"), + .product(name: "ZipArchive", package: "ZipArchive") + ], + path: "ios/Plugin"), + .testTarget( + name: "LiveUpdatePluginTests", + dependencies: ["LiveUpdatePlugin"], + path: "ios/PluginTests") + ] +) diff --git a/packages/live-update/README.md b/packages/live-update/README.md index 94f2c1ca..92391129 100644 --- a/packages/live-update/README.md +++ b/packages/live-update/README.md @@ -61,6 +61,16 @@ Add the `NSPrivacyAccessedAPICategoryUserDefaults` dictionary key to your [Priva We recommend to declare [`CA92.1`](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api#4278401) as the reason for accessing the [`UserDefaults`](https://developer.apple.com/documentation/foundation/userdefaults) API. +#### Minimum Deployment Target + +If you are using **Swift Package Manager (SPM)**, make sure to set the deployment target in your `ios/App/App.xcodeproj/project.pbxproj` to at least 16.0: + +```diff +IPHONEOS_DEPLOYMENT_TARGET = 16.0; +``` + +No changes are required if you are using **CocoaPods**. + ## Configuration diff --git a/packages/live-update/ios/Plugin.xcodeproj/project.pbxproj b/packages/live-update/ios/Plugin.xcodeproj/project.pbxproj index 4a3897ee..2c7aa356 100644 --- a/packages/live-update/ios/Plugin.xcodeproj/project.pbxproj +++ b/packages/live-update/ios/Plugin.xcodeproj/project.pbxproj @@ -12,9 +12,7 @@ 2F98D68224C9AAE500613A4C /* LiveUpdate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F98D68124C9AAE400613A4C /* LiveUpdate.swift */; }; 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; }; 50ADFF97201F53D600D50D53 /* LiveUpdateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* LiveUpdateTests.swift */; }; - 50ADFF99201F53D600D50D53 /* LiveUpdatePlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* LiveUpdatePlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; }; - 50ADFFA82020EE4F00D50D53 /* LiveUpdatePlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* LiveUpdatePlugin.m */; }; 50E1A94820377CB70090CE1A /* LiveUpdatePlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* LiveUpdatePlugin.swift */; }; 7C0C8C492BAB354A005F76D1 /* LiveUpdateConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C0C8C482BAB354A005F76D1 /* LiveUpdateConfig.swift */; }; 7C2011512BA9653B001FABAD /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C2011502BA9653B001FABAD /* Result.swift */; }; @@ -60,13 +58,11 @@ 2F98D68124C9AAE400613A4C /* LiveUpdate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LiveUpdate.swift; sourceTree = ""; }; 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFF8B201F53D600D50D53 /* LiveUpdatePlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LiveUpdatePlugin.h; sourceTree = ""; }; 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF96201F53D600D50D53 /* LiveUpdateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveUpdateTests.swift; sourceTree = ""; }; 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFFA72020EE4F00D50D53 /* LiveUpdatePlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LiveUpdatePlugin.m; sourceTree = ""; }; 50E1A94720377CB70090CE1A /* LiveUpdatePlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LiveUpdatePlugin.swift; sourceTree = ""; }; 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; }; 7C0C8C482BAB354A005F76D1 /* LiveUpdateConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveUpdateConfig.swift; sourceTree = ""; }; @@ -156,8 +152,6 @@ 7C29FB4F2CBAB66C007DCB06 /* LiveUpdateHttpClient.swift */, 7C6715D82BB1BDAC0000878A /* LiveUpdatePreferences.swift */, 7C0C8C482BAB354A005F76D1 /* LiveUpdateConfig.swift */, - 50ADFF8B201F53D600D50D53 /* LiveUpdatePlugin.h */, - 50ADFFA72020EE4F00D50D53 /* LiveUpdatePlugin.m */, 50ADFF8C201F53D600D50D53 /* Info.plist */, ); path = Plugin; @@ -270,7 +264,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 50ADFF99201F53D600D50D53 /* LiveUpdatePlugin.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -472,7 +465,6 @@ 7C4274D52D1487500066184E /* SyncOptions.swift in Sources */, 7C33FC412BCBFE16003AA8B4 /* GetBundleResult.swift in Sources */, 7C2011552BA9656E001FABAD /* SetBundleOptions.swift in Sources */, - 50ADFFA82020EE4F00D50D53 /* LiveUpdatePlugin.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/packages/live-update/ios/Plugin/LiveUpdate.swift b/packages/live-update/ios/Plugin/LiveUpdate.swift index 6e9427b1..eef3b97c 100644 --- a/packages/live-update/ios/Plugin/LiveUpdate.swift +++ b/packages/live-update/ios/Plugin/LiveUpdate.swift @@ -1,6 +1,10 @@ import Foundation import CryptoKit +#if canImport(ZipArchive) +import ZipArchive +#else import SSZipArchive +#endif import Capacitor import Alamofire import CommonCrypto diff --git a/packages/live-update/ios/Plugin/LiveUpdatePlugin.h b/packages/live-update/ios/Plugin/LiveUpdatePlugin.h deleted file mode 100644 index f2bd9e0b..00000000 --- a/packages/live-update/ios/Plugin/LiveUpdatePlugin.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for Plugin. -FOUNDATION_EXPORT double PluginVersionNumber; - -//! Project version string for Plugin. -FOUNDATION_EXPORT const unsigned char PluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/packages/live-update/ios/Plugin/LiveUpdatePlugin.m b/packages/live-update/ios/Plugin/LiveUpdatePlugin.m deleted file mode 100644 index 3aab1d46..00000000 --- a/packages/live-update/ios/Plugin/LiveUpdatePlugin.m +++ /dev/null @@ -1,27 +0,0 @@ -#import -#import - -// Define the plugin using the CAP_PLUGIN Macro, and -// each method the plugin supports using the CAP_PLUGIN_METHOD macro. -CAP_PLUGIN(LiveUpdatePlugin, "LiveUpdate", - CAP_PLUGIN_METHOD(deleteBundle, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(downloadBundle, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(fetchLatestBundle, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getBundle, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getBundles, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getChannel, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getCurrentBundle, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getCustomId, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getDeviceId, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getNextBundle, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getVersionCode, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getVersionName, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(ready, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(reload, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(reset, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(setBundle, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(setChannel, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(setCustomId, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(setNextBundle, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(sync, CAPPluginReturnPromise); -) diff --git a/packages/live-update/ios/Plugin/LiveUpdatePlugin.swift b/packages/live-update/ios/Plugin/LiveUpdatePlugin.swift index 62e47dfb..7a370ef8 100644 --- a/packages/live-update/ios/Plugin/LiveUpdatePlugin.swift +++ b/packages/live-update/ios/Plugin/LiveUpdatePlugin.swift @@ -6,11 +6,36 @@ import Capacitor * here: https://capacitorjs.com/docs/plugins/ios */ @objc(LiveUpdatePlugin) -public class LiveUpdatePlugin: CAPPlugin { +public class LiveUpdatePlugin: CAPPlugin, CAPBridgedPlugin { public static let tag = "LiveUpdate" - public static let version = "6.7.1" + public static let version = "6.8.0" public static let userDefaultsPrefix = "CapawesomeLiveUpdate" // DO NOT CHANGE + public let identifier = "LiveUpdatePlugin" + public let jsName = "LiveUpdate" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "deleteBundle", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "downloadBundle", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "fetchLatestBundle", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getBundle", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getBundles", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getChannel", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getCurrentBundle", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getCustomId", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getDeviceId", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getNextBundle", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getVersionCode", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getVersionName", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "ready", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "reload", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "reset", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "setBundle", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "setChannel", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "setCustomId", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "setNextBundle", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "sync", returnType: CAPPluginReturnPromise) + ] + private var config: LiveUpdateConfig? private var implementation: LiveUpdate? private var syncInProgress = false diff --git a/packages/live-update/package.json b/packages/live-update/package.json index 1e1d700c..eb9868e3 100644 --- a/packages/live-update/package.json +++ b/packages/live-update/package.json @@ -11,7 +11,8 @@ "android/build.gradle", "dist/", "ios/Plugin/", - "CapawesomeCapacitorLiveUpdate.podspec" + "CapawesomeCapacitorLiveUpdate.podspec", + "Package.swift" ], "author": "Robin Genz ", "license": "MIT", diff --git a/packages/managed-configurations/.gitignore b/packages/managed-configurations/.gitignore index 70ccbf71..68176379 100644 --- a/packages/managed-configurations/.gitignore +++ b/packages/managed-configurations/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store diff --git a/packages/managed-configurations/Package.swift b/packages/managed-configurations/Package.swift new file mode 100644 index 00000000..1a990552 --- /dev/null +++ b/packages/managed-configurations/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapawesomeCapacitorManagedConfigurations", + platforms: [.iOS(.v13)], + products: [ + .library( + name: "CapawesomeCapacitorManagedConfigurations", + targets: ["ManagedConfigurationsPlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "6.0.0") + ], + targets: [ + .target( + name: "ManagedConfigurationsPlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm") + ], + path: "ios/Sources/ManagedConfigurationsPlugin"), + .testTarget( + name: "ManagedConfigurationsPluginTests", + dependencies: ["ManagedConfigurationsPlugin"], + path: "ios/Tests/ManagedConfigurationsPluginTests") + ] +) diff --git a/packages/managed-configurations/ios/Plugin.xcodeproj/project.pbxproj b/packages/managed-configurations/ios/Plugin.xcodeproj/project.pbxproj index 5d40e6a8..1e527195 100644 --- a/packages/managed-configurations/ios/Plugin.xcodeproj/project.pbxproj +++ b/packages/managed-configurations/ios/Plugin.xcodeproj/project.pbxproj @@ -12,9 +12,7 @@ 2F98D68224C9AAE500613A4C /* ManagedConfigurations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F98D68124C9AAE400613A4C /* ManagedConfigurations.swift */; }; 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; }; 50ADFF97201F53D600D50D53 /* ManagedConfigurationsPluginTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* ManagedConfigurationsPluginTests.swift */; }; - 50ADFF99201F53D600D50D53 /* ManagedConfigurationsPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* ManagedConfigurationsPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; }; - 50ADFFA82020EE4F00D50D53 /* ManagedConfigurationsPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* ManagedConfigurationsPlugin.m */; }; 50E1A94820377CB70090CE1A /* ManagedConfigurationsPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* ManagedConfigurationsPlugin.swift */; }; /* End PBXBuildFile section */ @@ -32,13 +30,11 @@ 2F98D68124C9AAE400613A4C /* ManagedConfigurations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedConfigurations.swift; sourceTree = ""; }; 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFF8B201F53D600D50D53 /* ManagedConfigurationsPlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ManagedConfigurationsPlugin.h; sourceTree = ""; }; 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF96201F53D600D50D53 /* ManagedConfigurationsPluginTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedConfigurationsPluginTests.swift; sourceTree = ""; }; 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFFA72020EE4F00D50D53 /* ManagedConfigurationsPlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ManagedConfigurationsPlugin.m; sourceTree = ""; }; 50E1A94720377CB70090CE1A /* ManagedConfigurationsPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedConfigurationsPlugin.swift; sourceTree = ""; }; 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; }; 91781294A431A2A7CC6EB714 /* Pods-Plugin.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.release.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.release.xcconfig"; sourceTree = ""; }; @@ -94,8 +90,6 @@ children = ( 50E1A94720377CB70090CE1A /* ManagedConfigurationsPlugin.swift */, 2F98D68124C9AAE400613A4C /* ManagedConfigurations.swift */, - 50ADFF8B201F53D600D50D53 /* ManagedConfigurationsPlugin.h */, - 50ADFFA72020EE4F00D50D53 /* ManagedConfigurationsPlugin.m */, 50ADFF8C201F53D600D50D53 /* Info.plist */, ); path = Plugin; @@ -138,7 +132,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 50ADFF99201F53D600D50D53 /* ManagedConfigurationsPlugin.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -308,7 +301,6 @@ files = ( 50E1A94820377CB70090CE1A /* ManagedConfigurationsPlugin.swift in Sources */, 2F98D68224C9AAE500613A4C /* ManagedConfigurations.swift in Sources */, - 50ADFFA82020EE4F00D50D53 /* ManagedConfigurationsPlugin.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/packages/managed-configurations/ios/Plugin/ManagedConfigurationsPlugin.h b/packages/managed-configurations/ios/Plugin/ManagedConfigurationsPlugin.h deleted file mode 100644 index f2bd9e0b..00000000 --- a/packages/managed-configurations/ios/Plugin/ManagedConfigurationsPlugin.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for Plugin. -FOUNDATION_EXPORT double PluginVersionNumber; - -//! Project version string for Plugin. -FOUNDATION_EXPORT const unsigned char PluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/packages/managed-configurations/ios/Plugin/ManagedConfigurationsPlugin.m b/packages/managed-configurations/ios/Plugin/ManagedConfigurationsPlugin.m deleted file mode 100644 index c358fecb..00000000 --- a/packages/managed-configurations/ios/Plugin/ManagedConfigurationsPlugin.m +++ /dev/null @@ -1,10 +0,0 @@ -#import -#import - -// Define the plugin using the CAP_PLUGIN Macro, and -// each method the plugin supports using the CAP_PLUGIN_METHOD macro. -CAP_PLUGIN(ManagedConfigurationsPlugin, "ManagedConfigurations", - CAP_PLUGIN_METHOD(getString, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getNumber, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getBoolean, CAPPluginReturnPromise); -) diff --git a/packages/managed-configurations/ios/Plugin/ManagedConfigurationsPlugin.swift b/packages/managed-configurations/ios/Plugin/ManagedConfigurationsPlugin.swift index 35b87694..64ec508d 100644 --- a/packages/managed-configurations/ios/Plugin/ManagedConfigurationsPlugin.swift +++ b/packages/managed-configurations/ios/Plugin/ManagedConfigurationsPlugin.swift @@ -6,7 +6,14 @@ import Capacitor * here: https://capacitorjs.com/docs/plugins/ios */ @objc(ManagedConfigurationsPlugin) -public class ManagedConfigurationsPlugin: CAPPlugin { +public class ManagedConfigurationsPlugin: CAPPlugin, CAPBridgedPlugin { + public let identifier = "ManagedConfigurationsPlugin" + public let jsName = "ManagedConfigurations" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "getString", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getNumber", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getBoolean", returnType: CAPPluginReturnPromise) + ] public let errorKeyMissing = "traceName must be provided." private var implementation: ManagedConfigurations? diff --git a/packages/managed-configurations/package.json b/packages/managed-configurations/package.json index cc6580d9..b717c700 100644 --- a/packages/managed-configurations/package.json +++ b/packages/managed-configurations/package.json @@ -11,7 +11,8 @@ "android/build.gradle", "dist/", "ios/Plugin/", - "CapawesomeCapacitorManagedConfigurations.podspec" + "CapawesomeCapacitorManagedConfigurations.podspec", + "Package.swift" ], "author": "Robin Genz ", "license": "MIT", @@ -57,6 +58,7 @@ "clean": "rimraf ./dist", "watch": "tsc --watch", "ios:pod:install": "cd ios && pod install --repo-update && cd ..", + "ios:spm:install": "cd ios && swift package resolve && cd ..", "prepublishOnly": "npm run build" }, "devDependencies": { diff --git a/packages/photo-editor/.gitignore b/packages/photo-editor/.gitignore index b16e7d49..68176379 100644 --- a/packages/photo-editor/.gitignore +++ b/packages/photo-editor/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store @@ -59,6 +67,3 @@ captures # External native build folder generated in Android Studio 2.2 and later .externalNativeBuild - -# VSCode -.vscode/settings.json diff --git a/packages/photo-editor/Package.swift b/packages/photo-editor/Package.swift new file mode 100644 index 00000000..dda37dca --- /dev/null +++ b/packages/photo-editor/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapawesomeCapacitorPhotoEditor", + platforms: [.iOS(.v13)], + products: [ + .library( + name: "CapawesomeCapacitorPhotoEditor", + targets: ["PhotoEditorPlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "6.0.0") + ], + targets: [ + .target( + name: "PhotoEditorPlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm") + ], + path: "ios/Sources/PhotoEditorPlugin"), + .testTarget( + name: "PhotoEditorPluginTests", + dependencies: ["PhotoEditorPlugin"], + path: "ios/Tests/PhotoEditorPluginTests") + ] +) diff --git a/packages/photo-editor/ios/Plugin.xcodeproj/project.pbxproj b/packages/photo-editor/ios/Plugin.xcodeproj/project.pbxproj index efb08040..95515b6f 100644 --- a/packages/photo-editor/ios/Plugin.xcodeproj/project.pbxproj +++ b/packages/photo-editor/ios/Plugin.xcodeproj/project.pbxproj @@ -12,9 +12,7 @@ 2F98D68224C9AAE500613A4C /* PhotoEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F98D68124C9AAE400613A4C /* PhotoEditor.swift */; }; 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; }; 50ADFF97201F53D600D50D53 /* PhotoEditorPluginTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* PhotoEditorPluginTests.swift */; }; - 50ADFF99201F53D600D50D53 /* PhotoEditorPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* PhotoEditorPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; }; - 50ADFFA82020EE4F00D50D53 /* PhotoEditorPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* PhotoEditorPlugin.m */; }; 50E1A94820377CB70090CE1A /* PhotoEditorPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* PhotoEditorPlugin.swift */; }; /* End PBXBuildFile section */ @@ -32,13 +30,11 @@ 2F98D68124C9AAE400613A4C /* PhotoEditor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhotoEditor.swift; sourceTree = ""; }; 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFF8B201F53D600D50D53 /* PhotoEditorPlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PhotoEditorPlugin.h; sourceTree = ""; }; 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF96201F53D600D50D53 /* PhotoEditorPluginTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoEditorPluginTests.swift; sourceTree = ""; }; 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFFA72020EE4F00D50D53 /* PhotoEditorPlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PhotoEditorPlugin.m; sourceTree = ""; }; 50E1A94720377CB70090CE1A /* PhotoEditorPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhotoEditorPlugin.swift; sourceTree = ""; }; 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; }; 91781294A431A2A7CC6EB714 /* Pods-Plugin.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.release.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.release.xcconfig"; sourceTree = ""; }; @@ -94,8 +90,6 @@ children = ( 50E1A94720377CB70090CE1A /* PhotoEditorPlugin.swift */, 2F98D68124C9AAE400613A4C /* PhotoEditor.swift */, - 50ADFF8B201F53D600D50D53 /* PhotoEditorPlugin.h */, - 50ADFFA72020EE4F00D50D53 /* PhotoEditorPlugin.m */, 50ADFF8C201F53D600D50D53 /* Info.plist */, ); path = Plugin; @@ -138,7 +132,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 50ADFF99201F53D600D50D53 /* PhotoEditorPlugin.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -308,7 +301,6 @@ files = ( 50E1A94820377CB70090CE1A /* PhotoEditorPlugin.swift in Sources */, 2F98D68224C9AAE500613A4C /* PhotoEditor.swift in Sources */, - 50ADFFA82020EE4F00D50D53 /* PhotoEditorPlugin.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/packages/photo-editor/ios/Plugin/PhotoEditorPlugin.h b/packages/photo-editor/ios/Plugin/PhotoEditorPlugin.h deleted file mode 100644 index f2bd9e0b..00000000 --- a/packages/photo-editor/ios/Plugin/PhotoEditorPlugin.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for Plugin. -FOUNDATION_EXPORT double PluginVersionNumber; - -//! Project version string for Plugin. -FOUNDATION_EXPORT const unsigned char PluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/packages/photo-editor/ios/Plugin/PhotoEditorPlugin.m b/packages/photo-editor/ios/Plugin/PhotoEditorPlugin.m deleted file mode 100644 index e4ed7011..00000000 --- a/packages/photo-editor/ios/Plugin/PhotoEditorPlugin.m +++ /dev/null @@ -1,8 +0,0 @@ -#import -#import - -// Define the plugin using the CAP_PLUGIN Macro, and -// each method the plugin supports using the CAP_PLUGIN_METHOD macro. -CAP_PLUGIN(PhotoEditorPlugin, "PhotoEditor", - CAP_PLUGIN_METHOD(editPhoto, CAPPluginReturnPromise); -) diff --git a/packages/photo-editor/ios/Plugin/PhotoEditorPlugin.swift b/packages/photo-editor/ios/Plugin/PhotoEditorPlugin.swift index ff740e2f..26fd1703 100644 --- a/packages/photo-editor/ios/Plugin/PhotoEditorPlugin.swift +++ b/packages/photo-editor/ios/Plugin/PhotoEditorPlugin.swift @@ -6,7 +6,12 @@ import Capacitor * here: https://capacitorjs.com/docs/plugins/ios */ @objc(PhotoEditorPlugin) -public class PhotoEditorPlugin: CAPPlugin { +public class PhotoEditorPlugin: CAPPlugin, CAPBridgedPlugin { + public let identifier = "PhotoEditorPlugin" + public let jsName = "PhotoEditor" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "editPhoto", returnType: CAPPluginReturnPromise) + ] private let implementation = PhotoEditor() @objc func editPhoto(_ call: CAPPluginCall) { diff --git a/packages/photo-editor/package.json b/packages/photo-editor/package.json index 7327e7dd..13777301 100644 --- a/packages/photo-editor/package.json +++ b/packages/photo-editor/package.json @@ -11,7 +11,8 @@ "android/build.gradle", "dist/", "ios/Plugin/", - "CapawesomeCapacitorPhotoEditor.podspec" + "CapawesomeCapacitorPhotoEditor.podspec", + "Package.swift" ], "author": "Robin Genz ", "license": "MIT", @@ -57,6 +58,7 @@ "clean": "rimraf ./dist", "watch": "tsc --watch", "ios:pod:install": "cd ios && pod install --repo-update && cd ..", + "ios:spm:install": "cd ios && swift package resolve && cd ..", "prepublishOnly": "npm run build" }, "devDependencies": { diff --git a/packages/posthog/.gitignore b/packages/posthog/.gitignore index 70ccbf71..68176379 100644 --- a/packages/posthog/.gitignore +++ b/packages/posthog/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store diff --git a/packages/posthog/CapawesomeCapacitorPosthog.podspec b/packages/posthog/CapawesomeCapacitorPosthog.podspec index 2e42da71..f77de344 100644 --- a/packages/posthog/CapawesomeCapacitorPosthog.podspec +++ b/packages/posthog/CapawesomeCapacitorPosthog.podspec @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source_files = 'ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}' s.ios.deployment_target = '13.0' s.dependency 'Capacitor' - s.dependency 'PostHog', '3.8.2' + s.dependency 'PostHog', '~> 3.8.2' s.swift_version = '5.1' s.static_framework = true end diff --git a/packages/posthog/Package.swift b/packages/posthog/Package.swift new file mode 100644 index 00000000..2640edcb --- /dev/null +++ b/packages/posthog/Package.swift @@ -0,0 +1,30 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapawesomeCapacitorPosthog", + platforms: [.iOS(.v13)], + products: [ + .library( + name: "CapawesomeCapacitorPosthog", + targets: ["PosthogPlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "6.0.0"), + .package(url: "https://github.com/PostHog/posthog-ios.git", .upToNextMajor(from: "3.8.2")) + ], + targets: [ + .target( + name: "PosthogPlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm"), + .product(name: "PostHog", package: "posthog-ios") + ], + path: "ios/Sources/PosthogPlugin"), + .testTarget( + name: "PosthogPluginTests", + dependencies: ["PosthogPlugin"], + path: "ios/Tests/PosthogPluginTests") + ] +) diff --git a/packages/posthog/ios/Plugin.xcodeproj/project.pbxproj b/packages/posthog/ios/Plugin.xcodeproj/project.pbxproj index c45aefa1..49e83a2b 100644 --- a/packages/posthog/ios/Plugin.xcodeproj/project.pbxproj +++ b/packages/posthog/ios/Plugin.xcodeproj/project.pbxproj @@ -12,9 +12,7 @@ 2F98D68224C9AAE500613A4C /* Posthog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F98D68124C9AAE400613A4C /* Posthog.swift */; }; 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; }; 50ADFF97201F53D600D50D53 /* PosthogTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* PosthogTests.swift */; }; - 50ADFF99201F53D600D50D53 /* PosthogPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* PosthogPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; }; - 50ADFFA82020EE4F00D50D53 /* PosthogPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* PosthogPlugin.m */; }; 50E1A94820377CB70090CE1A /* PosthogPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* PosthogPlugin.swift */; }; 7C28C8C22C8AE99100271553 /* AliasOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C28C8C12C8AE99100271553 /* AliasOptions.swift */; }; 7C28C8C42C8AE99E00271553 /* CaptureOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C28C8C32C8AE99E00271553 /* CaptureOptions.swift */; }; @@ -41,13 +39,11 @@ 2F98D68124C9AAE400613A4C /* Posthog.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Posthog.swift; sourceTree = ""; }; 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFF8B201F53D600D50D53 /* PosthogPlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PosthogPlugin.h; sourceTree = ""; }; 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF96201F53D600D50D53 /* PosthogTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PosthogTests.swift; sourceTree = ""; }; 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFFA72020EE4F00D50D53 /* PosthogPlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PosthogPlugin.m; sourceTree = ""; }; 50E1A94720377CB70090CE1A /* PosthogPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PosthogPlugin.swift; sourceTree = ""; }; 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; }; 7C28C8C12C8AE99100271553 /* AliasOptions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AliasOptions.swift; sourceTree = ""; }; @@ -114,8 +110,6 @@ 50E1A94720377CB70090CE1A /* PosthogPlugin.swift */, 2F98D68124C9AAE400613A4C /* Posthog.swift */, 7C28C8CF2C8AEA2E00271553 /* PosthogHelper.swift */, - 50ADFF8B201F53D600D50D53 /* PosthogPlugin.h */, - 50ADFFA72020EE4F00D50D53 /* PosthogPlugin.m */, 50ADFF8C201F53D600D50D53 /* Info.plist */, ); path = Plugin; @@ -181,7 +175,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 50ADFF99201F53D600D50D53 /* PosthogPlugin.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -359,7 +352,6 @@ 2F98D68224C9AAE500613A4C /* Posthog.swift in Sources */, 7C28C8C62C8AE9AC00271553 /* IdentifyOptions.swift in Sources */, 7C28C8CE2C8AE9D800271553 /* UnregisterOptions.swift in Sources */, - 50ADFFA82020EE4F00D50D53 /* PosthogPlugin.m in Sources */, 7C28C8C22C8AE99100271553 /* AliasOptions.swift in Sources */, 7CFD6A9E2C8B046100FF2B17 /* GroupOptions.swift in Sources */, 7C28C8C42C8AE99E00271553 /* CaptureOptions.swift in Sources */, diff --git a/packages/posthog/ios/Plugin/PosthogPlugin.h b/packages/posthog/ios/Plugin/PosthogPlugin.h deleted file mode 100644 index f2bd9e0b..00000000 --- a/packages/posthog/ios/Plugin/PosthogPlugin.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for Plugin. -FOUNDATION_EXPORT double PluginVersionNumber; - -//! Project version string for Plugin. -FOUNDATION_EXPORT const unsigned char PluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/packages/posthog/ios/Plugin/PosthogPlugin.m b/packages/posthog/ios/Plugin/PosthogPlugin.m deleted file mode 100644 index f1b3d090..00000000 --- a/packages/posthog/ios/Plugin/PosthogPlugin.m +++ /dev/null @@ -1,17 +0,0 @@ -#import -#import - -// Define the plugin using the CAP_PLUGIN Macro, and -// each method the plugin supports using the CAP_PLUGIN_METHOD macro. -CAP_PLUGIN(PosthogPlugin, "Posthog", - CAP_PLUGIN_METHOD(alias, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(capture, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(flush, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(group, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(identify, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(register, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(reset, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(screen, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(setup, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(unregister, CAPPluginReturnPromise); -) diff --git a/packages/posthog/ios/Plugin/PosthogPlugin.swift b/packages/posthog/ios/Plugin/PosthogPlugin.swift index 9b264129..e2ce1095 100644 --- a/packages/posthog/ios/Plugin/PosthogPlugin.swift +++ b/packages/posthog/ios/Plugin/PosthogPlugin.swift @@ -6,7 +6,21 @@ import Capacitor * here: https://capacitorjs.com/docs/plugins/ios */ @objc(PosthogPlugin) -public class PosthogPlugin: CAPPlugin { +public class PosthogPlugin: CAPPlugin, CAPBridgedPlugin { + public let identifier = "PosthogPlugin" + public let jsName = "Posthog" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "alias", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "capture", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "flush", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "group", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "identify", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "register", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "reset", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "screen", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "setup", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "unregister", returnType: CAPPluginReturnPromise) + ] public let tag = "Posthog" public let errorAliasMissing = "alias must be provided." public let errorApiKeyMissing = "apiKey must be provided." diff --git a/packages/posthog/package.json b/packages/posthog/package.json index 9fdb15c0..d469dc4b 100644 --- a/packages/posthog/package.json +++ b/packages/posthog/package.json @@ -11,7 +11,8 @@ "android/build.gradle", "dist/", "ios/Plugin/", - "CapawesomeCapacitorPosthog.podspec" + "CapawesomeCapacitorPosthog.podspec", + "Package.swift" ], "author": "Robin Genz ", "license": "MIT", @@ -54,6 +55,7 @@ "clean": "rimraf ./dist", "watch": "tsc --watch", "ios:pod:install": "cd ios && pod install --repo-update && cd ..", + "ios:spm:install": "cd ios && swift package resolve && cd ..", "prepublishOnly": "npm run build" }, "devDependencies": { diff --git a/packages/screen-orientation/.gitignore b/packages/screen-orientation/.gitignore index b36840ac..68176379 100644 --- a/packages/screen-orientation/.gitignore +++ b/packages/screen-orientation/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store @@ -59,6 +67,3 @@ captures # External native build folder generated in Android Studio 2.2 and later .externalNativeBuild - -# VSCode -.vscode diff --git a/packages/screen-orientation/Package.swift b/packages/screen-orientation/Package.swift new file mode 100644 index 00000000..234e9526 --- /dev/null +++ b/packages/screen-orientation/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapawesomeCapacitorScreenOrientation", + platforms: [.iOS(.v13)], + products: [ + .library( + name: "CapawesomeCapacitorScreenOrientation", + targets: ["ScreenOrientationPlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "6.0.0") + ], + targets: [ + .target( + name: "ScreenOrientationPlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm") + ], + path: "ios/Sources/ScreenOrientationPlugin"), + .testTarget( + name: "ScreenOrientationPluginTests", + dependencies: ["ScreenOrientationPlugin"], + path: "ios/Tests/ScreenOrientationPluginTests") + ] +) diff --git a/packages/screen-orientation/ios/Plugin.xcodeproj/project.pbxproj b/packages/screen-orientation/ios/Plugin.xcodeproj/project.pbxproj index 37aef1e9..781a2699 100644 --- a/packages/screen-orientation/ios/Plugin.xcodeproj/project.pbxproj +++ b/packages/screen-orientation/ios/Plugin.xcodeproj/project.pbxproj @@ -12,9 +12,7 @@ 2F98D68224C9AAE500613A4C /* ScreenOrientation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F98D68124C9AAE400613A4C /* ScreenOrientation.swift */; }; 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; }; 50ADFF97201F53D600D50D53 /* ScreenOrientationPluginTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* ScreenOrientationPluginTests.swift */; }; - 50ADFF99201F53D600D50D53 /* ScreenOrientationPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* ScreenOrientationPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; }; - 50ADFFA82020EE4F00D50D53 /* ScreenOrientationPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* ScreenOrientationPlugin.m */; }; 50E1A94820377CB70090CE1A /* ScreenOrientationPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* ScreenOrientationPlugin.swift */; }; /* End PBXBuildFile section */ @@ -32,13 +30,11 @@ 2F98D68124C9AAE400613A4C /* ScreenOrientation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScreenOrientation.swift; sourceTree = ""; }; 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFF8B201F53D600D50D53 /* ScreenOrientationPlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScreenOrientationPlugin.h; sourceTree = ""; }; 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF96201F53D600D50D53 /* ScreenOrientationPluginTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScreenOrientationPluginTests.swift; sourceTree = ""; }; 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFFA72020EE4F00D50D53 /* ScreenOrientationPlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScreenOrientationPlugin.m; sourceTree = ""; }; 50E1A94720377CB70090CE1A /* ScreenOrientationPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScreenOrientationPlugin.swift; sourceTree = ""; }; 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; }; 91781294A431A2A7CC6EB714 /* Pods-Plugin.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.release.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.release.xcconfig"; sourceTree = ""; }; @@ -94,8 +90,6 @@ children = ( 50E1A94720377CB70090CE1A /* ScreenOrientationPlugin.swift */, 2F98D68124C9AAE400613A4C /* ScreenOrientation.swift */, - 50ADFF8B201F53D600D50D53 /* ScreenOrientationPlugin.h */, - 50ADFFA72020EE4F00D50D53 /* ScreenOrientationPlugin.m */, 50ADFF8C201F53D600D50D53 /* Info.plist */, ); path = Plugin; @@ -138,7 +132,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 50ADFF99201F53D600D50D53 /* ScreenOrientationPlugin.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -308,7 +301,6 @@ files = ( 50E1A94820377CB70090CE1A /* ScreenOrientationPlugin.swift in Sources */, 2F98D68224C9AAE500613A4C /* ScreenOrientation.swift in Sources */, - 50ADFFA82020EE4F00D50D53 /* ScreenOrientationPlugin.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/packages/screen-orientation/ios/Plugin/ScreenOrientationPlugin.h b/packages/screen-orientation/ios/Plugin/ScreenOrientationPlugin.h deleted file mode 100644 index f2bd9e0b..00000000 --- a/packages/screen-orientation/ios/Plugin/ScreenOrientationPlugin.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for Plugin. -FOUNDATION_EXPORT double PluginVersionNumber; - -//! Project version string for Plugin. -FOUNDATION_EXPORT const unsigned char PluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/packages/screen-orientation/ios/Plugin/ScreenOrientationPlugin.m b/packages/screen-orientation/ios/Plugin/ScreenOrientationPlugin.m deleted file mode 100644 index 177f7791..00000000 --- a/packages/screen-orientation/ios/Plugin/ScreenOrientationPlugin.m +++ /dev/null @@ -1,10 +0,0 @@ -#import -#import - -// Define the plugin using the CAP_PLUGIN Macro, and -// each method the plugin supports using the CAP_PLUGIN_METHOD macro. -CAP_PLUGIN(ScreenOrientationPlugin, "ScreenOrientation", - CAP_PLUGIN_METHOD(lock, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(unlock, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(getCurrentOrientation, CAPPluginReturnPromise); -) diff --git a/packages/screen-orientation/ios/Plugin/ScreenOrientationPlugin.swift b/packages/screen-orientation/ios/Plugin/ScreenOrientationPlugin.swift index 5462a891..c8a42498 100644 --- a/packages/screen-orientation/ios/Plugin/ScreenOrientationPlugin.swift +++ b/packages/screen-orientation/ios/Plugin/ScreenOrientationPlugin.swift @@ -6,7 +6,14 @@ import Capacitor * here: https://capacitorjs.com/docs/plugins/ios */ @objc(ScreenOrientationPlugin) -public class ScreenOrientationPlugin: CAPPlugin { +public class ScreenOrientationPlugin: CAPPlugin, CAPBridgedPlugin { + public let identifier = "ScreenOrientationPlugin" + public let jsName = "ScreenOrientation" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "lock", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "unlock", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "getCurrentOrientation", returnType: CAPPluginReturnPromise) + ] public let screenOrientationChangeEvent = "screenOrientationChange" private var implementation: ScreenOrientation? diff --git a/packages/screen-orientation/package.json b/packages/screen-orientation/package.json index 1e063a4b..c0bd3131 100644 --- a/packages/screen-orientation/package.json +++ b/packages/screen-orientation/package.json @@ -11,7 +11,8 @@ "android/build.gradle", "dist/", "ios/Plugin/", - "CapawesomeCapacitorScreenOrientation.podspec" + "CapawesomeCapacitorScreenOrientation.podspec", + "Package.swift" ], "author": "Robin Genz ", "license": "MIT", @@ -58,6 +59,7 @@ "clean": "rimraf ./dist", "watch": "tsc --watch", "ios:pod:install": "cd ios && pod install --repo-update && cd ..", + "ios:spm:install": "cd ios && swift package resolve && cd ..", "prepublishOnly": "npm run build" }, "devDependencies": { diff --git a/packages/screenshot/.gitignore b/packages/screenshot/.gitignore index 70ccbf71..68176379 100644 --- a/packages/screenshot/.gitignore +++ b/packages/screenshot/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store diff --git a/packages/screenshot/Package.swift b/packages/screenshot/Package.swift new file mode 100644 index 00000000..9e23f0c2 --- /dev/null +++ b/packages/screenshot/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapawesomeCapacitorScreenshot", + platforms: [.iOS(.v13)], + products: [ + .library( + name: "CapawesomeCapacitorScreenshot", + targets: ["ScreenshotPlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "6.0.0") + ], + targets: [ + .target( + name: "ScreenshotPlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm") + ], + path: "ios/Sources/ScreenshotPlugin"), + .testTarget( + name: "ScreenshotPluginTests", + dependencies: ["ScreenshotPlugin"], + path: "ios/Tests/ScreenshotPluginTests") + ] +) diff --git a/packages/screenshot/ios/Plugin.xcodeproj/project.pbxproj b/packages/screenshot/ios/Plugin.xcodeproj/project.pbxproj index 76d7b443..a6180894 100644 --- a/packages/screenshot/ios/Plugin.xcodeproj/project.pbxproj +++ b/packages/screenshot/ios/Plugin.xcodeproj/project.pbxproj @@ -12,9 +12,7 @@ 2F98D68224C9AAE500613A4C /* Screenshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F98D68124C9AAE400613A4C /* Screenshot.swift */; }; 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; }; 50ADFF97201F53D600D50D53 /* ScreenshotTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* ScreenshotTests.swift */; }; - 50ADFF99201F53D600D50D53 /* ScreenshotPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* ScreenshotPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; }; - 50ADFFA82020EE4F00D50D53 /* ScreenshotPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* ScreenshotPlugin.m */; }; 50E1A94820377CB70090CE1A /* ScreenshotPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* ScreenshotPlugin.swift */; }; 7C83CCF02D184B740089A239 /* TakeResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C83CCEF2D184B690089A239 /* TakeResult.swift */; }; 7C83CCF32D184BB40089A239 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C83CCF22D184BB00089A239 /* Result.swift */; }; @@ -35,13 +33,11 @@ 2F98D68124C9AAE400613A4C /* Screenshot.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Screenshot.swift; sourceTree = ""; }; 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFF8B201F53D600D50D53 /* ScreenshotPlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScreenshotPlugin.h; sourceTree = ""; }; 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF96201F53D600D50D53 /* ScreenshotTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScreenshotTests.swift; sourceTree = ""; }; 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFFA72020EE4F00D50D53 /* ScreenshotPlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScreenshotPlugin.m; sourceTree = ""; }; 50E1A94720377CB70090CE1A /* ScreenshotPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScreenshotPlugin.swift; sourceTree = ""; }; 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; }; 7C83CCEF2D184B690089A239 /* TakeResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TakeResult.swift; sourceTree = ""; }; @@ -101,8 +97,6 @@ 7C83CCEB2D184B4B0089A239 /* Classes */, 50E1A94720377CB70090CE1A /* ScreenshotPlugin.swift */, 2F98D68124C9AAE400613A4C /* Screenshot.swift */, - 50ADFF8B201F53D600D50D53 /* ScreenshotPlugin.h */, - 50ADFFA72020EE4F00D50D53 /* ScreenshotPlugin.m */, 50ADFF8C201F53D600D50D53 /* Info.plist */, ); path = Plugin; @@ -179,7 +173,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 50ADFF99201F53D600D50D53 /* ScreenshotPlugin.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -350,7 +343,6 @@ 50E1A94820377CB70090CE1A /* ScreenshotPlugin.swift in Sources */, 7C83CCF32D184BB40089A239 /* Result.swift in Sources */, 2F98D68224C9AAE500613A4C /* Screenshot.swift in Sources */, - 50ADFFA82020EE4F00D50D53 /* ScreenshotPlugin.m in Sources */, 7C83CCF02D184B740089A239 /* TakeResult.swift in Sources */, 7CCCCBF32D1AE08D0076919C /* CustomError.swift in Sources */, ); diff --git a/packages/screenshot/ios/Plugin/Screenshot.swift b/packages/screenshot/ios/Plugin/Screenshot.swift index c033c67e..00942215 100644 --- a/packages/screenshot/ios/Plugin/Screenshot.swift +++ b/packages/screenshot/ios/Plugin/Screenshot.swift @@ -21,7 +21,7 @@ import WebKit if let error = error { completion(nil, error) } - + if let image, let imageData = image.jpegData(compressionQuality: 1.0) { let filename = UUID().uuidString + ".jpg" guard let cacheDirectory = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first else { diff --git a/packages/screenshot/ios/Plugin/ScreenshotPlugin.h b/packages/screenshot/ios/Plugin/ScreenshotPlugin.h deleted file mode 100644 index f2bd9e0b..00000000 --- a/packages/screenshot/ios/Plugin/ScreenshotPlugin.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for Plugin. -FOUNDATION_EXPORT double PluginVersionNumber; - -//! Project version string for Plugin. -FOUNDATION_EXPORT const unsigned char PluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/packages/screenshot/ios/Plugin/ScreenshotPlugin.m b/packages/screenshot/ios/Plugin/ScreenshotPlugin.m deleted file mode 100644 index a71c2e0e..00000000 --- a/packages/screenshot/ios/Plugin/ScreenshotPlugin.m +++ /dev/null @@ -1,8 +0,0 @@ -#import -#import - -// Define the plugin using the CAP_PLUGIN Macro, and -// each method the plugin supports using the CAP_PLUGIN_METHOD macro. -CAP_PLUGIN(ScreenshotPlugin, "Screenshot", - CAP_PLUGIN_METHOD(take, CAPPluginReturnPromise); -) diff --git a/packages/screenshot/ios/Plugin/ScreenshotPlugin.swift b/packages/screenshot/ios/Plugin/ScreenshotPlugin.swift index 89355dfc..84bb9042 100644 --- a/packages/screenshot/ios/Plugin/ScreenshotPlugin.swift +++ b/packages/screenshot/ios/Plugin/ScreenshotPlugin.swift @@ -6,7 +6,12 @@ import Capacitor * here: https://capacitorjs.com/docs/plugins/ios */ @objc(ScreenshotPlugin) -public class ScreenshotPlugin: CAPPlugin { +public class ScreenshotPlugin: CAPPlugin, CAPBridgedPlugin { + public let identifier = "ScreenshotPlugin" + public let jsName = "Screenshot" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "take", returnType: CAPPluginReturnPromise) + ] public let tag = "Screenshot" private var implementation: Screenshot? diff --git a/packages/screenshot/package.json b/packages/screenshot/package.json index 8ba2a741..267214b2 100644 --- a/packages/screenshot/package.json +++ b/packages/screenshot/package.json @@ -11,7 +11,8 @@ "android/build.gradle", "dist/", "ios/Plugin/", - "CapawesomeCapacitorScreenshot.podspec" + "CapawesomeCapacitorScreenshot.podspec", + "Package.swift" ], "author": "Robin Genz ", "license": "MIT", @@ -57,6 +58,7 @@ "clean": "rimraf ./dist", "watch": "tsc --watch", "ios:pod:install": "cd ios && pod install --repo-update && cd ..", + "ios:spm:install": "cd ios && swift package resolve && cd ..", "prepublishOnly": "npm run build" }, "devDependencies": { diff --git a/packages/torch/.gitignore b/packages/torch/.gitignore index 70ccbf71..68176379 100644 --- a/packages/torch/.gitignore +++ b/packages/torch/.gitignore @@ -5,8 +5,16 @@ node_modules # iOS files Pods Podfile.lock +Package.resolved Build xcuserdata +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc # macOS files .DS_Store diff --git a/packages/torch/Package.swift b/packages/torch/Package.swift new file mode 100644 index 00000000..fa6776b3 --- /dev/null +++ b/packages/torch/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "CapawesomeCapacitorTorch", + platforms: [.iOS(.v13)], + products: [ + .library( + name: "CapawesomeCapacitorTorch", + targets: ["TorchPlugin"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "6.0.0") + ], + targets: [ + .target( + name: "TorchPlugin", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm") + ], + path: "ios/Sources/TorchPlugin"), + .testTarget( + name: "TorchPluginTests", + dependencies: ["TorchPlugin"], + path: "ios/Tests/TorchPluginTests") + ] +) diff --git a/packages/torch/ios/Plugin.xcodeproj/project.pbxproj b/packages/torch/ios/Plugin.xcodeproj/project.pbxproj index 68981ad8..5fcebe0a 100644 --- a/packages/torch/ios/Plugin.xcodeproj/project.pbxproj +++ b/packages/torch/ios/Plugin.xcodeproj/project.pbxproj @@ -12,9 +12,7 @@ 2F98D68224C9AAE500613A4C /* Torch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F98D68124C9AAE400613A4C /* Torch.swift */; }; 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; }; 50ADFF97201F53D600D50D53 /* TorchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* TorchTests.swift */; }; - 50ADFF99201F53D600D50D53 /* TorchPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* TorchPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; }; - 50ADFFA82020EE4F00D50D53 /* TorchPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* TorchPlugin.m */; }; 50E1A94820377CB70090CE1A /* TorchPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* TorchPlugin.swift */; }; /* End PBXBuildFile section */ @@ -32,13 +30,11 @@ 2F98D68124C9AAE400613A4C /* Torch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Torch.swift; sourceTree = ""; }; 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFF8B201F53D600D50D53 /* TorchPlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TorchPlugin.h; sourceTree = ""; }; 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50ADFF96201F53D600D50D53 /* TorchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TorchTests.swift; sourceTree = ""; }; 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50ADFFA72020EE4F00D50D53 /* TorchPlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TorchPlugin.m; sourceTree = ""; }; 50E1A94720377CB70090CE1A /* TorchPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TorchPlugin.swift; sourceTree = ""; }; 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; }; 91781294A431A2A7CC6EB714 /* Pods-Plugin.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.release.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.release.xcconfig"; sourceTree = ""; }; @@ -94,8 +90,6 @@ children = ( 50E1A94720377CB70090CE1A /* TorchPlugin.swift */, 2F98D68124C9AAE400613A4C /* Torch.swift */, - 50ADFF8B201F53D600D50D53 /* TorchPlugin.h */, - 50ADFFA72020EE4F00D50D53 /* TorchPlugin.m */, 50ADFF8C201F53D600D50D53 /* Info.plist */, ); path = Plugin; @@ -138,7 +132,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 50ADFF99201F53D600D50D53 /* TorchPlugin.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -308,7 +301,6 @@ files = ( 50E1A94820377CB70090CE1A /* TorchPlugin.swift in Sources */, 2F98D68224C9AAE500613A4C /* Torch.swift in Sources */, - 50ADFFA82020EE4F00D50D53 /* TorchPlugin.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/packages/torch/ios/Plugin/TorchPlugin.h b/packages/torch/ios/Plugin/TorchPlugin.h deleted file mode 100644 index f2bd9e0b..00000000 --- a/packages/torch/ios/Plugin/TorchPlugin.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for Plugin. -FOUNDATION_EXPORT double PluginVersionNumber; - -//! Project version string for Plugin. -FOUNDATION_EXPORT const unsigned char PluginVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/packages/torch/ios/Plugin/TorchPlugin.m b/packages/torch/ios/Plugin/TorchPlugin.m deleted file mode 100644 index b6cde12e..00000000 --- a/packages/torch/ios/Plugin/TorchPlugin.m +++ /dev/null @@ -1,12 +0,0 @@ -#import -#import - -// Define the plugin using the CAP_PLUGIN Macro, and -// each method the plugin supports using the CAP_PLUGIN_METHOD macro. -CAP_PLUGIN(TorchPlugin, "Torch", - CAP_PLUGIN_METHOD(enable, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(disable, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(isAvailable, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(isEnabled, CAPPluginReturnPromise); - CAP_PLUGIN_METHOD(toggle, CAPPluginReturnPromise); -) diff --git a/packages/torch/ios/Plugin/TorchPlugin.swift b/packages/torch/ios/Plugin/TorchPlugin.swift index 33a961c2..52309456 100644 --- a/packages/torch/ios/Plugin/TorchPlugin.swift +++ b/packages/torch/ios/Plugin/TorchPlugin.swift @@ -6,7 +6,16 @@ import Capacitor * here: https://capacitorjs.com/docs/plugins/ios */ @objc(TorchPlugin) -public class TorchPlugin: CAPPlugin { +public class TorchPlugin: CAPPlugin, CAPBridgedPlugin { + public let identifier = "TorchPlugin" + public let jsName = "Torch" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "enable", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "disable", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "isAvailable", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "isEnabled", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "toggle", returnType: CAPPluginReturnPromise) + ] public static let errorNotAvailable = "Not available on this device." public static let tag = "Torch" diff --git a/packages/torch/package.json b/packages/torch/package.json index ca4b4ba8..b034f2e9 100644 --- a/packages/torch/package.json +++ b/packages/torch/package.json @@ -11,7 +11,8 @@ "android/build.gradle", "dist/", "ios/Plugin/", - "CapawesomeCapacitorTorch.podspec" + "CapawesomeCapacitorTorch.podspec", + "Package.swift" ], "author": "Robin Genz ", "license": "MIT", @@ -53,6 +54,7 @@ "clean": "rimraf ./dist", "watch": "tsc --watch", "ios:pod:install": "cd ios && pod install --repo-update && cd ..", + "ios:spm:install": "cd ios && swift package resolve && cd ..", "prepublishOnly": "npm run build" }, "devDependencies": { diff --git a/turbo.json b/turbo.json index e4bbc0b4..5967b131 100644 --- a/turbo.json +++ b/turbo.json @@ -13,6 +13,7 @@ "cache": false }, "version": {}, - "ios:pod:install": {} + "ios:pod:install": {}, + "ios:spm:install": {} } }