mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-17 04:41:36 +08:00
feat(ios): build TNSWidgets as XCFramework (#9167)
This commit is contained in:
Binary file not shown.
Binary file not shown.
@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>AvailableLibraries</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>DebugSymbolsPath</key>
|
||||
<string>dSYMs</string>
|
||||
<key>LibraryIdentifier</key>
|
||||
<string>ios-arm64</string>
|
||||
<key>LibraryPath</key>
|
||||
<string>TNSWidgets.framework</string>
|
||||
<key>SupportedArchitectures</key>
|
||||
<array>
|
||||
<string>arm64</string>
|
||||
</array>
|
||||
<key>SupportedPlatform</key>
|
||||
<string>ios</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>DebugSymbolsPath</key>
|
||||
<string>dSYMs</string>
|
||||
<key>LibraryIdentifier</key>
|
||||
<string>ios-arm64_x86_64-simulator</string>
|
||||
<key>LibraryPath</key>
|
||||
<string>TNSWidgets.framework</string>
|
||||
<key>SupportedArchitectures</key>
|
||||
<array>
|
||||
<string>arm64</string>
|
||||
<string>x86_64</string>
|
||||
</array>
|
||||
<key>SupportedPlatform</key>
|
||||
<string>ios</string>
|
||||
<key>SupportedPlatformVariant</key>
|
||||
<string>simulator</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XFWK</string>
|
||||
<key>XCFrameworkFormatVersion</key>
|
||||
<string>1.0</string>
|
||||
</dict>
|
||||
</plist>
|
@ -17,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
- (void)writeToFile:(nonnull NSString*) path
|
||||
atomically:(BOOL)atomically
|
||||
completion:(void (^) ())callback;
|
||||
completion:(void (^) (void))callback;
|
||||
|
||||
@end
|
||||
|
@ -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.
|
Binary file not shown.
@ -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 <Foundation/Foundation.h>
|
||||
#import <objc/runtime.h>
|
||||
|
||||
|
||||
@interface NSObject (Swizzling)
|
||||
|
||||
+ (void)swizzleInstanceMethodWithOriginalSelector:(SEL)originalSelector fromClass:(Class)classContainigOriginalSel withSwizzlingSelector:(SEL)swizzlingSelector;
|
||||
|
||||
@end
|
@ -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 <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
|
||||
@interface UIView (PropertyBag)
|
||||
|
||||
- (id) propertyValueForKey:(NSString*) key;
|
||||
- (void) setPropertyValue:(id) value forKey:(NSString*) key;
|
||||
|
||||
@end
|
Binary file not shown.
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.xcode.dsym.org.nativescript.TNSWidgets</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>dSYM</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
Binary file not shown.
@ -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 <Foundation/Foundation.h>
|
||||
|
||||
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
|
@ -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 <Foundation/Foundation.h>
|
||||
|
||||
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
|
@ -0,0 +1,16 @@
|
||||
//
|
||||
// TNSLabel.h
|
||||
// TNSWidgets
|
||||
//
|
||||
// Created by Hristo Hristov on 6/9/16.
|
||||
// Copyright © 2016 Telerik A D. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface TNSLabel : UILabel
|
||||
|
||||
@property(nonatomic) UIEdgeInsets padding;
|
||||
@property(nonatomic) UIEdgeInsets borderThickness;
|
||||
|
||||
@end
|
@ -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 <Foundation/Foundation.h>
|
||||
|
||||
/**
|
||||
* 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 */
|
@ -0,0 +1,24 @@
|
||||
//
|
||||
// TNSWidgets.h
|
||||
// TNSWidgets
|
||||
//
|
||||
// Created by Panayot Cankov on 4/27/16.
|
||||
// Copyright © 2016 Telerik A D. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! 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 <TNSWidgets/PublicHeader.h>
|
||||
|
||||
#import "UIImage+TNSBlocks.h"
|
||||
#import "UIView+PassThroughParent.h"
|
||||
#import "TNSLabel.h"
|
||||
#import "TNSProcess.h"
|
||||
#import "NSString+Async.h"
|
||||
#import "NSData+Async.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
|
@ -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 <UIKit/UIKit.h>
|
||||
|
||||
|
||||
@interface UIView (PassThroughParent)
|
||||
|
||||
- (BOOL) passThroughParent;
|
||||
- (void) setPassThroughParent:(BOOL) passThroughParent;
|
||||
|
||||
@end
|
Binary file not shown.
@ -0,0 +1,6 @@
|
||||
framework module TNSWidgets {
|
||||
umbrella header "TNSWidgets.h"
|
||||
|
||||
export *
|
||||
module * { export * }
|
||||
}
|
@ -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 <Foundation/Foundation.h>
|
||||
#import <objc/runtime.h>
|
||||
|
||||
|
||||
@interface NSObject (Swizzling)
|
||||
|
||||
+ (void)swizzleInstanceMethodWithOriginalSelector:(SEL)originalSelector fromClass:(Class)classContainigOriginalSel withSwizzlingSelector:(SEL)swizzlingSelector;
|
||||
|
||||
@end
|
@ -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 <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
|
||||
@interface UIView (PropertyBag)
|
||||
|
||||
- (id) propertyValueForKey:(NSString*) key;
|
||||
- (void) setPropertyValue:(id) value forKey:(NSString*) key;
|
||||
|
||||
@end
|
Binary file not shown.
@ -0,0 +1,212 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>files</key>
|
||||
<dict>
|
||||
<key>Headers/NSData+Async.h</key>
|
||||
<data>
|
||||
9BsuK8QsA57YnHHgpWIgaHygSEk=
|
||||
</data>
|
||||
<key>Headers/NSString+Async.h</key>
|
||||
<data>
|
||||
o8366y9zYMOVyObC3vtKKy/8jxA=
|
||||
</data>
|
||||
<key>Headers/TNSLabel.h</key>
|
||||
<data>
|
||||
x8V4jT6oNNls+KE3y/DE6ij9eCk=
|
||||
</data>
|
||||
<key>Headers/TNSProcess.h</key>
|
||||
<data>
|
||||
dHuocpQ4b8KDApobwYNCqXcC6ZE=
|
||||
</data>
|
||||
<key>Headers/TNSWidgets.h</key>
|
||||
<data>
|
||||
gUvu5bjZg5Aie5iJ1krxFmDrHwk=
|
||||
</data>
|
||||
<key>Headers/UIImage+TNSBlocks.h</key>
|
||||
<data>
|
||||
OzGlvoGOJcFC6Z+YR5xThjLTUK4=
|
||||
</data>
|
||||
<key>Headers/UIView+PassThroughParent.h</key>
|
||||
<data>
|
||||
zdxBV/QJg7NPyx04RmZrXsxbHKU=
|
||||
</data>
|
||||
<key>Info.plist</key>
|
||||
<data>
|
||||
p3XXJG8ZAD443Py5pz+mDsZ5EeY=
|
||||
</data>
|
||||
<key>Modules/module.modulemap</key>
|
||||
<data>
|
||||
ANIiDnbrCY8YCOtOm1xDrUyt8do=
|
||||
</data>
|
||||
<key>PrivateHeaders/NSObject+Swizzling.h</key>
|
||||
<data>
|
||||
wRUUMHgrTVWHd/e8bDqN8sYZth4=
|
||||
</data>
|
||||
<key>PrivateHeaders/UIView+PropertyBag.h</key>
|
||||
<data>
|
||||
3USXIiZgky+5k7en+R6oyZ3pP18=
|
||||
</data>
|
||||
</dict>
|
||||
<key>files2</key>
|
||||
<dict>
|
||||
<key>Headers/NSData+Async.h</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
JdjuVUBed00Ged4cSDzYLXONUlESu+dae9KN0PYJ/nM=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/NSString+Async.h</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
1Iuk4atAJ89zujXqrLBvGz7Ny52RXNdD5c1ZMK0SFgs=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/TNSLabel.h</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
uaE78Ar4SA7jzBIQrT3lTvBQFOQj1sf1ippa8ldUDqQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/TNSProcess.h</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
E+JvepkSwLMNO6gdhEdwuzkdVTUqmWp8P5LxHYCFim8=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/TNSWidgets.h</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
V99t2zLwRPOs90tbGiQbhbdAFJlW7mp7X2R5337ewUA=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/UIImage+TNSBlocks.h</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
MgrX2woetySmXcrrDF290WGxNiW5W3E0B0fsjy8BgNI=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/UIView+PassThroughParent.h</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
UfHyaUaTFlNcY5M7lUKwq6bPGuQeVIbjhCCInN1ZEYA=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Modules/module.modulemap</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
geXwbECY3V3psdekq89Ia+2j4/OludM5UatqEk+xhhc=
|
||||
</data>
|
||||
</dict>
|
||||
<key>PrivateHeaders/NSObject+Swizzling.h</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
S+GqZzjPH/SqyxwzyysFybjZsbwS5lxcTwL04W79IGA=
|
||||
</data>
|
||||
</dict>
|
||||
<key>PrivateHeaders/UIView+PropertyBag.h</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
/qFTteGRAX+GloVCipAdNRXPDPDWsNmQ+9USxt99lXE=
|
||||
</data>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>rules</key>
|
||||
<dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^version.plist$</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>rules2</key>
|
||||
<dict>
|
||||
<key>.*\.dSYM($|/)</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>11</real>
|
||||
</dict>
|
||||
<key>^(.*/)?\.DS_Store$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>2000</real>
|
||||
</dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^Info\.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^PkgInfo$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^embedded\.provisionprofile$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^version\.plist$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.xcode.dsym.org.nativescript.TNSWidgets</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>dSYM</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
Binary file not shown.
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IDEDidComputeMac32BitWarning</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
@ -3,6 +3,6 @@
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildSystemType</key>
|
||||
<string>Original</string>
|
||||
<string>Latest</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
@ -17,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
- (void)writeToFile:(nonnull NSString*) path
|
||||
atomically:(BOOL)atomically
|
||||
completion:(void (^) ())callback;
|
||||
completion:(void (^) (void))callback;
|
||||
|
||||
@end
|
||||
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
- (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) {
|
||||
|
@ -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
|
||||
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
|
||||
|
||||
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 .
|
||||
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
|
||||
|
Reference in New Issue
Block a user