From f506ff415eb48cf76789c239747f652aa43da182 Mon Sep 17 00:00:00 2001 From: Keuahn Lumanog Date: Fri, 14 Mar 2025 00:06:13 +0400 Subject: [PATCH 1/4] Updated podspec for Swift 6 --- WKJavaScriptController.podspec | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 WKJavaScriptController.podspec diff --git a/WKJavaScriptController.podspec b/WKJavaScriptController.podspec new file mode 100644 index 0000000..368a2f9 --- /dev/null +++ b/WKJavaScriptController.podspec @@ -0,0 +1,23 @@ +# +# Be sure to run `pod spec lint WKJavaScriptController.podspec' to ensure this is a +# valid spec and to remove all comments including this before submitting the spec. +# +# To learn more about Podspec attributes see https://guides.cocoapods.org/syntax/podspec.html +# To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/ +# + +Pod::Spec.new do |spec| + s.name = 'WKJavaScriptController' + s.version = '1.0.0' + s.summary = 'A lightweight JavaScript controller for WKWebView' + s.description = 'WKJavaScriptController provides an easy way to interact between JavaScript and Swift in WKWebView.' + s.homepage = 'https://github.com/klumanog-dev/WKJavaScriptController' + s.license = { :type => 'MIT', :file => 'LICENSE' } + s.author = { 'Your Name' => 'your.email@example.com' } + s.source = { :git => 'https://github.com/klumanog-dev/WKJavaScriptController.git', :tag => s.version.to_s } + + s.ios.deployment_target = '13.0' # Adjust as needed + s.swift_version = '6.0' + + s.source_files = 'Sources/**/*.{h,m,swift}' +end \ No newline at end of file From 0bbb7b8967ea4134d422f7878d9651e3a19a4acb Mon Sep 17 00:00:00 2001 From: Keuahn Lumanog Date: Fri, 14 Mar 2025 00:20:35 +0400 Subject: [PATCH 2/4] Updated podspec for Swift 6 --- WKJavaScriptController.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WKJavaScriptController.podspec b/WKJavaScriptController.podspec index 368a2f9..f95b7b9 100644 --- a/WKJavaScriptController.podspec +++ b/WKJavaScriptController.podspec @@ -6,7 +6,7 @@ # To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/ # -Pod::Spec.new do |spec| +Pod::Spec.new do |s| s.name = 'WKJavaScriptController' s.version = '1.0.0' s.summary = 'A lightweight JavaScript controller for WKWebView' From f88a5cbc63c0aa75bdeccf94e1907ac2a528974c Mon Sep 17 00:00:00 2001 From: Keuahn Lumanog Date: Fri, 14 Mar 2025 00:20:55 +0400 Subject: [PATCH 3/4] Added @MainActor to support Swift 6 --- Sources/WKJavaScriptController/WKJavaScriptController.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sources/WKJavaScriptController/WKJavaScriptController.swift b/Sources/WKJavaScriptController/WKJavaScriptController.swift index 2e7a093..aca9e48 100644 --- a/Sources/WKJavaScriptController/WKJavaScriptController.swift +++ b/Sources/WKJavaScriptController/WKJavaScriptController.swift @@ -1,6 +1,6 @@ import WebKit -private var javaScriptControllerKey: UInt8 = 0 +@MainActor private var javaScriptControllerKey: UInt8 = 0 public extension WKWebView { var javaScriptController: WKJavaScriptController? { @@ -270,7 +270,7 @@ open class WKJavaScriptController: NSObject { } } - fileprivate func injectTo(_ userContentController: WKUserContentController) { + @MainActor fileprivate func injectTo(_ userContentController: WKUserContentController) { let userScripts = userContentController.userScripts.filter { !$0.source.hasPrefix(identifier) } @@ -287,7 +287,7 @@ open class WKJavaScriptController: NSObject { isInjectRequired = false } - private func bridgeScript() -> WKUserScript { + @MainActor private func bridgeScript() -> WKUserScript { var source = """ window.\(name) = { \(ReserveKeyword.createUUID): function() { From 5bbd5c8a57dcb5bc98a0f1344b6c88ff60241233 Mon Sep 17 00:00:00 2001 From: Keuahn Lumanog Date: Fri, 14 Mar 2025 00:31:02 +0400 Subject: [PATCH 4/4] Fix swift_version --- .swift-version | 2 +- Package.swift | 2 +- WKJavaScriptController.podspec | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.swift-version b/.swift-version index ef425ca..e0ea36f 100644 --- a/.swift-version +++ b/.swift-version @@ -1 +1 @@ -5.2 +6.0 diff --git a/Package.swift b/Package.swift index 625f41e..ccb8574 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.1 +// swift-tools-version:6.0 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription diff --git a/WKJavaScriptController.podspec b/WKJavaScriptController.podspec index f95b7b9..da0ed02 100644 --- a/WKJavaScriptController.podspec +++ b/WKJavaScriptController.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = 'WKJavaScriptController' - s.version = '1.0.0' + s.version = '1.0.1' s.summary = 'A lightweight JavaScript controller for WKWebView' s.description = 'WKJavaScriptController provides an easy way to interact between JavaScript and Swift in WKWebView.' s.homepage = 'https://github.com/klumanog-dev/WKJavaScriptController' @@ -17,7 +17,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/klumanog-dev/WKJavaScriptController.git', :tag => s.version.to_s } s.ios.deployment_target = '13.0' # Adjust as needed - s.swift_version = '6.0' + s.swift_versions = ['6.0'] s.source_files = 'Sources/**/*.{h,m,swift}' end \ No newline at end of file