diff --git a/packages/core/platforms/ios/TNSWidgets.framework.dSYM.zip b/packages/core/platforms/ios/TNSWidgets.framework.dSYM.zip
deleted file mode 100644
index c3de7d45f5..0000000000
Binary files a/packages/core/platforms/ios/TNSWidgets.framework.dSYM.zip and /dev/null differ
diff --git a/packages/core/platforms/ios/TNSWidgets.framework/TNSWidgets b/packages/core/platforms/ios/TNSWidgets.framework/TNSWidgets
deleted file mode 100755
index b2b8298674..0000000000
Binary files a/packages/core/platforms/ios/TNSWidgets.framework/TNSWidgets and /dev/null differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/Info.plist b/packages/core/platforms/ios/TNSWidgets.xcframework/Info.plist
new file mode 100644
index 0000000000..9534135682
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/Info.plist
@@ -0,0 +1,44 @@
+
+
+
+
+ AvailableLibraries
+
+
+ DebugSymbolsPath
+ dSYMs
+ LibraryIdentifier
+ ios-arm64
+ LibraryPath
+ TNSWidgets.framework
+ SupportedArchitectures
+
+ arm64
+
+ SupportedPlatform
+ ios
+
+
+ DebugSymbolsPath
+ dSYMs
+ LibraryIdentifier
+ ios-arm64_x86_64-simulator
+ LibraryPath
+ TNSWidgets.framework
+ SupportedArchitectures
+
+ arm64
+ x86_64
+
+ SupportedPlatform
+ ios
+ SupportedPlatformVariant
+ simulator
+
+
+ CFBundlePackageType
+ XFWK
+ XCFrameworkFormatVersion
+ 1.0
+
+
diff --git a/packages/core/platforms/ios/TNSWidgets.framework/Headers/NSData+Async.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/NSData+Async.h
similarity index 90%
rename from packages/core/platforms/ios/TNSWidgets.framework/Headers/NSData+Async.h
rename to packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/NSData+Async.h
index 36508cc542..3e0cc82072 100644
--- a/packages/core/platforms/ios/TNSWidgets.framework/Headers/NSData+Async.h
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/NSData+Async.h
@@ -17,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)writeToFile:(nonnull NSString*) path
atomically:(BOOL)atomically
- completion:(void (^) ())callback;
+ completion:(void (^) (void))callback;
@end
diff --git a/packages/core/platforms/ios/TNSWidgets.framework/Headers/NSString+Async.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/NSString+Async.h
similarity index 100%
rename from packages/core/platforms/ios/TNSWidgets.framework/Headers/NSString+Async.h
rename to packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/NSString+Async.h
diff --git a/packages/core/platforms/ios/TNSWidgets.framework/Headers/TNSLabel.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/TNSLabel.h
similarity index 100%
rename from packages/core/platforms/ios/TNSWidgets.framework/Headers/TNSLabel.h
rename to packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/TNSLabel.h
diff --git a/packages/core/platforms/ios/TNSWidgets.framework/Headers/TNSProcess.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/TNSProcess.h
similarity index 96%
rename from packages/core/platforms/ios/TNSWidgets.framework/Headers/TNSProcess.h
rename to packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/TNSProcess.h
index baea955095..d2f6570142 100644
--- a/packages/core/platforms/ios/TNSWidgets.framework/Headers/TNSProcess.h
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/TNSProcess.h
@@ -14,7 +14,7 @@
/**
* Get the milliseconds since the process started.
*/
-double __tns_uptime();
+double __tns_uptime(void);
/**
* Provides access to NSLog. The runtime implementation of console.log is filtered in release.
diff --git a/packages/core/platforms/ios/TNSWidgets.framework/Headers/TNSWidgets.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/TNSWidgets.h
similarity index 100%
rename from packages/core/platforms/ios/TNSWidgets.framework/Headers/TNSWidgets.h
rename to packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/TNSWidgets.h
diff --git a/packages/core/platforms/ios/TNSWidgets.framework/Headers/UIImage+TNSBlocks.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/UIImage+TNSBlocks.h
similarity index 100%
rename from packages/core/platforms/ios/TNSWidgets.framework/Headers/UIImage+TNSBlocks.h
rename to packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/UIImage+TNSBlocks.h
diff --git a/packages/core/platforms/ios/TNSWidgets.framework/Headers/UIView+PassThroughParent.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/UIView+PassThroughParent.h
similarity index 100%
rename from packages/core/platforms/ios/TNSWidgets.framework/Headers/UIView+PassThroughParent.h
rename to packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/UIView+PassThroughParent.h
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Info.plist b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Info.plist
new file mode 100644
index 0000000000..20191327fb
Binary files /dev/null and b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Info.plist differ
diff --git a/packages/core/platforms/ios/TNSWidgets.framework/Modules/module.modulemap b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Modules/module.modulemap
similarity index 100%
rename from packages/core/platforms/ios/TNSWidgets.framework/Modules/module.modulemap
rename to packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Modules/module.modulemap
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/PrivateHeaders/NSObject+Swizzling.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/PrivateHeaders/NSObject+Swizzling.h
new file mode 100644
index 0000000000..d3d71a88f3
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/PrivateHeaders/NSObject+Swizzling.h
@@ -0,0 +1,17 @@
+//
+// NSObject+Swizzling.h
+// TNSWidgets
+//
+// Created by Manol Donev on 21.08.18.
+// Copyright © 2018 Telerik A D. All rights reserved.
+//
+
+#import
+#import
+
+
+@interface NSObject (Swizzling)
+
++ (void)swizzleInstanceMethodWithOriginalSelector:(SEL)originalSelector fromClass:(Class)classContainigOriginalSel withSwizzlingSelector:(SEL)swizzlingSelector;
+
+@end
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/PrivateHeaders/UIView+PropertyBag.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/PrivateHeaders/UIView+PropertyBag.h
new file mode 100644
index 0000000000..65ccdf02d6
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/PrivateHeaders/UIView+PropertyBag.h
@@ -0,0 +1,18 @@
+//
+// UIView+PropertyBag.h
+// TNSWidgets
+//
+// Created by Manol Donev on 21.08.18.
+// Copyright © 2018 Telerik A D. All rights reserved.
+//
+
+#import
+#import
+
+
+@interface UIView (PropertyBag)
+
+- (id) propertyValueForKey:(NSString*) key;
+- (void) setPropertyValue:(id) value forKey:(NSString*) key;
+
+@end
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/TNSWidgets b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/TNSWidgets
new file mode 100755
index 0000000000..1419306116
Binary files /dev/null and b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/TNSWidgets differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Info.plist b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Info.plist
new file mode 100644
index 0000000000..ef076e3714
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleIdentifier
+ com.apple.xcode.dsym.org.nativescript.TNSWidgets
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundlePackageType
+ dSYM
+ CFBundleSignature
+ ????
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1
+
+
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets
new file mode 100644
index 0000000000..5fdde31321
Binary files /dev/null and b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSData+Async.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSData+Async.h
new file mode 100644
index 0000000000..3e0cc82072
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSData+Async.h
@@ -0,0 +1,24 @@
+//
+// NSData+Async.h
+// TNSWidgets
+//
+// Created by Peter Staev on 7.08.19.
+// Copyright © 2019 Telerik A D. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NSData (Async)
+
++ (void)dataWithContentsOfFile:(nonnull NSString*)path
+ completion:(void (^) (NSData*))callback;
+
+- (void)writeToFile:(nonnull NSString*) path
+ atomically:(BOOL)atomically
+ completion:(void (^) (void))callback;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSString+Async.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSString+Async.h
new file mode 100644
index 0000000000..2f05922625
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSString+Async.h
@@ -0,0 +1,25 @@
+//
+// NSString+Async.h
+// TNSWidgets
+//
+// Created by Peter Staev on 5.08.19.
+// Copyright © 2019 Telerik A D. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NSString (Async)
+
++ (void)stringWithContentsOfFile:(nonnull NSString*)path
+ encoding:(NSStringEncoding)enc
+ completion:(void (^) (NSString*, NSError*))callback;
+
+- (void)writeToFile:(nonnull NSString*) path
+ atomically:(BOOL)atomically
+ encoding:(NSStringEncoding)enc
+ completion:(void (^) (NSError*))callback;
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/TNSLabel.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/TNSLabel.h
new file mode 100644
index 0000000000..1c170b9c9e
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/TNSLabel.h
@@ -0,0 +1,16 @@
+//
+// TNSLabel.h
+// TNSWidgets
+//
+// Created by Hristo Hristov on 6/9/16.
+// Copyright © 2016 Telerik A D. All rights reserved.
+//
+
+#import
+
+@interface TNSLabel : UILabel
+
+@property(nonatomic) UIEdgeInsets padding;
+@property(nonatomic) UIEdgeInsets borderThickness;
+
+@end
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/TNSProcess.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/TNSProcess.h
new file mode 100644
index 0000000000..d2f6570142
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/TNSProcess.h
@@ -0,0 +1,29 @@
+//
+// TNSProcess.h
+// TNSWidgets
+//
+// Created by Panayot Cankov on 15/05/2017.
+// Copyright © 2017 Telerik A D. All rights reserved.
+//
+
+#ifndef TNSProcess_h
+#define TNSProcess_h
+
+#import
+
+/**
+ * Get the milliseconds since the process started.
+ */
+double __tns_uptime(void);
+
+/**
+ * Provides access to NSLog. The runtime implementation of console.log is filtered in release.
+ * We rarely need to log in release but in cases such as when logging app startup times in release,
+ * this will be convenient shortcut to NSLog, NSLog is not exposed.
+ *
+ * Please note the {N} CLI may be filtering app output, prefixing the message with "CONSOLE LOG"
+ * will make the logs visible in "tns run ios --release" builds.
+ */
+void __nslog(NSString* message);
+
+#endif /* TNSProcess_h */
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/TNSWidgets.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/TNSWidgets.h
new file mode 100644
index 0000000000..7da1d2adbb
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/TNSWidgets.h
@@ -0,0 +1,24 @@
+//
+// TNSWidgets.h
+// TNSWidgets
+//
+// Created by Panayot Cankov on 4/27/16.
+// Copyright © 2016 Telerik A D. All rights reserved.
+//
+
+#import
+
+//! Project version number for TNSWidgets.
+FOUNDATION_EXPORT double TNSWidgetsVersionNumber;
+
+//! Project version string for TNSWidgets.
+FOUNDATION_EXPORT const unsigned char TNSWidgetsVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+#import "UIImage+TNSBlocks.h"
+#import "UIView+PassThroughParent.h"
+#import "TNSLabel.h"
+#import "TNSProcess.h"
+#import "NSString+Async.h"
+#import "NSData+Async.h"
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/UIImage+TNSBlocks.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/UIImage+TNSBlocks.h
new file mode 100644
index 0000000000..9e67228be6
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/UIImage+TNSBlocks.h
@@ -0,0 +1,26 @@
+//
+// UIImage+UIImage_Async.h
+// TKImageAsync
+//
+// Created by Panayot Cankov on 4/18/16.
+// Copyright © 2016 Telerik A D. All rights reserved.
+//
+
+@interface UIImage (TNSBlocks)
+
+/**
+ * Similar to imageNamed: however it runs on a separate queue so the UI thread is not blocked.
+ * It also draws the UIImage in a small thumb to force decoding potentially avoiding UI hicckups when displayed.
+ */
++ (void) tns_safeDecodeImageNamed: (NSString*) name completion: (void (^) (UIImage*))callback;
+
+/**
+ * Same as imageNamed, however calls to this method are sinchronized to be thread safe in iOS8 along with calls to tns_safeImageNamed and tns_safeDecodeImageNamed:completion:
+ * imageNamed is thread safe in iOS 9 and later so in later versions this methods simply fallbacks to imageNamed:
+ */
++ (UIImage*) tns_safeImageNamed: (NSString*) name;
+
++ (void) tns_decodeImageWithData: (NSData*) data completion: (void (^) (UIImage*))callback;
++ (void) tns_decodeImageWidthContentsOfFile: (NSString*) file completion: (void (^) (UIImage*))callback;
+
+@end
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/UIView+PassThroughParent.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/UIView+PassThroughParent.h
new file mode 100644
index 0000000000..e5f68c5683
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/UIView+PassThroughParent.h
@@ -0,0 +1,17 @@
+//
+// UIView+PassThroughParent.h
+// TNSWidgets
+//
+// Created by Manol Donev on 21.08.18.
+// Copyright © 2018 Telerik A D. All rights reserved.
+//
+
+#import
+
+
+@interface UIView (PassThroughParent)
+
+- (BOOL) passThroughParent;
+- (void) setPassThroughParent:(BOOL) passThroughParent;
+
+@end
diff --git a/packages/core/platforms/ios/TNSWidgets.framework/Info.plist b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Info.plist
similarity index 52%
rename from packages/core/platforms/ios/TNSWidgets.framework/Info.plist
rename to packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Info.plist
index ab32e047de..b611f2e4c2 100644
Binary files a/packages/core/platforms/ios/TNSWidgets.framework/Info.plist and b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Info.plist differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Modules/module.modulemap b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Modules/module.modulemap
new file mode 100644
index 0000000000..9184cde236
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module TNSWidgets {
+ umbrella header "TNSWidgets.h"
+
+ export *
+ module * { export * }
+}
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/PrivateHeaders/NSObject+Swizzling.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/PrivateHeaders/NSObject+Swizzling.h
new file mode 100644
index 0000000000..d3d71a88f3
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/PrivateHeaders/NSObject+Swizzling.h
@@ -0,0 +1,17 @@
+//
+// NSObject+Swizzling.h
+// TNSWidgets
+//
+// Created by Manol Donev on 21.08.18.
+// Copyright © 2018 Telerik A D. All rights reserved.
+//
+
+#import
+#import
+
+
+@interface NSObject (Swizzling)
+
++ (void)swizzleInstanceMethodWithOriginalSelector:(SEL)originalSelector fromClass:(Class)classContainigOriginalSel withSwizzlingSelector:(SEL)swizzlingSelector;
+
+@end
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/PrivateHeaders/UIView+PropertyBag.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/PrivateHeaders/UIView+PropertyBag.h
new file mode 100644
index 0000000000..65ccdf02d6
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/PrivateHeaders/UIView+PropertyBag.h
@@ -0,0 +1,18 @@
+//
+// UIView+PropertyBag.h
+// TNSWidgets
+//
+// Created by Manol Donev on 21.08.18.
+// Copyright © 2018 Telerik A D. All rights reserved.
+//
+
+#import
+#import
+
+
+@interface UIView (PropertyBag)
+
+- (id) propertyValueForKey:(NSString*) key;
+- (void) setPropertyValue:(id) value forKey:(NSString*) key;
+
+@end
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/TNSWidgets b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/TNSWidgets
new file mode 100755
index 0000000000..545d18e1fb
Binary files /dev/null and b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/TNSWidgets differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/_CodeSignature/CodeResources b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/_CodeSignature/CodeResources
new file mode 100644
index 0000000000..87a633daba
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/_CodeSignature/CodeResources
@@ -0,0 +1,212 @@
+
+
+
+
+ files
+
+ Headers/NSData+Async.h
+
+ 9BsuK8QsA57YnHHgpWIgaHygSEk=
+
+ Headers/NSString+Async.h
+
+ o8366y9zYMOVyObC3vtKKy/8jxA=
+
+ Headers/TNSLabel.h
+
+ x8V4jT6oNNls+KE3y/DE6ij9eCk=
+
+ Headers/TNSProcess.h
+
+ dHuocpQ4b8KDApobwYNCqXcC6ZE=
+
+ Headers/TNSWidgets.h
+
+ gUvu5bjZg5Aie5iJ1krxFmDrHwk=
+
+ Headers/UIImage+TNSBlocks.h
+
+ OzGlvoGOJcFC6Z+YR5xThjLTUK4=
+
+ Headers/UIView+PassThroughParent.h
+
+ zdxBV/QJg7NPyx04RmZrXsxbHKU=
+
+ Info.plist
+
+ p3XXJG8ZAD443Py5pz+mDsZ5EeY=
+
+ Modules/module.modulemap
+
+ ANIiDnbrCY8YCOtOm1xDrUyt8do=
+
+ PrivateHeaders/NSObject+Swizzling.h
+
+ wRUUMHgrTVWHd/e8bDqN8sYZth4=
+
+ PrivateHeaders/UIView+PropertyBag.h
+
+ 3USXIiZgky+5k7en+R6oyZ3pP18=
+
+
+ files2
+
+ Headers/NSData+Async.h
+
+ hash2
+
+ JdjuVUBed00Ged4cSDzYLXONUlESu+dae9KN0PYJ/nM=
+
+
+ Headers/NSString+Async.h
+
+ hash2
+
+ 1Iuk4atAJ89zujXqrLBvGz7Ny52RXNdD5c1ZMK0SFgs=
+
+
+ Headers/TNSLabel.h
+
+ hash2
+
+ uaE78Ar4SA7jzBIQrT3lTvBQFOQj1sf1ippa8ldUDqQ=
+
+
+ Headers/TNSProcess.h
+
+ hash2
+
+ E+JvepkSwLMNO6gdhEdwuzkdVTUqmWp8P5LxHYCFim8=
+
+
+ Headers/TNSWidgets.h
+
+ hash2
+
+ V99t2zLwRPOs90tbGiQbhbdAFJlW7mp7X2R5337ewUA=
+
+
+ Headers/UIImage+TNSBlocks.h
+
+ hash2
+
+ MgrX2woetySmXcrrDF290WGxNiW5W3E0B0fsjy8BgNI=
+
+
+ Headers/UIView+PassThroughParent.h
+
+ hash2
+
+ UfHyaUaTFlNcY5M7lUKwq6bPGuQeVIbjhCCInN1ZEYA=
+
+
+ Modules/module.modulemap
+
+ hash2
+
+ geXwbECY3V3psdekq89Ia+2j4/OludM5UatqEk+xhhc=
+
+
+ PrivateHeaders/NSObject+Swizzling.h
+
+ hash2
+
+ S+GqZzjPH/SqyxwzyysFybjZsbwS5lxcTwL04W79IGA=
+
+
+ PrivateHeaders/UIView+PropertyBag.h
+
+ hash2
+
+ /qFTteGRAX+GloVCipAdNRXPDPDWsNmQ+9USxt99lXE=
+
+
+
+ rules
+
+ ^.*
+
+ ^.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Base\.lproj/
+
+ weight
+ 1010
+
+ ^version.plist$
+
+
+ rules2
+
+ .*\.dSYM($|/)
+
+ weight
+ 11
+
+ ^(.*/)?\.DS_Store$
+
+ omit
+
+ weight
+ 2000
+
+ ^.*
+
+ ^.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Base\.lproj/
+
+ weight
+ 1010
+
+ ^Info\.plist$
+
+ omit
+
+ weight
+ 20
+
+ ^PkgInfo$
+
+ omit
+
+ weight
+ 20
+
+ ^embedded\.provisionprofile$
+
+ weight
+ 20
+
+ ^version\.plist$
+
+ weight
+ 20
+
+
+
+
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Info.plist b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Info.plist
new file mode 100644
index 0000000000..ef076e3714
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleIdentifier
+ com.apple.xcode.dsym.org.nativescript.TNSWidgets
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundlePackageType
+ dSYM
+ CFBundleSignature
+ ????
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1
+
+
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets
new file mode 100644
index 0000000000..76954d1f63
Binary files /dev/null and b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets differ
diff --git a/packages/ui-mobile-base/build.ios.sh b/packages/ui-mobile-base/build.ios.sh
index 79736026ca..3c3e2e7951 100755
--- a/packages/ui-mobile-base/build.ios.sh
+++ b/packages/ui-mobile-base/build.ios.sh
@@ -14,11 +14,11 @@ echo "Build iOS"
cd ios
./build.sh
cd ..
-echo "Copy ios/TNSWidgets/build/*.framework dist/package/platforms/ios"
+echo "Copy ios/TNSWidgets/build/*.xcframework dist/package/platforms/ios"
-cp -R ios/TNSWidgets/build/TNSWidgets.framework dist/package/platforms/ios
+cp -R ios/TNSWidgets/build/TNSWidgets.xcframework dist/package/platforms/ios
-cp ios/TNSWidgets/build/*.framework.dSYM.zip dist/package/platforms/ios
+# cp ios/TNSWidgets/build/*.framework.dSYM.zip dist/package/platforms/ios
if [ "$1" ]
then
@@ -30,7 +30,7 @@ if [ "$SKIP_PACK" ]
then
echo "SKIP pack"
else
- echo "Copy NPM artefacts"
+ echo "Copy NPM artifacts"
cp .npmignore LICENSE README.md package.json dist/package
echo "NPM pack"
cd dist/package
diff --git a/packages/ui-mobile-base/build.sh b/packages/ui-mobile-base/build.sh
index 4d39c9cd58..e7f449d025 100755
--- a/packages/ui-mobile-base/build.sh
+++ b/packages/ui-mobile-base/build.sh
@@ -14,7 +14,7 @@ export SKIP_PACK=true
./build.android.sh
./build.ios.sh
-echo "Copy NPM artefacts"
+echo "Copy NPM artifacts"
cp .npmignore README.md package.json dist/package
cp ../../LICENSE dist/package
diff --git a/packages/ui-mobile-base/ios/TNSWidgets/TNSProcess.h b/packages/ui-mobile-base/ios/TNSWidgets/TNSProcess.h
index baea955095..d2f6570142 100644
--- a/packages/ui-mobile-base/ios/TNSWidgets/TNSProcess.h
+++ b/packages/ui-mobile-base/ios/TNSWidgets/TNSProcess.h
@@ -14,7 +14,7 @@
/**
* Get the milliseconds since the process started.
*/
-double __tns_uptime();
+double __tns_uptime(void);
/**
* Provides access to NSLog. The runtime implementation of console.log is filtered in release.
diff --git a/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets.xcodeproj/project.pbxproj b/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets.xcodeproj/project.pbxproj
index f57d5413eb..50817817c3 100644
--- a/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets.xcodeproj/project.pbxproj
+++ b/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets.xcodeproj/project.pbxproj
@@ -198,7 +198,7 @@
F98F5CA61CD0EFEA00978308 /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0720;
+ LastUpgradeCheck = 1230;
ORGANIZATIONNAME = "Telerik A D";
TargetAttributes = {
F98F5CAE1CD0EFEA00978308 = {
@@ -284,17 +284,29 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ 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;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@@ -317,7 +329,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 9.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -331,17 +343,29 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ 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;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@@ -358,7 +382,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 9.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -372,6 +396,7 @@
isa = XCBuildConfiguration;
buildSettings = {
BITCODE_GENERATION_MODE = bitcode;
+ BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
@@ -389,6 +414,7 @@
isa = XCBuildConfiguration;
buildSettings = {
BITCODE_GENERATION_MODE = bitcode;
+ BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
diff --git a/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000000..18d981003d
--- /dev/null
+++ b/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
index 949b678982..3ddf867a10 100644
--- a/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
+++ b/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
@@ -3,6 +3,6 @@
BuildSystemType
- Original
+ Latest
diff --git a/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSData+Async.h b/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSData+Async.h
index 36508cc542..3e0cc82072 100644
--- a/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSData+Async.h
+++ b/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSData+Async.h
@@ -17,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)writeToFile:(nonnull NSString*) path
atomically:(BOOL)atomically
- completion:(void (^) ())callback;
+ completion:(void (^) (void))callback;
@end
diff --git a/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSData+Async.m b/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSData+Async.m
index 2f6b0a37b8..a512eda437 100644
--- a/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSData+Async.m
+++ b/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSData+Async.m
@@ -25,7 +25,7 @@ + (void)dataWithContentsOfFile:(nonnull NSString*)path
- (void)writeToFile:(nonnull NSString*) path
atomically:(BOOL)atomically
- completion:(void (^) ())callback {
+ completion:(void (^) (void))callback {
dispatch_queue_t asyncQueue = dispatch_queue_create("org.nativescript.TNSWidgets.data", NULL);
dispatch_async(asyncQueue, ^(void) {
diff --git a/packages/ui-mobile-base/ios/build.sh b/packages/ui-mobile-base/ios/build.sh
index af6a21e49f..ccac074587 100755
--- a/packages/ui-mobile-base/ios/build.sh
+++ b/packages/ui-mobile-base/ios/build.sh
@@ -3,44 +3,37 @@
echo "Set exit on simple errors"
set -e
+rm -rf $(PWD)/TNSWidgets/build
+
echo "Build for iphonesimulator"
-xcodebuild -project TNSWidgets/TNSWidgets.xcodeproj -scheme TNSWidgets -sdk iphonesimulator -configuration Release clean build BUILD_DIR=$(PWD)/TNSWidgets/build -quiet
+xcodebuild \
+ -project TNSWidgets/TNSWidgets.xcodeproj \
+ -scheme TNSWidgets \
+ -sdk iphonesimulator \
+ -configuration Release \
+ clean build \
+ BUILD_DIR=$(PWD)/TNSWidgets/build \
+ SKIP_INSTALL=NO \
+ -quiet
echo "Build for iphoneos"
-xcodebuild -project TNSWidgets/TNSWidgets.xcodeproj -scheme TNSWidgets -sdk iphoneos -configuration Release clean build BUILD_DIR=$(PWD)/TNSWidgets/build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -quiet
-
-function buildFatFramework() {
- FRAMEWORK_NAME=$1
- RELATIVE_DIR=$2
- SRC_IPHONEOS=TNSWidgets/build/Release-iphoneos/$RELATIVE_DIR/$FRAMEWORK_NAME.framework
- SRC_SIMULATOR=TNSWidgets/build/Release-iphonesimulator/$RELATIVE_DIR/$FRAMEWORK_NAME.framework
- DEST=TNSWidgets/build/$FRAMEWORK_NAME.framework
- echo; echo "Build fat framework at $DEST"
- rm -rf $DEST
- mkdir $DEST
-
- cp -r `find $SRC_IPHONEOS -depth 1 | grep -v 'PrivateHeaders'` $DEST/
-
- lipo -create $SRC_IPHONEOS/$FRAMEWORK_NAME $SRC_SIMULATOR/$FRAMEWORK_NAME -o $DEST/$FRAMEWORK_NAME
- file $DEST/$FRAMEWORK_NAME
-
- if [ -d $SRC_IPHONEOS.dSYM ]; then
- echo "Build fat dSYM at $DEST.dSYM"
- cp -r $SRC_IPHONEOS.dSYM TNSWidgets/build
- rm "$DEST.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME"
- lipo -create -output "$DEST.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME" \
- "$SRC_SIMULATOR.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME" \
- "$SRC_IPHONEOS.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME"
- file $DEST.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME
-
- echo "Archiving dSYM at $DEST.dSYM.zip"
- (cd TNSWidgets/build && zip -qr $FRAMEWORK_NAME.framework.dSYM.zip $FRAMEWORK_NAME.framework.dSYM)
-
- echo "Removing $DEST.dSYM"
- rm -rf $DEST.dSYM
- else
- echo "info: $SRC_IPHONEOS.dSYM doesn't exist. Skipping dSYM archive."
- fi
-}
-
-buildFatFramework TNSWidgets .
+xcodebuild \
+ -project TNSWidgets/TNSWidgets.xcodeproj \
+ -scheme TNSWidgets \
+ -sdk iphoneos \
+ -configuration Release \
+ clean build \
+ BUILD_DIR=$(PWD)/TNSWidgets/build \
+ CODE_SIGN_IDENTITY="" \
+ CODE_SIGNING_REQUIRED=NO \
+ SKIP_INSTALL=NO \
+ -quiet
+
+echo "Creating XCFramework"
+xcodebuild \
+ -create-xcframework \
+ -framework $(PWD)/TNSWidgets/build/Release-iphoneos/TNSWidgets.framework \
+ -debug-symbols $(PWD)/TNSWidgets/build/Release-iphoneos/TNSWidgets.framework.dSYM \
+ -framework $(PWD)/TNSWidgets/build/Release-iphonesimulator/TNSWidgets.framework \
+ -debug-symbols $(PWD)/TNSWidgets/build/Release-iphonesimulator/TNSWidgets.framework.dSYM \
+ -output $(PWD)/TNSWidgets/build/TNSWidgets.xcframework