You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by dp...@apache.org on 2021/10/06 03:47:51 UTC

[cordova-ios] branch master updated: Swift Package Manager support for CordovaLib (#1154)

This is an automated email from the ASF dual-hosted git repository.

dpogue pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cordova-ios.git


The following commit(s) were added to refs/heads/master by this push:
     new f12abcc  Swift Package Manager support for CordovaLib (#1154)
f12abcc is described below

commit f12abcc9973fd0618ddc8999df3fa2e96468ecf1
Author: Darryl Pogue <da...@dpogue.ca>
AuthorDate: Tue Oct 5 20:47:46 2021 -0700

    Swift Package Manager support for CordovaLib (#1154)
    
    * Fix warnings about quoted framework header paths
    
    These warnings show up in Xcode 13 with the recommended project
    settings.
    
    * Restructure for Swift Package Manager support
---
 .gitignore                                         |  1 +
 Cordova.podspec                                    | 31 ++++----
 CordovaLib/Classes/Private/CDVJSON_private.h       |  2 +
 CordovaLib/Classes/Private/CDVJSON_private.m       |  3 +-
 .../Plugins/CDVWebViewEngine/CDVWebViewEngine.h    |  2 +-
 .../Plugins/CDVWebViewEngine/CDVWebViewEngine.m    |  4 +-
 .../CDVWebViewEngine/CDVWebViewUIDelegate.h        |  2 +-
 CordovaLib/Classes/Public/CDVAllowList.m           |  2 +-
 CordovaLib/Classes/Public/CDVAppDelegate.m         |  2 +-
 CordovaLib/Classes/Public/CDVCommandDelegateImpl.m |  8 +-
 CordovaLib/Classes/Public/CDVCommandQueue.m        |  6 +-
 CordovaLib/Classes/Public/CDVConfigParser.m        |  2 +-
 CordovaLib/Classes/Public/CDVInvokedUrlCommand.m   |  2 +-
 CordovaLib/Classes/Public/CDVPlugin+Resources.m    |  2 +-
 CordovaLib/Classes/Public/CDVPlugin.m              |  6 +-
 CordovaLib/Classes/Public/CDVPluginResult.m        |  2 +-
 CordovaLib/Classes/Public/CDVTimer.m               |  2 +-
 CordovaLib/Classes/Public/CDVURLSchemeHandler.m    |  2 +-
 CordovaLib/Classes/Public/CDVViewController.m      | 15 ++--
 .../Classes/Public/CDVWebViewProcessPoolFactory.m  |  6 +-
 .../Public/NSDictionary+CordovaPreferences.m       |  5 +-
 .../Classes/Public/NSMutableArray+QueueAdditions.m |  2 +-
 CordovaLib/CordovaLib.xcodeproj/project.pbxproj    | 91 ++++++++++------------
 CordovaLib/CordovaLib_Prefix.pch                   | 22 ------
 CordovaLib/{Cordova => include}/Cordova.h          |  5 +-
 .../{Classes/Public => include/Cordova}/CDV.h      | 22 +++---
 .../Public => include/Cordova}/CDVAllowList.h      |  2 +-
 .../Public => include/Cordova}/CDVAppDelegate.h    |  5 +-
 .../Public => include/Cordova}/CDVAvailability.h   |  2 +-
 .../Cordova}/CDVAvailabilityDeprecated.h           |  2 +-
 .../Cordova}/CDVCommandDelegate.h                  |  4 +-
 .../Cordova}/CDVCommandDelegateImpl.h              |  4 +-
 .../Public => include/Cordova}/CDVCommandQueue.h   |  2 +-
 .../Public => include/Cordova}/CDVConfigParser.h   |  2 +
 .../Cordova}/CDVInvokedUrlCommand.h                |  2 +-
 .../Cordova}/CDVPlugin+Resources.h                 |  4 +-
 .../Public => include/Cordova}/CDVPlugin.h         | 13 ++--
 .../Public => include/Cordova}/CDVPluginResult.h   |  5 +-
 .../Cordova}/CDVScreenOrientationDelegate.h        |  2 +-
 .../{Classes/Public => include/Cordova}/CDVTimer.h |  2 +-
 .../Cordova}/CDVURLSchemeHandler.h                 |  7 +-
 .../Public => include/Cordova}/CDVViewController.h | 18 ++---
 .../Cordova}/CDVWebViewEngineProtocol.h            |  2 +-
 .../Cordova}/CDVWebViewProcessPoolFactory.h        |  2 +-
 .../Cordova}/NSDictionary+CordovaPreferences.h     |  4 +-
 .../Cordova}/NSMutableArray+QueueAdditions.h       |  2 +-
 .../CDVWebViewEngine.h => Package.swift            | 31 +++++---
 bin/lib/create.js                                  |  2 +-
 update_podspec.sh                                  | 88 ---------------------
 49 files changed, 181 insertions(+), 275 deletions(-)

diff --git a/.gitignore b/.gitignore
index 34c546d..4ce9281 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
 .DS_Store
 .*.sw?
 .vscode
+.swiftpm/
 *.cso
 tmp
 *.mode1v3
diff --git a/Cordova.podspec b/Cordova.podspec
index dec80f1..96d9a8d 100644
--- a/Cordova.podspec
+++ b/Cordova.podspec
@@ -25,24 +25,19 @@ relSource  = { :git => "https://github.com/apache/cordova-ios.git",
             :submodules => true }
 
 Pod::Spec.new do |s|
-  s.name         = "Cordova"
-  s.version      = relVersion
-  s.summary      = "Apache Cordova for iOS"
-  s.homepage     = "https://github.com/apache/cordova-ios"
-  s.license      = { :type => "Apache 2.0", :file => "LICENSE" }
-  s.author       = "Apache Software Foundation"
-  s.platform     = :ios, "11.0"
-  s.source       = relSource
-  s.requires_arc = true
-  s.preserve_paths = 'CordovaLib/cordova.js', 'CordovaLib/VERSION'
-  s.frameworks = 'AssetsLibrary', 'MobileCoreServices', 'AVFoundation', 'CoreLocation'
-  s.default_subspec  = 'Cordova'
-  s.subspec 'Cordova' do |cordova|
-      cordova.source_files = 'CordovaLib/Classes/**/*.{h,m}', 'CordovaLib/Cordova/Cordova.h'
-      cordova.public_header_files = 'CordovaLib/Classes/Public/CDV.h', 'CordovaLib/Classes/Public/CDVAllowList.h', 'CordovaLib/Classes/Public/CDVAppDelegate.h', 'CordovaLib/Classes/Public/CDVAvailability.h', 'CordovaLib/Classes/Public/CDVAvailabilityDeprecated.h', 'CordovaLib/Classes/Public/CDVCommandDelegate.h', 'CordovaLib/Classes/Public/CDVCommandDelegateImpl.h', 'CordovaLib/Classes/Public/CDVCommandQueue.h', 'CordovaLib/Classes/Public/CDVConfigParser.h', 'CordovaLib/Classes/Public/CD [...]
-      cordova.prefix_header_contents = ''
-      cordova.requires_arc = true
-  end
+  s.name                = "Cordova"
+  s.version             = relVersion
+  s.summary             = "Apache Cordova for iOS"
+  s.homepage            = "https://github.com/apache/cordova-ios"
+  s.license             = { :type => "Apache 2.0", :file => "LICENSE" }
+  s.author              = "Apache Software Foundation"
+  s.platform            = :ios, "11.0"
+  s.source              = relSource
+  s.requires_arc        = true
+  s.preserve_paths      = 'CordovaLib/cordova.js', 'CordovaLib/VERSION'
+  s.frameworks          = 'Foundation'
+  s.source_files        = 'CordovaLib/**/*.{h,m}'
+  s.public_header_files = 'CordovaLib/include/**/*.h'
 end
 
 #
diff --git a/CordovaLib/Classes/Private/CDVJSON_private.h b/CordovaLib/Classes/Private/CDVJSON_private.h
index afb5cc6..fab728f 100644
--- a/CordovaLib/Classes/Private/CDVJSON_private.h
+++ b/CordovaLib/Classes/Private/CDVJSON_private.h
@@ -17,6 +17,8 @@
  under the License.
  */
 
+@import Foundation;
+
 @interface NSArray (CDVJSONSerializingPrivate)
 - (NSString*)cdv_JSONString;
 @end
diff --git a/CordovaLib/Classes/Private/CDVJSON_private.m b/CordovaLib/Classes/Private/CDVJSON_private.m
index 175ed39..5c13593 100644
--- a/CordovaLib/Classes/Private/CDVJSON_private.m
+++ b/CordovaLib/Classes/Private/CDVJSON_private.m
@@ -17,8 +17,9 @@
  under the License.
  */
 
+@import Foundation;
+
 #import "CDVJSON_private.h"
-#import <Foundation/NSJSONSerialization.h>
 
 @implementation NSArray (CDVJSONSerializingPrivate)
 
diff --git a/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewEngine.h b/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewEngine.h
index 47e26d1..5725a9e 100644
--- a/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewEngine.h
+++ b/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewEngine.h
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import <WebKit/WebKit.h>
+@import WebKit;
 #import <Cordova/CDV.h>
 
 @interface CDVWebViewEngine : CDVPlugin <CDVWebViewEngineProtocol, WKScriptMessageHandler, WKNavigationDelegate>
diff --git a/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewEngine.m b/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewEngine.m
index 5be8a41..8e1094e 100644
--- a/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewEngine.m
+++ b/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewEngine.m
@@ -19,9 +19,9 @@
 
 #import "CDVWebViewEngine.h"
 #import "CDVWebViewUIDelegate.h"
-#import "CDVWebViewProcessPoolFactory.h"
+#import <Cordova/CDVWebViewProcessPoolFactory.h>
 #import <Cordova/NSDictionary+CordovaPreferences.h>
-#import "CDVURLSchemeHandler.h"
+#import <Cordova/CDVURLSchemeHandler.h>
 
 #import <objc/message.h>
 
diff --git a/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewUIDelegate.h b/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewUIDelegate.h
index 8ae39b6..c5f85fd 100644
--- a/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewUIDelegate.h
+++ b/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewUIDelegate.h
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import <WebKit/WebKit.h>
+@import WebKit;
 
 @interface CDVWebViewUIDelegate : NSObject <WKUIDelegate>
 {
diff --git a/CordovaLib/Classes/Public/CDVAllowList.m b/CordovaLib/Classes/Public/CDVAllowList.m
index a0ce668..739ca98 100644
--- a/CordovaLib/Classes/Public/CDVAllowList.m
+++ b/CordovaLib/Classes/Public/CDVAllowList.m
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import "CDVAllowList.h"
+#import <Cordova/CDVAllowList.h>
 
 NSString* const kCDVDefaultAllowListRejectionString = @"ERROR allowList rejection: url='%@'";
 NSString* const kCDVDefaultSchemeName = @"cdv-default-scheme";
diff --git a/CordovaLib/Classes/Public/CDVAppDelegate.m b/CordovaLib/Classes/Public/CDVAppDelegate.m
index 9188be7..8792e20 100644
--- a/CordovaLib/Classes/Public/CDVAppDelegate.m
+++ b/CordovaLib/Classes/Public/CDVAppDelegate.m
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import "CDVAppDelegate.h"
+#import <Cordova/CDVAppDelegate.h>
 
 @implementation CDVAppDelegate
 
diff --git a/CordovaLib/Classes/Public/CDVCommandDelegateImpl.m b/CordovaLib/Classes/Public/CDVCommandDelegateImpl.m
index 649d30d..016eb6c 100644
--- a/CordovaLib/Classes/Public/CDVCommandDelegateImpl.m
+++ b/CordovaLib/Classes/Public/CDVCommandDelegateImpl.m
@@ -17,11 +17,11 @@
  under the License.
  */
 
-#import "CDVCommandDelegateImpl.h"
+#import <Cordova/CDVCommandDelegateImpl.h>
 #import "CDVJSON_private.h"
-#import "CDVCommandQueue.h"
-#import "CDVPluginResult.h"
-#import "CDVViewController.h"
+#import <Cordova/CDVCommandQueue.h>
+#import <Cordova/CDVPluginResult.h>
+#import <Cordova/CDVViewController.h>
 
 @implementation CDVCommandDelegateImpl
 
diff --git a/CordovaLib/Classes/Public/CDVCommandQueue.m b/CordovaLib/Classes/Public/CDVCommandQueue.m
index b78ed83..c46021f 100644
--- a/CordovaLib/Classes/Public/CDVCommandQueue.m
+++ b/CordovaLib/Classes/Public/CDVCommandQueue.m
@@ -18,9 +18,9 @@
  */
 
 #include <objc/message.h>
-#import "CDVCommandQueue.h"
-#import "CDVViewController.h"
-#import "CDVCommandDelegateImpl.h"
+#import <Cordova/CDVCommandQueue.h>
+#import <Cordova/CDVViewController.h>
+#import <Cordova/CDVCommandDelegateImpl.h>
 #import "CDVJSON_private.h"
 #import "CDVDebug.h"
 
diff --git a/CordovaLib/Classes/Public/CDVConfigParser.m b/CordovaLib/Classes/Public/CDVConfigParser.m
index ab32b4a..a5663e5 100644
--- a/CordovaLib/Classes/Public/CDVConfigParser.m
+++ b/CordovaLib/Classes/Public/CDVConfigParser.m
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import "CDVConfigParser.h"
+#import <Cordova/CDVConfigParser.h>
 
 @interface CDVConfigParser ()
 
diff --git a/CordovaLib/Classes/Public/CDVInvokedUrlCommand.m b/CordovaLib/Classes/Public/CDVInvokedUrlCommand.m
index 5b4281d..c0e6b79 100644
--- a/CordovaLib/Classes/Public/CDVInvokedUrlCommand.m
+++ b/CordovaLib/Classes/Public/CDVInvokedUrlCommand.m
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import "CDVInvokedUrlCommand.h"
+#import <Cordova/CDVInvokedUrlCommand.h>
 #import "CDVJSON_private.h"
 
 @implementation CDVInvokedUrlCommand
diff --git a/CordovaLib/Classes/Public/CDVPlugin+Resources.m b/CordovaLib/Classes/Public/CDVPlugin+Resources.m
index 5690738..f18f742 100644
--- a/CordovaLib/Classes/Public/CDVPlugin+Resources.m
+++ b/CordovaLib/Classes/Public/CDVPlugin+Resources.m
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import "CDVPlugin+Resources.h"
+#import <Cordova/CDVPlugin+Resources.h>
 
 @implementation CDVPlugin (CDVPluginResources)
 
diff --git a/CordovaLib/Classes/Public/CDVPlugin.m b/CordovaLib/Classes/Public/CDVPlugin.m
index 6af03e9..79f65f9 100644
--- a/CordovaLib/Classes/Public/CDVPlugin.m
+++ b/CordovaLib/Classes/Public/CDVPlugin.m
@@ -17,10 +17,10 @@
  under the License.
  */
 
-#import "CDVPlugin.h"
+#import <Cordova/CDVPlugin.h>
 #import "CDVPlugin+Private.h"
-#import "CDVPlugin+Resources.h"
-#import "CDVViewController.h"
+#import <Cordova/CDVPlugin+Resources.h>
+#import <Cordova/CDVViewController.h>
 #include <objc/message.h>
 
 @implementation UIView (org_apache_cordova_UIView_Extension)
diff --git a/CordovaLib/Classes/Public/CDVPluginResult.m b/CordovaLib/Classes/Public/CDVPluginResult.m
index 930aeab..1a5ab02 100644
--- a/CordovaLib/Classes/Public/CDVPluginResult.m
+++ b/CordovaLib/Classes/Public/CDVPluginResult.m
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import "CDVPluginResult.h"
+#import <Cordova/CDVPluginResult.h>
 #import "CDVJSON_private.h"
 #import "CDVDebug.h"
 
diff --git a/CordovaLib/Classes/Public/CDVTimer.m b/CordovaLib/Classes/Public/CDVTimer.m
index 784e94d..1d62f95 100644
--- a/CordovaLib/Classes/Public/CDVTimer.m
+++ b/CordovaLib/Classes/Public/CDVTimer.m
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import "CDVTimer.h"
+#import <Cordova/CDVTimer.h>
 
 #pragma mark CDVTimerItem
 
diff --git a/CordovaLib/Classes/Public/CDVURLSchemeHandler.m b/CordovaLib/Classes/Public/CDVURLSchemeHandler.m
index 333124c..ec9fcb1 100644
--- a/CordovaLib/Classes/Public/CDVURLSchemeHandler.m
+++ b/CordovaLib/Classes/Public/CDVURLSchemeHandler.m
@@ -18,7 +18,7 @@
  */
 
 
-#import "CDVURLSchemeHandler.h"
+#import <Cordova/CDVURLSchemeHandler.h>
 #import <MobileCoreServices/MobileCoreServices.h>
 
 #import <objc/message.h>
diff --git a/CordovaLib/Classes/Public/CDVViewController.m b/CordovaLib/Classes/Public/CDVViewController.m
index 1ebfd1e..ea5875b 100644
--- a/CordovaLib/Classes/Public/CDVViewController.m
+++ b/CordovaLib/Classes/Public/CDVViewController.m
@@ -17,15 +17,16 @@
  under the License.
  */
 
+@import AVFoundation;
+@import Foundation;
+
 #import <objc/message.h>
-#import "CDV.h"
-#import "CDVPlugin+Private.h"
-#import "CDVWebViewUIDelegate.h"
-#import "CDVConfigParser.h"
-#import <AVFoundation/AVFoundation.h>
-#import "NSDictionary+CordovaPreferences.h"
-#import "CDVCommandDelegateImpl.h"
 #import <Foundation/NSCharacterSet.h>
+#import <Cordova/CDV.h>
+#import "CDVPlugin+Private.h"
+#import <Cordova/CDVConfigParser.h>
+#import <Cordova/NSDictionary+CordovaPreferences.h>
+#import <Cordova/CDVCommandDelegateImpl.h>
 
 @interface CDVViewController () <CDVWebViewEngineConfigurationDelegate> { }
 
diff --git a/CordovaLib/Classes/Public/CDVWebViewProcessPoolFactory.m b/CordovaLib/Classes/Public/CDVWebViewProcessPoolFactory.m
index 577624e..3781f48 100644
--- a/CordovaLib/Classes/Public/CDVWebViewProcessPoolFactory.m
+++ b/CordovaLib/Classes/Public/CDVWebViewProcessPoolFactory.m
@@ -17,9 +17,9 @@
  under the License.
  */
 
-#import <Foundation/Foundation.h>
-#import <WebKit/WebKit.h>
-#import "CDVWebViewProcessPoolFactory.h"
+@import Foundation;
+@import WebKit;
+#import <Cordova/CDVWebViewProcessPoolFactory.h>
 
 static CDVWebViewProcessPoolFactory *factory = nil;
 
diff --git a/CordovaLib/Classes/Public/NSDictionary+CordovaPreferences.m b/CordovaLib/Classes/Public/NSDictionary+CordovaPreferences.m
index 1266ba2..a60004d 100644
--- a/CordovaLib/Classes/Public/NSDictionary+CordovaPreferences.m
+++ b/CordovaLib/Classes/Public/NSDictionary+CordovaPreferences.m
@@ -17,8 +17,9 @@
  under the License.
  */
 
-#import "NSDictionary+CordovaPreferences.h"
-#import <Foundation/Foundation.h>
+@import Foundation;
+
+#import <Cordova/NSDictionary+CordovaPreferences.h>
 
 @implementation NSDictionary (CordovaPreferences)
 
diff --git a/CordovaLib/Classes/Public/NSMutableArray+QueueAdditions.m b/CordovaLib/Classes/Public/NSMutableArray+QueueAdditions.m
index 2b3acdc..65b97a0 100644
--- a/CordovaLib/Classes/Public/NSMutableArray+QueueAdditions.m
+++ b/CordovaLib/Classes/Public/NSMutableArray+QueueAdditions.m
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import "NSMutableArray+QueueAdditions.h"
+#import <Cordova/NSMutableArray+QueueAdditions.h>
 
 @implementation NSMutableArray (QueueAdditions)
 
diff --git a/CordovaLib/CordovaLib.xcodeproj/project.pbxproj b/CordovaLib/CordovaLib.xcodeproj/project.pbxproj
index c0205fd..250d6a5 100644
--- a/CordovaLib/CordovaLib.xcodeproj/project.pbxproj
+++ b/CordovaLib/CordovaLib.xcodeproj/project.pbxproj
@@ -9,26 +9,26 @@
 /* Begin PBXBuildFile section */
 		28BFF9141F355A4E00DDF01A /* CDVLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 28BFF9121F355A4E00DDF01A /* CDVLogger.h */; };
 		28BFF9151F355A4E00DDF01A /* CDVLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 28BFF9131F355A4E00DDF01A /* CDVLogger.m */; };
-		2F4D42BC23F218BA00501999 /* CDVURLSchemeHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F4D42BA23F218BA00501999 /* CDVURLSchemeHandler.h */; };
+		2F4D42BC23F218BA00501999 /* CDVURLSchemeHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F4D42BA23F218BA00501999 /* CDVURLSchemeHandler.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		2F4D42BD23F218BA00501999 /* CDVURLSchemeHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F4D42BB23F218BA00501999 /* CDVURLSchemeHandler.m */; };
 		2FCCEA17247E7366007276A8 /* CDVLaunchScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E714D3423F535B500A321AF /* CDVLaunchScreen.m */; };
 		2FCCEA18247E7366007276A8 /* CDVLaunchScreen.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E714D3223F535B500A321AF /* CDVLaunchScreen.h */; };
 		3093E2231B16D6A3003F381A /* CDVIntentAndNavigationFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3093E2211B16D6A3003F381A /* CDVIntentAndNavigationFilter.h */; };
 		3093E2241B16D6A3003F381A /* CDVIntentAndNavigationFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 3093E2221B16D6A3003F381A /* CDVIntentAndNavigationFilter.m */; };
 		4E23F8FB23E16E96006CD852 /* CDVWebViewProcessPoolFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E23F8F523E16E96006CD852 /* CDVWebViewProcessPoolFactory.m */; };
-		4E23F8FC23E16E96006CD852 /* CDVWebViewUIDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E23F8F623E16E96006CD852 /* CDVWebViewUIDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		4E23F8FC23E16E96006CD852 /* CDVWebViewUIDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E23F8F623E16E96006CD852 /* CDVWebViewUIDelegate.h */; };
 		4E23F8FD23E16E96006CD852 /* CDVWebViewUIDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E23F8F723E16E96006CD852 /* CDVWebViewUIDelegate.m */; };
 		4E23F8FE23E16E96006CD852 /* CDVWebViewEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E23F8F823E16E96006CD852 /* CDVWebViewEngine.m */; };
 		4E23F8FF23E16E96006CD852 /* CDVWebViewProcessPoolFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E23F8F923E16E96006CD852 /* CDVWebViewProcessPoolFactory.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		4E23F90023E16E96006CD852 /* CDVWebViewEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E23F8FA23E16E96006CD852 /* CDVWebViewEngine.h */; };
-		4E23F90323E17FFA006CD852 /* CDVWebViewUIDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E23F8F623E16E96006CD852 /* CDVWebViewUIDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		4E23F90323E17FFA006CD852 /* CDVWebViewUIDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E23F8F623E16E96006CD852 /* CDVWebViewUIDelegate.h */; };
 		4E714D3623F535B500A321AF /* CDVLaunchScreen.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E714D3223F535B500A321AF /* CDVLaunchScreen.h */; };
 		4E714D3823F535B500A321AF /* CDVLaunchScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E714D3423F535B500A321AF /* CDVLaunchScreen.m */; };
 		4F56D82D254A2EB50063F1D6 /* CDVWebViewEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E23F8F823E16E96006CD852 /* CDVWebViewEngine.m */; };
 		4F56D830254A2ED70063F1D6 /* CDVWebViewUIDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E23F8F723E16E96006CD852 /* CDVWebViewUIDelegate.m */; };
 		4F56D833254A2ED90063F1D6 /* CDVWebViewProcessPoolFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E23F8F523E16E96006CD852 /* CDVWebViewProcessPoolFactory.m */; };
 		4F56D836254A2EE10063F1D6 /* CDVWebViewEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E23F8FA23E16E96006CD852 /* CDVWebViewEngine.h */; };
-		4F56D839254A2EE40063F1D6 /* CDVWebViewProcessPoolFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E23F8F923E16E96006CD852 /* CDVWebViewProcessPoolFactory.h */; };
+		4F56D839254A2EE40063F1D6 /* CDVWebViewProcessPoolFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E23F8F923E16E96006CD852 /* CDVWebViewProcessPoolFactory.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		4F56D83C254A2F2F0063F1D6 /* CDVURLSchemeHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F4D42BB23F218BA00501999 /* CDVURLSchemeHandler.m */; };
 		7E7F69B91ABA3692007546F4 /* CDVHandleOpenURL.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ED95CF81AB9028C008C4574 /* CDVHandleOpenURL.h */; };
 		7ED95D021AB9028C008C4574 /* CDVDebug.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ED95CF21AB9028C008C4574 /* CDVDebug.h */; };
@@ -93,6 +93,7 @@
 		9052DE8D2150D06B008E83D4 /* CDVGestureHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = A3B082D21BB15CEA00D8DC35 /* CDVGestureHandler.h */; };
 		9052DE8E2150D06B008E83D4 /* CDVIntentAndNavigationFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3093E2211B16D6A3003F381A /* CDVIntentAndNavigationFilter.h */; };
 		9052DE8F2150D06B008E83D4 /* CDVHandleOpenURL.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ED95CF81AB9028C008C4574 /* CDVHandleOpenURL.h */; };
+		9059F51C26F2CE2400B3B2B7 /* CDVURLSchemeHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F4D42BA23F218BA00501999 /* CDVURLSchemeHandler.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		A3B082D41BB15CEA00D8DC35 /* CDVGestureHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = A3B082D21BB15CEA00D8DC35 /* CDVGestureHandler.h */; };
 		A3B082D51BB15CEA00D8DC35 /* CDVGestureHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = A3B082D31BB15CEA00D8DC35 /* CDVGestureHandler.m */; };
 		C0C01EB61E3911D50056E6CB /* Cordova.h in Headers */ = {isa = PBXBuildFile; fileRef = C0C01EB41E3911D50056E6CB /* Cordova.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -173,7 +174,6 @@
 		7ED95D341AB9029B008C4574 /* NSMutableArray+QueueAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableArray+QueueAdditions.m"; sourceTree = "<group>"; };
 		A3B082D21BB15CEA00D8DC35 /* CDVGestureHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDVGestureHandler.h; sourceTree = "<group>"; };
 		A3B082D31BB15CEA00D8DC35 /* CDVGestureHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDVGestureHandler.m; sourceTree = "<group>"; };
-		AA747D9E0F9514B9006C5449 /* CordovaLib_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CordovaLib_Prefix.pch; sourceTree = SOURCE_ROOT; };
 		C0C01EB21E3911D50056E6CB /* Cordova.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Cordova.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 		C0C01EB41E3911D50056E6CB /* Cordova.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Cordova.h; sourceTree = "<group>"; };
 		C0C01EB51E3911D50056E6CB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@@ -209,6 +209,7 @@
 		0867D691FE84028FC02AAC07 = {
 			isa = PBXGroup;
 			children = (
+				9064EF5E26FAB74200C9D65B /* include */,
 				7ED95D0E1AB9029B008C4574 /* Public */,
 				7ED95CF11AB9028C008C4574 /* Private */,
 				C0C01EB31E3911D50056E6CB /* Cordova */,
@@ -257,7 +258,6 @@
 		7ED95CF11AB9028C008C4574 /* Private */ = {
 			isa = PBXGroup;
 			children = (
-				AA747D9E0F9514B9006C5449 /* CordovaLib_Prefix.pch */,
 				7ED95CF21AB9028C008C4574 /* CDVDebug.h */,
 				7ED95CF31AB9028C008C4574 /* CDVJSON_private.h */,
 				7ED95CF41AB9028C008C4574 /* CDVJSON_private.m */,
@@ -293,45 +293,61 @@
 		7ED95D0E1AB9029B008C4574 /* Public */ = {
 			isa = PBXGroup;
 			children = (
+				7ED95D111AB9029B008C4574 /* CDVAppDelegate.m */,
+				7ED95D161AB9029B008C4574 /* CDVCommandDelegateImpl.m */,
+				7ED95D181AB9029B008C4574 /* CDVCommandQueue.m */,
+				7ED95D1A1AB9029B008C4574 /* CDVConfigParser.m */,
+				7ED95D1C1AB9029B008C4574 /* CDVInvokedUrlCommand.m */,
+				7ED95D1E1AB9029B008C4574 /* CDVPlugin+Resources.m */,
+				7ED95D201AB9029B008C4574 /* CDVPlugin.m */,
+				7ED95D221AB9029B008C4574 /* CDVPluginResult.m */,
+				7ED95D251AB9029B008C4574 /* CDVTimer.m */,
+				4E23F8F523E16E96006CD852 /* CDVWebViewProcessPoolFactory.m */,
+				7ED95D2B1AB9029B008C4574 /* CDVViewController.m */,
+				7ED95D2E1AB9029B008C4574 /* CDVAllowList.m */,
+				7ED95D321AB9029B008C4574 /* NSDictionary+CordovaPreferences.m */,
+				7ED95D341AB9029B008C4574 /* NSMutableArray+QueueAdditions.m */,
+				2F4D42BB23F218BA00501999 /* CDVURLSchemeHandler.m */,
+			);
+			name = Public;
+			path = Classes/Public;
+			sourceTree = "<group>";
+		};
+		9064EF5E26FAB74200C9D65B /* include */ = {
+			isa = PBXGroup;
+			children = (
+				C0C01EB41E3911D50056E6CB /* Cordova.h */,
+				9064EF5F26FAB74800C9D65B /* Cordova */,
+			);
+			path = include;
+			sourceTree = "<group>";
+		};
+		9064EF5F26FAB74800C9D65B /* Cordova */ = {
+			isa = PBXGroup;
+			children = (
 				7ED95D0F1AB9029B008C4574 /* CDV.h */,
 				7ED95D101AB9029B008C4574 /* CDVAppDelegate.h */,
-				7ED95D111AB9029B008C4574 /* CDVAppDelegate.m */,
 				7ED95D121AB9029B008C4574 /* CDVAvailability.h */,
 				7ED95D131AB9029B008C4574 /* CDVAvailabilityDeprecated.h */,
 				7ED95D141AB9029B008C4574 /* CDVCommandDelegate.h */,
 				7ED95D151AB9029B008C4574 /* CDVCommandDelegateImpl.h */,
-				7ED95D161AB9029B008C4574 /* CDVCommandDelegateImpl.m */,
 				7ED95D171AB9029B008C4574 /* CDVCommandQueue.h */,
-				7ED95D181AB9029B008C4574 /* CDVCommandQueue.m */,
 				7ED95D191AB9029B008C4574 /* CDVConfigParser.h */,
-				7ED95D1A1AB9029B008C4574 /* CDVConfigParser.m */,
 				7ED95D1B1AB9029B008C4574 /* CDVInvokedUrlCommand.h */,
-				7ED95D1C1AB9029B008C4574 /* CDVInvokedUrlCommand.m */,
 				7ED95D1D1AB9029B008C4574 /* CDVPlugin+Resources.h */,
-				7ED95D1E1AB9029B008C4574 /* CDVPlugin+Resources.m */,
 				7ED95D1F1AB9029B008C4574 /* CDVPlugin.h */,
-				7ED95D201AB9029B008C4574 /* CDVPlugin.m */,
 				7ED95D211AB9029B008C4574 /* CDVPluginResult.h */,
-				7ED95D221AB9029B008C4574 /* CDVPluginResult.m */,
 				7ED95D231AB9029B008C4574 /* CDVScreenOrientationDelegate.h */,
 				7ED95D241AB9029B008C4574 /* CDVTimer.h */,
-				7ED95D251AB9029B008C4574 /* CDVTimer.m */,
 				7ED95D2A1AB9029B008C4574 /* CDVViewController.h */,
 				4E23F8F923E16E96006CD852 /* CDVWebViewProcessPoolFactory.h */,
-				4E23F8F523E16E96006CD852 /* CDVWebViewProcessPoolFactory.m */,
-				7ED95D2B1AB9029B008C4574 /* CDVViewController.m */,
 				7ED95D2C1AB9029B008C4574 /* CDVWebViewEngineProtocol.h */,
 				7ED95D2D1AB9029B008C4574 /* CDVAllowList.h */,
-				7ED95D2E1AB9029B008C4574 /* CDVAllowList.m */,
 				7ED95D311AB9029B008C4574 /* NSDictionary+CordovaPreferences.h */,
-				7ED95D321AB9029B008C4574 /* NSDictionary+CordovaPreferences.m */,
 				7ED95D331AB9029B008C4574 /* NSMutableArray+QueueAdditions.h */,
-				7ED95D341AB9029B008C4574 /* NSMutableArray+QueueAdditions.m */,
 				2F4D42BA23F218BA00501999 /* CDVURLSchemeHandler.h */,
-				2F4D42BB23F218BA00501999 /* CDVURLSchemeHandler.m */,
 			);
-			name = Public;
-			path = Classes/Public;
+			path = Cordova;
 			sourceTree = "<group>";
 		};
 		A3B082D11BB15CEA00D8DC35 /* CDVGestureHandler */ = {
@@ -346,7 +362,6 @@
 		C0C01EB31E3911D50056E6CB /* Cordova */ = {
 			isa = PBXGroup;
 			children = (
-				C0C01EB41E3911D50056E6CB /* Cordova.h */,
 				C0C01EB51E3911D50056E6CB /* Info.plist */,
 			);
 			path = Cordova;
@@ -373,6 +388,7 @@
 				C0C01EC41E39131A0056E6CB /* CDVPlugin+Resources.h in Headers */,
 				C0C01EC51E39131A0056E6CB /* CDVPlugin.h in Headers */,
 				C0C01EC61E39131A0056E6CB /* CDVPluginResult.h in Headers */,
+				9059F51C26F2CE2400B3B2B7 /* CDVURLSchemeHandler.h in Headers */,
 				C0C01EC71E39131A0056E6CB /* CDVScreenOrientationDelegate.h in Headers */,
 				4F56D836254A2EE10063F1D6 /* CDVWebViewEngine.h in Headers */,
 				C0C01EC81E39131A0056E6CB /* CDVTimer.h in Headers */,
@@ -438,10 +454,9 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = C0C01EB91E3911D50056E6CB /* Build configuration list for PBXNativeTarget "Cordova" */;
 			buildPhases = (
+				C0C01EAF1E3911D50056E6CB /* Headers */,
 				C0C01EAD1E3911D50056E6CB /* Sources */,
 				C0C01EAE1E3911D50056E6CB /* Frameworks */,
-				C0C01EAF1E3911D50056E6CB /* Headers */,
-				CEDDBB5523948D4C00506451 /* ShellScript */,
 			);
 			buildRules = (
 			);
@@ -506,26 +521,6 @@
 		};
 /* End PBXProject section */
 
-/* Begin PBXShellScriptBuildPhase section */
-		CEDDBB5523948D4C00506451 /* ShellScript */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputFileListPaths = (
-			);
-			inputPaths = (
-			);
-			outputFileListPaths = (
-			);
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "\"${PROJECT_DIR}/../update_podspec.sh\" -s cordova\n";
-		};
-/* End PBXShellScriptBuildPhase section */
-
 /* Begin PBXSourcesBuildPhase section */
 		C0C01EAD1E3911D50056E6CB /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
@@ -632,6 +627,7 @@
 				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
 				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
 				CLANG_WARN_STRICT_PROTOTYPES = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -648,7 +644,6 @@
 				GCC_NO_COMMON_BLOCKS = YES;
 				GCC_OPTIMIZATION_LEVEL = 0;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = CordovaLib_Prefix.pch;
 				GCC_PREPROCESSOR_DEFINITIONS = (
 					"DEBUG=1",
 					"$(inherited)",
@@ -696,6 +691,7 @@
 				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
 				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
 				CLANG_WARN_STRICT_PROTOTYPES = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -710,7 +706,6 @@
 				GCC_C_LANGUAGE_STANDARD = gnu11;
 				GCC_NO_COMMON_BLOCKS = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = CordovaLib_Prefix.pch;
 				GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
diff --git a/CordovaLib/CordovaLib_Prefix.pch b/CordovaLib/CordovaLib_Prefix.pch
deleted file mode 100644
index 9545580..0000000
--- a/CordovaLib/CordovaLib_Prefix.pch
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
- 
- http://www.apache.org/licenses/LICENSE-2.0
- 
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#ifdef __OBJC__
-    #import <Foundation/Foundation.h>
-#endif
diff --git a/CordovaLib/Cordova/Cordova.h b/CordovaLib/include/Cordova.h
similarity index 94%
rename from CordovaLib/Cordova/Cordova.h
rename to CordovaLib/include/Cordova.h
index 75b265e..87fd222 100644
--- a/CordovaLib/Cordova/Cordova.h
+++ b/CordovaLib/include/Cordova.h
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import <UIKit/UIKit.h>
+@import Foundation;
 
 //! Project version number for Cordova.
 FOUNDATION_EXPORT double CordovaVersionNumber;
@@ -41,9 +41,10 @@ FOUNDATION_EXPORT const unsigned char CordovaVersionString[];
 #import <Cordova/CDVInvokedUrlCommand.h>
 #import <Cordova/CDVPlugin+Resources.h>
 #import <Cordova/CDVWebViewEngineProtocol.h>
+#import <Cordova/CDVWebViewProcessPoolFactory.h>
 #import <Cordova/NSDictionary+CordovaPreferences.h>
 #import <Cordova/NSMutableArray+QueueAdditions.h>
-#import <Cordova/CDVWebViewUIDelegate.h>
 #import <Cordova/CDVAllowList.h>
 #import <Cordova/CDVScreenOrientationDelegate.h>
 #import <Cordova/CDVTimer.h>
+#import <Cordova/CDVURLSchemeHandler.h>
diff --git a/CordovaLib/Classes/Public/CDV.h b/CordovaLib/include/Cordova/CDV.h
similarity index 65%
rename from CordovaLib/Classes/Public/CDV.h
rename to CordovaLib/include/Cordova/CDV.h
index 2ae36f8..2002ac8 100644
--- a/CordovaLib/Classes/Public/CDV.h
+++ b/CordovaLib/include/Cordova/CDV.h
@@ -17,14 +17,14 @@
  under the License.
  */
 
-#import "CDVAvailability.h"
-#import "CDVAvailabilityDeprecated.h"
-#import "CDVAppDelegate.h"
-#import "CDVPlugin.h"
-#import "CDVPluginResult.h"
-#import "CDVViewController.h"
-#import "CDVCommandDelegate.h"
-#import "CDVInvokedUrlCommand.h"
-#import "CDVAllowList.h"
-#import "CDVScreenOrientationDelegate.h"
-#import "CDVTimer.h"
+#import <Cordova/CDVAvailability.h>
+#import <Cordova/CDVAvailabilityDeprecated.h>
+#import <Cordova/CDVAppDelegate.h>
+#import <Cordova/CDVPlugin.h>
+#import <Cordova/CDVPluginResult.h>
+#import <Cordova/CDVViewController.h>
+#import <Cordova/CDVCommandDelegate.h>
+#import <Cordova/CDVInvokedUrlCommand.h>
+#import <Cordova/CDVAllowList.h>
+#import <Cordova/CDVScreenOrientationDelegate.h>
+#import <Cordova/CDVTimer.h>
diff --git a/CordovaLib/Classes/Public/CDVAllowList.h b/CordovaLib/include/Cordova/CDVAllowList.h
similarity index 97%
rename from CordovaLib/Classes/Public/CDVAllowList.h
rename to CordovaLib/include/Cordova/CDVAllowList.h
index 57814b1..2c48203 100644
--- a/CordovaLib/Classes/Public/CDVAllowList.h
+++ b/CordovaLib/include/Cordova/CDVAllowList.h
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import <Foundation/Foundation.h>
+@import Foundation;
 
 extern NSString* const kCDVDefaultAllowListRejectionString;
 
diff --git a/CordovaLib/Classes/Public/CDVAppDelegate.h b/CordovaLib/include/Cordova/CDVAppDelegate.h
similarity index 93%
rename from CordovaLib/Classes/Public/CDVAppDelegate.h
rename to CordovaLib/include/Cordova/CDVAppDelegate.h
index de5b518..9a15a51 100644
--- a/CordovaLib/Classes/Public/CDVAppDelegate.h
+++ b/CordovaLib/include/Cordova/CDVAppDelegate.h
@@ -17,8 +17,9 @@
  under the License.
  */
 
-#import <Foundation/Foundation.h>
-#import "CDVViewController.h"
+@import Foundation;
+
+#import <Cordova/CDVViewController.h>
 
 @interface CDVAppDelegate : NSObject <UIApplicationDelegate>{}
 
diff --git a/CordovaLib/Classes/Public/CDVAvailability.h b/CordovaLib/include/Cordova/CDVAvailability.h
similarity index 98%
rename from CordovaLib/Classes/Public/CDVAvailability.h
rename to CordovaLib/include/Cordova/CDVAvailability.h
index 8b1ab47..5f1eab5 100644
--- a/CordovaLib/Classes/Public/CDVAvailability.h
+++ b/CordovaLib/include/Cordova/CDVAvailability.h
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import "CDVAvailabilityDeprecated.h"
+#import <Cordova/CDVAvailabilityDeprecated.h>
 
 #define __CORDOVA_IOS__
 
diff --git a/CordovaLib/Classes/Public/CDVAvailabilityDeprecated.h b/CordovaLib/include/Cordova/CDVAvailabilityDeprecated.h
similarity index 97%
rename from CordovaLib/Classes/Public/CDVAvailabilityDeprecated.h
rename to CordovaLib/include/Cordova/CDVAvailabilityDeprecated.h
index abf7a16..4e34bb7 100644
--- a/CordovaLib/Classes/Public/CDVAvailabilityDeprecated.h
+++ b/CordovaLib/include/Cordova/CDVAvailabilityDeprecated.h
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import <UIKit/UIKit.h>
+@import UIKit;
 
 #ifdef __clang__
     #define CDV_DEPRECATED(version, msg) __attribute__((deprecated("Deprecated in Cordova " #version ". " msg)))
diff --git a/CordovaLib/Classes/Public/CDVCommandDelegate.h b/CordovaLib/include/Cordova/CDVCommandDelegate.h
similarity index 96%
rename from CordovaLib/Classes/Public/CDVCommandDelegate.h
rename to CordovaLib/include/Cordova/CDVCommandDelegate.h
index 3d15d9a..76b9523 100644
--- a/CordovaLib/Classes/Public/CDVCommandDelegate.h
+++ b/CordovaLib/include/Cordova/CDVCommandDelegate.h
@@ -17,8 +17,8 @@
  under the License.
  */
 
-#import "CDVAvailability.h"
-#import "CDVInvokedUrlCommand.h"
+#import <Cordova/CDVAvailability.h>
+#import <Cordova/CDVInvokedUrlCommand.h>
 
 @class CDVPlugin;
 @class CDVPluginResult;
diff --git a/CordovaLib/Classes/Public/CDVCommandDelegateImpl.h b/CordovaLib/include/Cordova/CDVCommandDelegateImpl.h
similarity index 95%
rename from CordovaLib/Classes/Public/CDVCommandDelegateImpl.h
rename to CordovaLib/include/Cordova/CDVCommandDelegateImpl.h
index 0531134..b87709b 100644
--- a/CordovaLib/Classes/Public/CDVCommandDelegateImpl.h
+++ b/CordovaLib/include/Cordova/CDVCommandDelegateImpl.h
@@ -17,8 +17,8 @@
  under the License.
  */
 
-#import <UIKit/UIKit.h>
-#import "CDVCommandDelegate.h"
+@import UIKit;
+#import <Cordova/CDVCommandDelegate.h>
 
 @class CDVViewController;
 @class CDVCommandQueue;
diff --git a/CordovaLib/Classes/Public/CDVCommandQueue.h b/CordovaLib/include/Cordova/CDVCommandQueue.h
similarity index 97%
rename from CordovaLib/Classes/Public/CDVCommandQueue.h
rename to CordovaLib/include/Cordova/CDVCommandQueue.h
index cb7bd6e..c7caf5f 100644
--- a/CordovaLib/Classes/Public/CDVCommandQueue.h
+++ b/CordovaLib/include/Cordova/CDVCommandQueue.h
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import <Foundation/Foundation.h>
+@import Foundation;
 
 @class CDVInvokedUrlCommand;
 @class CDVViewController;
diff --git a/CordovaLib/Classes/Public/CDVConfigParser.h b/CordovaLib/include/Cordova/CDVConfigParser.h
similarity index 98%
rename from CordovaLib/Classes/Public/CDVConfigParser.h
rename to CordovaLib/include/Cordova/CDVConfigParser.h
index bae3d0f..f3dbefc 100644
--- a/CordovaLib/Classes/Public/CDVConfigParser.h
+++ b/CordovaLib/include/Cordova/CDVConfigParser.h
@@ -17,6 +17,8 @@
  under the License.
  */
 
+@import Foundation;
+
 @interface CDVConfigParser : NSObject <NSXMLParserDelegate>
 {
     NSString* featureName;
diff --git a/CordovaLib/Classes/Public/CDVInvokedUrlCommand.h b/CordovaLib/include/Cordova/CDVInvokedUrlCommand.h
similarity index 98%
rename from CordovaLib/Classes/Public/CDVInvokedUrlCommand.h
rename to CordovaLib/include/Cordova/CDVInvokedUrlCommand.h
index 993e0a2..6d6dc3c 100644
--- a/CordovaLib/Classes/Public/CDVInvokedUrlCommand.h
+++ b/CordovaLib/include/Cordova/CDVInvokedUrlCommand.h
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import <Foundation/Foundation.h>
+@import Foundation;
 
 @interface CDVInvokedUrlCommand : NSObject {
     NSString* _callbackId;
diff --git a/CordovaLib/Classes/Public/CDVPlugin+Resources.h b/CordovaLib/include/Cordova/CDVPlugin+Resources.h
similarity index 97%
rename from CordovaLib/Classes/Public/CDVPlugin+Resources.h
rename to CordovaLib/include/Cordova/CDVPlugin+Resources.h
index cc43b16..7432a24 100644
--- a/CordovaLib/Classes/Public/CDVPlugin+Resources.h
+++ b/CordovaLib/include/Cordova/CDVPlugin+Resources.h
@@ -17,8 +17,8 @@
  under the License.
  */
 
-#import <UIKit/UIKit.h>
-#import "CDVPlugin.h"
+@import UIKit;
+#import <Cordova/CDVPlugin.h>
 
 @interface CDVPlugin (CDVPluginResources)
 
diff --git a/CordovaLib/Classes/Public/CDVPlugin.h b/CordovaLib/include/Cordova/CDVPlugin.h
similarity index 91%
rename from CordovaLib/Classes/Public/CDVPlugin.h
rename to CordovaLib/include/Cordova/CDVPlugin.h
index 0bdbbab..1e2a928 100644
--- a/CordovaLib/Classes/Public/CDVPlugin.h
+++ b/CordovaLib/include/Cordova/CDVPlugin.h
@@ -17,12 +17,13 @@
  under the License.
  */
 
-#import <Foundation/Foundation.h>
-#import <UIKit/UIKit.h>
-#import "CDVPluginResult.h"
-#import "NSMutableArray+QueueAdditions.h"
-#import "CDVCommandDelegate.h"
-#import "CDVWebViewEngineProtocol.h"
+@import Foundation;
+@import UIKit;
+
+#import <Cordova/CDVPluginResult.h>
+#import <Cordova/NSMutableArray+QueueAdditions.h>
+#import <Cordova/CDVCommandDelegate.h>
+#import <Cordova/CDVWebViewEngineProtocol.h>
 
 @interface UIView (org_apache_cordova_UIView_Extension)
 
diff --git a/CordovaLib/Classes/Public/CDVPluginResult.h b/CordovaLib/include/Cordova/CDVPluginResult.h
similarity index 98%
rename from CordovaLib/Classes/Public/CDVPluginResult.h
rename to CordovaLib/include/Cordova/CDVPluginResult.h
index 2f62d77..9bfd6b2 100644
--- a/CordovaLib/Classes/Public/CDVPluginResult.h
+++ b/CordovaLib/include/Cordova/CDVPluginResult.h
@@ -17,8 +17,9 @@
  under the License.
  */
 
-#import <Foundation/Foundation.h>
-#import "CDVAvailability.h"
+@import Foundation;
+
+#import <Cordova/CDVAvailability.h>
 
 typedef NS_ENUM(NSUInteger, CDVCommandStatus) {
     CDVCommandStatus_NO_RESULT NS_SWIFT_NAME(noResult) = 0,
diff --git a/CordovaLib/Classes/Public/CDVScreenOrientationDelegate.h b/CordovaLib/include/Cordova/CDVScreenOrientationDelegate.h
similarity index 96%
rename from CordovaLib/Classes/Public/CDVScreenOrientationDelegate.h
rename to CordovaLib/include/Cordova/CDVScreenOrientationDelegate.h
index 49c3c27..72afe88 100644
--- a/CordovaLib/Classes/Public/CDVScreenOrientationDelegate.h
+++ b/CordovaLib/include/Cordova/CDVScreenOrientationDelegate.h
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import <Foundation/Foundation.h>
+@import Foundation;
 
 @protocol CDVScreenOrientationDelegate <NSObject>
 
diff --git a/CordovaLib/Classes/Public/CDVTimer.h b/CordovaLib/include/Cordova/CDVTimer.h
similarity index 96%
rename from CordovaLib/Classes/Public/CDVTimer.h
rename to CordovaLib/include/Cordova/CDVTimer.h
index 6d31593..1d40284 100644
--- a/CordovaLib/Classes/Public/CDVTimer.h
+++ b/CordovaLib/include/Cordova/CDVTimer.h
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import <Foundation/Foundation.h>
+@import Foundation;
 
 @interface CDVTimer : NSObject
 
diff --git a/CordovaLib/Classes/Public/CDVURLSchemeHandler.h b/CordovaLib/include/Cordova/CDVURLSchemeHandler.h
similarity index 91%
rename from CordovaLib/Classes/Public/CDVURLSchemeHandler.h
rename to CordovaLib/include/Cordova/CDVURLSchemeHandler.h
index c074fa6..ed691d6 100644
--- a/CordovaLib/Classes/Public/CDVURLSchemeHandler.h
+++ b/CordovaLib/include/Cordova/CDVURLSchemeHandler.h
@@ -17,9 +17,10 @@
  under the License.
  */
 
-#import <Foundation/Foundation.h>
-#import <WebKit/WebKit.h>
-#import "CDVViewController.h"
+@import Foundation;
+@import WebKit;
+
+#import <Cordova/CDVViewController.h>
 
 
 @interface CDVURLSchemeHandler : NSObject <WKURLSchemeHandler>
diff --git a/CordovaLib/Classes/Public/CDVViewController.h b/CordovaLib/include/Cordova/CDVViewController.h
similarity index 92%
rename from CordovaLib/Classes/Public/CDVViewController.h
rename to CordovaLib/include/Cordova/CDVViewController.h
index 8e595e3..c244663 100644
--- a/CordovaLib/Classes/Public/CDVViewController.h
+++ b/CordovaLib/include/Cordova/CDVViewController.h
@@ -17,16 +17,16 @@
  under the License.
  */
 
-#import <UIKit/UIKit.h>
-#import <Foundation/NSJSONSerialization.h>
-#import "CDVAvailability.h"
-#import "CDVInvokedUrlCommand.h"
-#import "CDVCommandDelegate.h"
-#import "CDVCommandQueue.h"
-#import "CDVScreenOrientationDelegate.h"
-#import "CDVPlugin.h"
-#import "CDVWebViewEngineProtocol.h"
+@import UIKit;
 @import WebKit;
+#import <Foundation/NSJSONSerialization.h>
+#import <Cordova/CDVAvailability.h>
+#import <Cordova/CDVInvokedUrlCommand.h>
+#import <Cordova/CDVCommandDelegate.h>
+#import <Cordova/CDVCommandQueue.h>
+#import <Cordova/CDVScreenOrientationDelegate.h>
+#import <Cordova/CDVPlugin.h>
+#import <Cordova/CDVWebViewEngineProtocol.h>
 
 @protocol CDVWebViewEngineConfigurationDelegate <NSObject>
 
diff --git a/CordovaLib/Classes/Public/CDVWebViewEngineProtocol.h b/CordovaLib/include/Cordova/CDVWebViewEngineProtocol.h
similarity index 98%
rename from CordovaLib/Classes/Public/CDVWebViewEngineProtocol.h
rename to CordovaLib/include/Cordova/CDVWebViewEngineProtocol.h
index 8a562a7..2faf62d 100644
--- a/CordovaLib/Classes/Public/CDVWebViewEngineProtocol.h
+++ b/CordovaLib/include/Cordova/CDVWebViewEngineProtocol.h
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import <UIKit/UIKit.h>
+@import UIKit;
 @import WebKit;
 
 #define kCDVWebViewEngineScriptMessageHandlers @"kCDVWebViewEngineScriptMessageHandlers"
diff --git a/CordovaLib/Classes/Public/CDVWebViewProcessPoolFactory.h b/CordovaLib/include/Cordova/CDVWebViewProcessPoolFactory.h
similarity index 97%
rename from CordovaLib/Classes/Public/CDVWebViewProcessPoolFactory.h
rename to CordovaLib/include/Cordova/CDVWebViewProcessPoolFactory.h
index b156289..852fd6e 100644
--- a/CordovaLib/Classes/Public/CDVWebViewProcessPoolFactory.h
+++ b/CordovaLib/include/Cordova/CDVWebViewProcessPoolFactory.h
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import <WebKit/WebKit.h>
+@import WebKit;
 
 @interface CDVWebViewProcessPoolFactory : NSObject
 @property (nonatomic, retain) WKProcessPool* sharedPool;
diff --git a/CordovaLib/Classes/Public/NSDictionary+CordovaPreferences.h b/CordovaLib/include/Cordova/NSDictionary+CordovaPreferences.h
similarity index 95%
rename from CordovaLib/Classes/Public/NSDictionary+CordovaPreferences.h
rename to CordovaLib/include/Cordova/NSDictionary+CordovaPreferences.h
index 9be2be2..5d27f00 100644
--- a/CordovaLib/Classes/Public/NSDictionary+CordovaPreferences.h
+++ b/CordovaLib/include/Cordova/NSDictionary+CordovaPreferences.h
@@ -17,8 +17,8 @@
  under the License.
  */
 
-#import <Foundation/Foundation.h>
-#import <UIKit/UIKit.h>
+@import Foundation;
+@import UIKit;
 
 @interface NSDictionary (CordovaPreferences)
 
diff --git a/CordovaLib/Classes/Public/NSMutableArray+QueueAdditions.h b/CordovaLib/include/Cordova/NSMutableArray+QueueAdditions.h
similarity index 96%
rename from CordovaLib/Classes/Public/NSMutableArray+QueueAdditions.h
rename to CordovaLib/include/Cordova/NSMutableArray+QueueAdditions.h
index 79e6516..0ab614d 100644
--- a/CordovaLib/Classes/Public/NSMutableArray+QueueAdditions.h
+++ b/CordovaLib/include/Cordova/NSMutableArray+QueueAdditions.h
@@ -17,7 +17,7 @@
  under the License.
  */
 
-#import <Foundation/Foundation.h>
+@import Foundation;
 
 @interface NSMutableArray (QueueAdditions)
 
diff --git a/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewEngine.h b/Package.swift
similarity index 63%
copy from CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewEngine.h
copy to Package.swift
index 47e26d1..64568f3 100644
--- a/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewEngine.h
+++ b/Package.swift
@@ -1,3 +1,5 @@
+// swift-tools-version:5.3
+
 /*
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
@@ -17,13 +19,24 @@
  under the License.
  */
 
-#import <WebKit/WebKit.h>
-#import <Cordova/CDV.h>
-
-@interface CDVWebViewEngine : CDVPlugin <CDVWebViewEngineProtocol, WKScriptMessageHandler, WKNavigationDelegate>
-
-@property (nonatomic, strong, readonly) id <WKUIDelegate> uiDelegate;
-
-- (void)allowsBackForwardNavigationGestures:(CDVInvokedUrlCommand*)command;
+import PackageDescription
 
-@end
+let package = Package(
+    name: "Cordova",
+    platforms: [
+        .iOS(.v11)
+    ],
+    products: [
+        .library(name: "CordovaLib", targets: ["Cordova"])
+    ],
+    dependencies: [],
+    targets: [
+        .target(
+            name: "Cordova",
+            path: "CordovaLib/",
+            cSettings: [
+              .headerSearchPath("Classes/Private")
+           ]
+        )
+    ]
+)
diff --git a/bin/lib/create.js b/bin/lib/create.js
index 0ba44ef..4c310dc 100755
--- a/bin/lib/create.js
+++ b/bin/lib/create.js
@@ -57,10 +57,10 @@ function copyJsAndCordovaLib (projectPath, projectName, use_shared, config) {
         const r = path.join(projectPath, projectName);
         fs.ensureDirSync(path.join(projectPath, 'CordovaLib', 'CordovaLib.xcodeproj'));
         fs.copySync(path.join(r, '.gitignore'), path.join(projectPath, '.gitignore'));
+        fs.copySync(path.join(ROOT, 'CordovaLib', 'include'), path.join(projectPath, 'CordovaLib/include'));
         fs.copySync(path.join(ROOT, 'CordovaLib', 'Classes'), path.join(projectPath, 'CordovaLib/Classes'));
         fs.copySync(path.join(ROOT, 'CordovaLib', 'VERSION'), path.join(projectPath, 'CordovaLib/VERSION'));
         fs.copySync(path.join(ROOT, 'CordovaLib', 'cordova.js'), path.join(projectPath, 'CordovaLib/cordova.js'));
-        fs.copySync(path.join(ROOT, 'CordovaLib', 'CordovaLib_Prefix.pch'), path.join(projectPath, 'CordovaLib/CordovaLib_Prefix.pch'));
         fs.copySync(path.join(ROOT, 'CordovaLib', 'CordovaLib.xcodeproj', 'project.pbxproj'), path.join(projectPath, 'CordovaLib', 'CordovaLib.xcodeproj', 'project.pbxproj'));
         update_cordova_subproject([path.join(`${r}.xcodeproj`, 'project.pbxproj'), path.join(projectPath, 'CordovaLib', 'CordovaLib.xcodeproj', 'project.pbxproj'), config]);
     }
diff --git a/update_podspec.sh b/update_podspec.sh
deleted file mode 100755
index 35e0bfa..0000000
--- a/update_podspec.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-# 
-# http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-set -e
-
-SUBSPEC_NAME=""
-
-function usage()
-{
-	local appName=`basename $0`
-	echo "Usage:"
-	echo "$appName -s <Subspec Name>"
-}
-
-function parseOpts()
-{
-	while getopts :s: commandLineOpt; do
-		case ${commandLineOpt} in
-			s)
-			    SUBSPEC_NAME=${OPTARG};;
-			?)
-			    echo "Unknown option '-${OPTARG}'."
-			    usage
-			    exit 1
-		esac
-	done
-
-	# Validate that we got the required command line arg(s).
-	if [ "${SUBSPEC_NAME}" == "" ]; then
-		echo "No option specified for Subspec Name."
-		usage
-		exit 2
-	fi
-}
-
-parseOpts "$@"
-
-repoDir=$(cd "$(dirname ${BASH_SOURCE[0]})" && pwd)
-publicHeaderDirectory="${TARGET_BUILD_DIR}/${PUBLIC_HEADERS_FOLDER_PATH}"
-podSpecFile="${repoDir}/Cordova.podspec"
-projectDir=`echo "${PROJECT_DIR}" | sed "s#${repoDir}/##g"`
-
-cd "$repoDir"
-
-# Create the public header file list out of the public headers in the build folder.
-publicHeaderFileList=""
-isFirstFile=1
-for headerFile in `ls -1 "${publicHeaderDirectory}"`; do
-	repoHeaderFile=`find ${projectDir} -name $headerFile`
-	if [ "$repoHeaderFile" != "" ]; then
-		if [ $isFirstFile -eq 1 ]; then
-			publicHeaderFileList="'$repoHeaderFile'"
-			isFirstFile=0
-		else
-			publicHeaderFileList=`echo "${publicHeaderFileList}, '$repoHeaderFile'"`
-		fi
-	fi
-done
-
-# Make sure none of the public header files are in the exclude files list
-if grep -q "${SUBSPEC_NAME}.exclude_files" ${podSpecFile}
-then
-    echo "${publicHeaderFileList}" | sed 's/ *//g' | tr , '\n' | sort > "${podSpecFile}.public_header_files_list"
-    cat "${podSpecFile}" | grep "${SUBSPEC_NAME}.exclude_files"  | sed 's/.*=//' | sed 's/ *//g' | tr , '\n' | sort > "${podSpecFile}.exclude_files_list"
-    publicHeaderFileList=`comm -23 ${podSpecFile}.public_header_files_list ${podSpecFile}.exclude_files_list | tr '\n' , | sed 's/,$//'`
-    rm "${podSpecFile}.public_header_files_list" "${podSpecFile}.exclude_files_list"
-fi
-
-# Replace the old headers with the new ones.
-searchPattern='^( *'"${SUBSPEC_NAME}"'\.public_header_files = ).*$'
-replacementPattern='\1'"${publicHeaderFileList}"
-sed -E "s#$searchPattern#$replacementPattern#g" "$podSpecFile" > "${podSpecFile}.new"
-mv "${podSpecFile}.new" "${podSpecFile}"

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org