Doric Async and so on

This commit is contained in:
pengfei.zhou 2019-07-26 14:19:42 +08:00
parent 40165bca14
commit f0b003cb66
25 changed files with 523 additions and 152 deletions

View File

@ -39,7 +39,7 @@ public class DoricJSEngine implements Handler.Callback, DoricTimerExtension.Time
@Override @Override
public void run() { public void run() {
initJSExecutor(); initJSExecutor();
initHugoRuntime(); initDoricRuntime();
} }
}); });
mTimerExtension = new DoricTimerExtension(looper, this); mTimerExtension = new DoricTimerExtension(looper, this);
@ -136,7 +136,7 @@ public class DoricJSEngine implements Handler.Callback, DoricTimerExtension.Time
}); });
} }
private void initHugoRuntime() { private void initDoricRuntime() {
loadBuiltinJS(DoricConstant.DORIC_BUNDLE_SANDBOX); loadBuiltinJS(DoricConstant.DORIC_BUNDLE_SANDBOX);
String libName = DoricConstant.DORIC_MODULE_LIB; String libName = DoricConstant.DORIC_MODULE_LIB;
String libJS = DoricUtils.readAssetFile(DoricConstant.DORIC_BUNDLE_LIB); String libJS = DoricUtils.readAssetFile(DoricConstant.DORIC_BUNDLE_LIB);

View File

@ -9,6 +9,8 @@
#import "ViewController.h" #import "ViewController.h"
#import "UIView+Doric.h" #import "UIView+Doric.h"
#import "DoricJSCoreExecutor.h" #import "DoricJSCoreExecutor.h"
#import "DoricUtil.h"
#import "DoricJSEngine.h"
@interface ViewController () @interface ViewController ()
@ -31,6 +33,9 @@ - (void)viewDidLoad {
}@catch(NSException *e){ }@catch(NSException *e){
NSLog(@"catch Exception: %@,reason is %@",e.name,e.reason); NSLog(@"catch Exception: %@,reason is %@",e.name,e.reason);
} }
DoricLog(@"%@",@"testxxxxx");
DoricLog(@"test2rwr");
DoricJSEngine *jsengine = [[DoricJSEngine alloc] init];
} }

View File

@ -0,0 +1 @@
../../../../../Pod/Classes/DoricAsyncResult.h

View File

@ -0,0 +1 @@
../../../../../Pod/Classes/DoricConstant.h

View File

@ -0,0 +1 @@
../../../../../Pod/Classes/DoricDriver.h

View File

@ -0,0 +1 @@
../../../../../Pod/Classes/DoricJSEngine.h

View File

@ -0,0 +1 @@
../../../../../Pod/Classes/DoricUtil.h

View File

@ -0,0 +1 @@
../../../../../Pod/Classes/DoricAsyncResult.h

View File

@ -0,0 +1 @@
../../../../../Pod/Classes/DoricConstant.h

View File

@ -0,0 +1 @@
../../../../../Pod/Classes/DoricDriver.h

View File

@ -0,0 +1 @@
../../../../../Pod/Classes/DoricJSEngine.h

View File

@ -0,0 +1 @@
../../../../../Pod/Classes/DoricUtil.h

View File

@ -7,17 +7,27 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
1817959702E97518E7BE82A2CD7FEBAD /* UIView+Doric.m in Sources */ = {isa = PBXBuildFile; fileRef = 341D10B379C8113700248C66772CA69A /* UIView+Doric.m */; }; 0089246B27871087C8DE82B1BC82D044 /* DoricConstant.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D88BA8866CCC65462FBB519706EE54C /* DoricConstant.h */; settings = {ATTRIBUTES = (Project, ); }; };
0F4A2886066F1072A81A4F6EEFCC37AF /* DoricConstant.m in Sources */ = {isa = PBXBuildFile; fileRef = BA282AF907D4D3E887E64FF9D16D2489 /* DoricConstant.m */; };
1155DEDC9971BA41D868E7A245185350 /* DoricContext.m in Sources */ = {isa = PBXBuildFile; fileRef = AE472CC179719DBA95E63FCEE634E6BC /* DoricContext.m */; };
1A647CADF58112057EEE78DDEDF36FCB /* Pods-ExampleUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4552DFC8FC2E3B5E34ECA08D5890844E /* Pods-ExampleUITests-dummy.m */; }; 1A647CADF58112057EEE78DDEDF36FCB /* Pods-ExampleUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4552DFC8FC2E3B5E34ECA08D5890844E /* Pods-ExampleUITests-dummy.m */; };
20CDF487D770E5359E97E4328533B506 /* DoricUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = DC194491AD4293361C6B13D385A4FE6F /* DoricUtil.h */; settings = {ATTRIBUTES = (Project, ); }; };
284799F0E725D903C373F72F3133F620 /* Pods-Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F53C7E53C548173948E138F5EAAC9B7 /* Pods-Example-dummy.m */; }; 284799F0E725D903C373F72F3133F620 /* Pods-Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F53C7E53C548173948E138F5EAAC9B7 /* Pods-Example-dummy.m */; };
3A2CEC0F830D08F552F31B2D2EDE99A1 /* DoricJSEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 47A3B5C9AE186E8D257A117113443A62 /* DoricJSEngine.h */; settings = {ATTRIBUTES = (Project, ); }; };
4164A58E00FC22DE4610C185F75ADE81 /* DoricJSCoreExecutor.h in Headers */ = {isa = PBXBuildFile; fileRef = B51C4D3ACE9F17635BCA6EF19AA30AFA /* DoricJSCoreExecutor.h */; settings = {ATTRIBUTES = (Project, ); }; };
47760758FAE8B89D52E95BE946B53B85 /* Pods-ExampleTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 51DA648ED8D0D483360D5BA602654A61 /* Pods-ExampleTests-dummy.m */; }; 47760758FAE8B89D52E95BE946B53B85 /* Pods-ExampleTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 51DA648ED8D0D483360D5BA602654A61 /* Pods-ExampleTests-dummy.m */; };
718EFE0A6373A6984146E33328619ADE /* DoricJSExecutorProtocal.h in Headers */ = {isa = PBXBuildFile; fileRef = 455142EF9977C08CFDC613C6D9B2F8C9 /* DoricJSExecutorProtocal.h */; settings = {ATTRIBUTES = (Project, ); }; }; 5F8E083F93014CAEEB6B55C0B886FFFE /* DoricAsyncResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 3242505F6D6CF525FC48DCB58FDBB24F /* DoricAsyncResult.m */; };
8F16B5F1DEE22DD649E290815F736460 /* DoricJSCoreExecutor.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FA24A50185798752FC03CDE32056619 /* DoricJSCoreExecutor.h */; settings = {ATTRIBUTES = (Project, ); }; }; 6F62A22EF4693459554A63ECDFADBA7F /* UIView+Doric.m in Sources */ = {isa = PBXBuildFile; fileRef = C16CF0A4BC437F03D5D6BFDB67691869 /* UIView+Doric.m */; };
A7216FB6DCBBEDCA052A357C7655D28A /* DoricJSCoreExecutor.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BF067FC4DC92EFD635E7985EE98F05F /* DoricJSCoreExecutor.m */; }; 840457CD5D617D70B1A4B1C2E78BBC0B /* UIView+Doric.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DDDB0811EAA632C6E5456CB975CBC98 /* UIView+Doric.h */; settings = {ATTRIBUTES = (Project, ); }; };
AE9C63D565F9028CD10B9C383B514106 /* DoricContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B732F93F2797370E8611ADE4AE21017 /* DoricContext.h */; settings = {ATTRIBUTES = (Project, ); }; }; 84821CCC63BDD4160238B816A874F014 /* DoricJSCoreExecutor.m in Sources */ = {isa = PBXBuildFile; fileRef = D8A9927194503ABEEDA14551B38F9ED2 /* DoricJSCoreExecutor.m */; };
B78A5EB9F8CB35B376BF7541547D9ECC /* DoricContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 34BF2803E091DB9D12AAFAD388D84BEC /* DoricContext.m */; }; 89670F75E4BDAFEE7DBB7FA197D25507 /* DoricAsyncResult.h in Headers */ = {isa = PBXBuildFile; fileRef = BCA2B4EE41F55EA388E2C63A291A9729 /* DoricAsyncResult.h */; settings = {ATTRIBUTES = (Project, ); }; };
D02396C67164473CB51C04BC34202307 /* Doric-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6C972CC027A536D39FC97E19A1324A /* Doric-dummy.m */; }; 9D9461B8352CAEF085BAAC2114B25D36 /* DoricDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 9888B317FA2E31B5C92CD43F0AB833A6 /* DoricDriver.h */; settings = {ATTRIBUTES = (Project, ); }; };
D68323E1F60D697A888C1972768A8646 /* UIView+Doric.h in Headers */ = {isa = PBXBuildFile; fileRef = 231F91A9D7E38117599BB50119FE02D4 /* UIView+Doric.h */; settings = {ATTRIBUTES = (Project, ); }; }; B57034BE55DEE9B55C4C9BF921D99967 /* Doric-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 83B376D60191860AE5E996FD48B3E06C /* Doric-dummy.m */; };
B8AC2DA040586E5D614876F50F223EC8 /* DoricJSExecutorProtocal.h in Headers */ = {isa = PBXBuildFile; fileRef = F3042AE3FC90EE0A9D5463F1BA030440 /* DoricJSExecutorProtocal.h */; settings = {ATTRIBUTES = (Project, ); }; };
CAE973C80A6F8B73AC7B2B58B1DA9242 /* DoricContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FA55C02CF2BA1C8EA4CB582BC211C18 /* DoricContext.h */; settings = {ATTRIBUTES = (Project, ); }; };
E40FE265F0ED76E294C1ACB63899ADC8 /* DoricJSEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EFBAA71377544155F4B74128B3543CA /* DoricJSEngine.m */; };
ED2B543BB86386916C43CF3B284105EC /* DoricUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 92800E02F8DFBD20C9450D69413BF353 /* DoricUtil.m */; };
F8ECFFD0E8CEBD16B7DA3E2F385F19C4 /* DoricDriver.m in Sources */ = {isa = PBXBuildFile; fileRef = C64F26A86BA96BB1D2155CD8B06041B6 /* DoricDriver.m */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */ /* Begin PBXContainerItemProxy section */
@ -25,50 +35,60 @@
isa = PBXContainerItemProxy; isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1; proxyType = 1;
remoteGlobalIDString = 6DC305ABCA53EC5BF7FB4580339397E7; remoteGlobalIDString = FB98ABE01AC1D46CEDF3F453753413AA;
remoteInfo = Doric; remoteInfo = Doric;
}; };
/* End PBXContainerItemProxy section */ /* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
01A1F6852D87DC53BCB1B6B6FE7EECF1 /* Pods-ExampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ExampleTests.release.xcconfig"; sourceTree = "<group>"; }; 01A1F6852D87DC53BCB1B6B6FE7EECF1 /* Pods-ExampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ExampleTests.release.xcconfig"; sourceTree = "<group>"; };
0CCC4486F64D26B3F19BA6A63DBD2A33 /* libPods-ExampleUITests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-ExampleUITests.a"; path = "libPods-ExampleUITests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 0CCC4486F64D26B3F19BA6A63DBD2A33 /* libPods-ExampleUITests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ExampleUITests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
12B878F1FD71B60D653F0F5A783CA95A /* libPods-ExampleTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-ExampleTests.a"; path = "libPods-ExampleTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 0DDDB0811EAA632C6E5456CB975CBC98 /* UIView+Doric.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+Doric.h"; path = "Pod/Classes/UIView+Doric.h"; sourceTree = "<group>"; };
192AE18287322BEEE32E2B90807CD2D4 /* libDoric.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libDoric.a; path = libDoric.a; sourceTree = BUILT_PRODUCTS_DIR; }; 0FA55C02CF2BA1C8EA4CB582BC211C18 /* DoricContext.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricContext.h; path = Pod/Classes/DoricContext.h; sourceTree = "<group>"; };
12B878F1FD71B60D653F0F5A783CA95A /* libPods-ExampleTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ExampleTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
192AE18287322BEEE32E2B90807CD2D4 /* libDoric.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libDoric.a; sourceTree = BUILT_PRODUCTS_DIR; };
1E76E67CCA8332986E95E78670B68A7E /* Pods-ExampleUITests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ExampleUITests-frameworks.sh"; sourceTree = "<group>"; }; 1E76E67CCA8332986E95E78670B68A7E /* Pods-ExampleUITests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ExampleUITests-frameworks.sh"; sourceTree = "<group>"; };
231F91A9D7E38117599BB50119FE02D4 /* UIView+Doric.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+Doric.h"; path = "Pod/Classes/UIView+Doric.h"; sourceTree = "<group>"; }; 24390EFD555DD124430DFF9724065945 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
24390EFD555DD124430DFF9724065945 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 3242505F6D6CF525FC48DCB58FDBB24F /* DoricAsyncResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricAsyncResult.m; path = Pod/Classes/DoricAsyncResult.m; sourceTree = "<group>"; };
2BF067FC4DC92EFD635E7985EE98F05F /* DoricJSCoreExecutor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricJSCoreExecutor.m; path = Pod/Classes/DoricJSCoreExecutor.m; sourceTree = "<group>"; };
32F7499F26C2F8871011055318451503 /* Pods-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example.release.xcconfig"; sourceTree = "<group>"; }; 32F7499F26C2F8871011055318451503 /* Pods-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example.release.xcconfig"; sourceTree = "<group>"; };
341D10B379C8113700248C66772CA69A /* UIView+Doric.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+Doric.m"; path = "Pod/Classes/UIView+Doric.m"; sourceTree = "<group>"; };
34BF2803E091DB9D12AAFAD388D84BEC /* DoricContext.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricContext.m; path = Pod/Classes/DoricContext.m; sourceTree = "<group>"; };
352BB69BD445911D67E242A3CB6D7298 /* Pods-ExampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ExampleTests.debug.xcconfig"; sourceTree = "<group>"; }; 352BB69BD445911D67E242A3CB6D7298 /* Pods-ExampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ExampleTests.debug.xcconfig"; sourceTree = "<group>"; };
38AE1F4549532393840E0AFBBF624C51 /* libPods-Example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-Example.a"; path = "libPods-Example.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 38AE1F4549532393840E0AFBBF624C51 /* libPods-Example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Example.a"; sourceTree = BUILT_PRODUCTS_DIR; };
3B732F93F2797370E8611ADE4AE21017 /* DoricContext.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricContext.h; path = Pod/Classes/DoricContext.h; sourceTree = "<group>"; };
3D6C972CC027A536D39FC97E19A1324A /* Doric-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Doric-dummy.m"; sourceTree = "<group>"; };
3DA6C06795DC0A5CCE08FE0A93490213 /* Pods-ExampleTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ExampleTests-acknowledgements.markdown"; sourceTree = "<group>"; }; 3DA6C06795DC0A5CCE08FE0A93490213 /* Pods-ExampleTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ExampleTests-acknowledgements.markdown"; sourceTree = "<group>"; };
455142EF9977C08CFDC613C6D9B2F8C9 /* DoricJSExecutorProtocal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricJSExecutorProtocal.h; path = Pod/Classes/DoricJSExecutorProtocal.h; sourceTree = "<group>"; };
4552DFC8FC2E3B5E34ECA08D5890844E /* Pods-ExampleUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ExampleUITests-dummy.m"; sourceTree = "<group>"; }; 4552DFC8FC2E3B5E34ECA08D5890844E /* Pods-ExampleUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ExampleUITests-dummy.m"; sourceTree = "<group>"; };
47A3B5C9AE186E8D257A117113443A62 /* DoricJSEngine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricJSEngine.h; path = Pod/Classes/DoricJSEngine.h; sourceTree = "<group>"; };
4A2C01971EED68EB1AC43E54FE0FF4BF /* Pods-ExampleTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ExampleTests-acknowledgements.plist"; sourceTree = "<group>"; }; 4A2C01971EED68EB1AC43E54FE0FF4BF /* Pods-ExampleTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ExampleTests-acknowledgements.plist"; sourceTree = "<group>"; };
4F53C7E53C548173948E138F5EAAC9B7 /* Pods-Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Example-dummy.m"; sourceTree = "<group>"; }; 4F53C7E53C548173948E138F5EAAC9B7 /* Pods-Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Example-dummy.m"; sourceTree = "<group>"; };
518BFC36C6DDA143C2924A9DF620156F /* Pods-Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Example-acknowledgements.plist"; sourceTree = "<group>"; }; 518BFC36C6DDA143C2924A9DF620156F /* Pods-Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Example-acknowledgements.plist"; sourceTree = "<group>"; };
51DA648ED8D0D483360D5BA602654A61 /* Pods-ExampleTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ExampleTests-dummy.m"; sourceTree = "<group>"; }; 51DA648ED8D0D483360D5BA602654A61 /* Pods-ExampleTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ExampleTests-dummy.m"; sourceTree = "<group>"; };
5987657B5145A76C37D511E40BA2D08C /* Doric.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Doric.xcconfig; sourceTree = "<group>"; }; 53FE6D017DB4C60D30CFAC0A0E38EEF1 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
5D74D99FC589B7AE9B1061880AF0AAF2 /* Pods-ExampleUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ExampleUITests.release.xcconfig"; sourceTree = "<group>"; }; 5D74D99FC589B7AE9B1061880AF0AAF2 /* Pods-ExampleUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ExampleUITests.release.xcconfig"; sourceTree = "<group>"; };
68ACA94EB1C8FCD6E3D626DCC4330F31 /* Doric-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Doric-prefix.pch"; sourceTree = "<group>"; }; 69B74451241AAE498CE36C4282696E6A /* Doric.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; path = Doric.podspec; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
6CDAB5A3E308976B77F65EAD774C9FC7 /* Doric.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; path = Doric.podspec; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 7EFBAA71377544155F4B74128B3543CA /* DoricJSEngine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricJSEngine.m; path = Pod/Classes/DoricJSEngine.m; sourceTree = "<group>"; };
6FA24A50185798752FC03CDE32056619 /* DoricJSCoreExecutor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricJSCoreExecutor.h; path = Pod/Classes/DoricJSCoreExecutor.h; sourceTree = "<group>"; }; 83B376D60191860AE5E996FD48B3E06C /* Doric-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Doric-dummy.m"; sourceTree = "<group>"; };
83F27F62D3570DD3EED7EDC698B39673 /* Pods-ExampleUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ExampleUITests-acknowledgements.plist"; sourceTree = "<group>"; }; 83F27F62D3570DD3EED7EDC698B39673 /* Pods-ExampleUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ExampleUITests-acknowledgements.plist"; sourceTree = "<group>"; };
8908E207FAF96E979F6B81FE964B66E4 /* Pods-ExampleTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ExampleTests-resources.sh"; sourceTree = "<group>"; }; 8908E207FAF96E979F6B81FE964B66E4 /* Pods-ExampleTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ExampleTests-resources.sh"; sourceTree = "<group>"; };
92800E02F8DFBD20C9450D69413BF353 /* DoricUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricUtil.m; path = Pod/Classes/DoricUtil.m; sourceTree = "<group>"; };
93B86D9B8CC9EE4710A7EAC45E2B40AF /* Pods-ExampleUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ExampleUITests.debug.xcconfig"; sourceTree = "<group>"; }; 93B86D9B8CC9EE4710A7EAC45E2B40AF /* Pods-ExampleUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ExampleUITests.debug.xcconfig"; sourceTree = "<group>"; };
9888B317FA2E31B5C92CD43F0AB833A6 /* DoricDriver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricDriver.h; path = Pod/Classes/DoricDriver.h; sourceTree = "<group>"; };
9BC432B2ED8483F7C5A09DEC5158E9DB /* Doric-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Doric-prefix.pch"; sourceTree = "<group>"; };
9D88BA8866CCC65462FBB519706EE54C /* DoricConstant.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricConstant.h; path = Pod/Classes/DoricConstant.h; sourceTree = "<group>"; };
A3C87156B34E44AF7BC940F794A3EEE0 /* Pods-Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Example-acknowledgements.markdown"; sourceTree = "<group>"; }; A3C87156B34E44AF7BC940F794A3EEE0 /* Pods-Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Example-acknowledgements.markdown"; sourceTree = "<group>"; };
A7C069247E2F891CB6A5AE5543BC4C8B /* Pods-Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Example-frameworks.sh"; sourceTree = "<group>"; }; A7C069247E2F891CB6A5AE5543BC4C8B /* Pods-Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Example-frameworks.sh"; sourceTree = "<group>"; };
AE472CC179719DBA95E63FCEE634E6BC /* DoricContext.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricContext.m; path = Pod/Classes/DoricContext.m; sourceTree = "<group>"; };
AFAAF574DA9AD669899852EFBA99E10C /* Pods-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example.debug.xcconfig"; sourceTree = "<group>"; }; AFAAF574DA9AD669899852EFBA99E10C /* Pods-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example.debug.xcconfig"; sourceTree = "<group>"; };
B51C4D3ACE9F17635BCA6EF19AA30AFA /* DoricJSCoreExecutor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricJSCoreExecutor.h; path = Pod/Classes/DoricJSCoreExecutor.h; sourceTree = "<group>"; };
BA282AF907D4D3E887E64FF9D16D2489 /* DoricConstant.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricConstant.m; path = Pod/Classes/DoricConstant.m; sourceTree = "<group>"; };
BCA2B4EE41F55EA388E2C63A291A9729 /* DoricAsyncResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricAsyncResult.h; path = Pod/Classes/DoricAsyncResult.h; sourceTree = "<group>"; };
C16CF0A4BC437F03D5D6BFDB67691869 /* UIView+Doric.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+Doric.m"; path = "Pod/Classes/UIView+Doric.m"; sourceTree = "<group>"; };
C64F26A86BA96BB1D2155CD8B06041B6 /* DoricDriver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricDriver.m; path = Pod/Classes/DoricDriver.m; sourceTree = "<group>"; };
CE1BBE6E92CA9DC3880D159CD803E553 /* Pods-ExampleUITests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ExampleUITests-resources.sh"; sourceTree = "<group>"; }; CE1BBE6E92CA9DC3880D159CD803E553 /* Pods-ExampleUITests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ExampleUITests-resources.sh"; sourceTree = "<group>"; };
CF4462A66582B7755AF57D07F45E671E /* Pods-ExampleTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ExampleTests-frameworks.sh"; sourceTree = "<group>"; }; CF4462A66582B7755AF57D07F45E671E /* Pods-ExampleTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ExampleTests-frameworks.sh"; sourceTree = "<group>"; };
D291C334AF09BCAE4D49F304783DA69A /* Pods-ExampleUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ExampleUITests-acknowledgements.markdown"; sourceTree = "<group>"; }; D291C334AF09BCAE4D49F304783DA69A /* Pods-ExampleUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ExampleUITests-acknowledgements.markdown"; sourceTree = "<group>"; };
D8A9927194503ABEEDA14551B38F9ED2 /* DoricJSCoreExecutor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricJSCoreExecutor.m; path = Pod/Classes/DoricJSCoreExecutor.m; sourceTree = "<group>"; };
DC194491AD4293361C6B13D385A4FE6F /* DoricUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricUtil.h; path = Pod/Classes/DoricUtil.h; sourceTree = "<group>"; };
DCAAC1238554F9CC2D49D7D5165DF1A0 /* Pods-Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Example-resources.sh"; sourceTree = "<group>"; }; DCAAC1238554F9CC2D49D7D5165DF1A0 /* Pods-Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Example-resources.sh"; sourceTree = "<group>"; };
F569653641158FA19420DDEE5D491AD2 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = "<group>"; }; E1F135CA7664D10A00E813F155D436E0 /* Doric.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Doric.xcconfig; sourceTree = "<group>"; };
F3042AE3FC90EE0A9D5463F1BA030440 /* DoricJSExecutorProtocal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricJSExecutorProtocal.h; path = Pod/Classes/DoricJSExecutorProtocal.h; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@ -79,7 +99,7 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
382B761D4A9024658E3270D27B34F516 /* Frameworks */ = { 309DF0CD80477BFFDD79AD7928BA1EAE /* Frameworks */ = {
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
@ -103,12 +123,12 @@
/* End PBXFrameworksBuildPhase section */ /* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */ /* Begin PBXGroup section */
1DD4B111F5AE200D6C9DDC723F139821 /* Support Files */ = { 07A5F2758BFB4ABBDB5E4EF6C9C63C71 /* Support Files */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
5987657B5145A76C37D511E40BA2D08C /* Doric.xcconfig */, E1F135CA7664D10A00E813F155D436E0 /* Doric.xcconfig */,
3D6C972CC027A536D39FC97E19A1324A /* Doric-dummy.m */, 83B376D60191860AE5E996FD48B3E06C /* Doric-dummy.m */,
68ACA94EB1C8FCD6E3D626DCC4330F31 /* Doric-prefix.pch */, 9BC432B2ED8483F7C5A09DEC5158E9DB /* Doric-prefix.pch */,
); );
name = "Support Files"; name = "Support Files";
path = "Example/Pods/Target Support Files/Doric"; path = "Example/Pods/Target Support Files/Doric";
@ -140,15 +160,6 @@
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
2E0C60FB76F1A3CFCAB726AC936C2D3F /* Pod */ = {
isa = PBXGroup;
children = (
6CDAB5A3E308976B77F65EAD774C9FC7 /* Doric.podspec */,
F569653641158FA19420DDEE5D491AD2 /* LICENSE */,
);
name = Pod;
sourceTree = "<group>";
};
5AA0E8BB1B60D8046D4AE5D1103C1A51 /* Pods-Example */ = { 5AA0E8BB1B60D8046D4AE5D1103C1A51 /* Pods-Example */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -164,6 +175,15 @@
path = "Target Support Files/Pods-Example"; path = "Target Support Files/Pods-Example";
sourceTree = "<group>"; sourceTree = "<group>";
}; };
7C7A5CAB180DF933F41EFBEF2A280B68 /* Pod */ = {
isa = PBXGroup;
children = (
69B74451241AAE498CE36C4282696E6A /* Doric.podspec */,
53FE6D017DB4C60D30CFAC0A0E38EEF1 /* LICENSE */,
);
name = Pod;
sourceTree = "<group>";
};
7C8BDF0846F1BDADA9ED62DC4B0BF6A6 /* Targets Support Files */ = { 7C8BDF0846F1BDADA9ED62DC4B0BF6A6 /* Targets Support Files */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -193,7 +213,7 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
24390EFD555DD124430DFF9724065945 /* Podfile */, 24390EFD555DD124430DFF9724065945 /* Podfile */,
FB9AA77B88C34DF6B67BE6FFC908228B /* Development Pods */, FB8F81326DA239A34387E32F33106BEE /* Development Pods */,
D89477F20FB1DE18A04690586D7808C4 /* Frameworks */, D89477F20FB1DE18A04690586D7808C4 /* Frameworks */,
29D5F571358D2DB73A9BA656A4698F3A /* Products */, 29D5F571358D2DB73A9BA656A4698F3A /* Products */,
7C8BDF0846F1BDADA9ED62DC4B0BF6A6 /* Targets Support Files */, 7C8BDF0846F1BDADA9ED62DC4B0BF6A6 /* Targets Support Files */,
@ -207,26 +227,36 @@
name = Frameworks; name = Frameworks;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
FB9AA77B88C34DF6B67BE6FFC908228B /* Development Pods */ = { FB8F81326DA239A34387E32F33106BEE /* Development Pods */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
FC43AC0DC8BE9D78B1A2246DB1145660 /* Doric */, FCAFC63CCA4BDF7FF416D2B52243D00F /* Doric */,
); );
name = "Development Pods"; name = "Development Pods";
sourceTree = "<group>"; sourceTree = "<group>";
}; };
FC43AC0DC8BE9D78B1A2246DB1145660 /* Doric */ = { FCAFC63CCA4BDF7FF416D2B52243D00F /* Doric */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
3B732F93F2797370E8611ADE4AE21017 /* DoricContext.h */, BCA2B4EE41F55EA388E2C63A291A9729 /* DoricAsyncResult.h */,
34BF2803E091DB9D12AAFAD388D84BEC /* DoricContext.m */, 3242505F6D6CF525FC48DCB58FDBB24F /* DoricAsyncResult.m */,
6FA24A50185798752FC03CDE32056619 /* DoricJSCoreExecutor.h */, 9D88BA8866CCC65462FBB519706EE54C /* DoricConstant.h */,
2BF067FC4DC92EFD635E7985EE98F05F /* DoricJSCoreExecutor.m */, BA282AF907D4D3E887E64FF9D16D2489 /* DoricConstant.m */,
455142EF9977C08CFDC613C6D9B2F8C9 /* DoricJSExecutorProtocal.h */, 0FA55C02CF2BA1C8EA4CB582BC211C18 /* DoricContext.h */,
231F91A9D7E38117599BB50119FE02D4 /* UIView+Doric.h */, AE472CC179719DBA95E63FCEE634E6BC /* DoricContext.m */,
341D10B379C8113700248C66772CA69A /* UIView+Doric.m */, 9888B317FA2E31B5C92CD43F0AB833A6 /* DoricDriver.h */,
2E0C60FB76F1A3CFCAB726AC936C2D3F /* Pod */, C64F26A86BA96BB1D2155CD8B06041B6 /* DoricDriver.m */,
1DD4B111F5AE200D6C9DDC723F139821 /* Support Files */, B51C4D3ACE9F17635BCA6EF19AA30AFA /* DoricJSCoreExecutor.h */,
D8A9927194503ABEEDA14551B38F9ED2 /* DoricJSCoreExecutor.m */,
47A3B5C9AE186E8D257A117113443A62 /* DoricJSEngine.h */,
7EFBAA71377544155F4B74128B3543CA /* DoricJSEngine.m */,
F3042AE3FC90EE0A9D5463F1BA030440 /* DoricJSExecutorProtocal.h */,
DC194491AD4293361C6B13D385A4FE6F /* DoricUtil.h */,
92800E02F8DFBD20C9450D69413BF353 /* DoricUtil.m */,
0DDDB0811EAA632C6E5456CB975CBC98 /* UIView+Doric.h */,
C16CF0A4BC437F03D5D6BFDB67691869 /* UIView+Doric.m */,
7C7A5CAB180DF933F41EFBEF2A280B68 /* Pod */,
07A5F2758BFB4ABBDB5E4EF6C9C63C71 /* Support Files */,
); );
name = Doric; name = Doric;
path = ../..; path = ../..;
@ -256,14 +286,19 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
DA386DB2C466EECBB35494295E6249C3 /* Headers */ = { F682E79E14895C0A72EE5F0B3A0EE749 /* Headers */ = {
isa = PBXHeadersBuildPhase; isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
AE9C63D565F9028CD10B9C383B514106 /* DoricContext.h in Headers */, 89670F75E4BDAFEE7DBB7FA197D25507 /* DoricAsyncResult.h in Headers */,
8F16B5F1DEE22DD649E290815F736460 /* DoricJSCoreExecutor.h in Headers */, 0089246B27871087C8DE82B1BC82D044 /* DoricConstant.h in Headers */,
718EFE0A6373A6984146E33328619ADE /* DoricJSExecutorProtocal.h in Headers */, CAE973C80A6F8B73AC7B2B58B1DA9242 /* DoricContext.h in Headers */,
D68323E1F60D697A888C1972768A8646 /* UIView+Doric.h in Headers */, 9D9461B8352CAEF085BAAC2114B25D36 /* DoricDriver.h in Headers */,
4164A58E00FC22DE4610C185F75ADE81 /* DoricJSCoreExecutor.h in Headers */,
3A2CEC0F830D08F552F31B2D2EDE99A1 /* DoricJSEngine.h in Headers */,
B8AC2DA040586E5D614876F50F223EC8 /* DoricJSExecutorProtocal.h in Headers */,
20CDF487D770E5359E97E4328533B506 /* DoricUtil.h in Headers */,
840457CD5D617D70B1A4B1C2E78BBC0B /* UIView+Doric.h in Headers */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -287,23 +322,6 @@
productReference = 0CCC4486F64D26B3F19BA6A63DBD2A33 /* libPods-ExampleUITests.a */; productReference = 0CCC4486F64D26B3F19BA6A63DBD2A33 /* libPods-ExampleUITests.a */;
productType = "com.apple.product-type.library.static"; productType = "com.apple.product-type.library.static";
}; };
6DC305ABCA53EC5BF7FB4580339397E7 /* Doric */ = {
isa = PBXNativeTarget;
buildConfigurationList = EAD29E9CC0DA144743205C4A54A49BEE /* Build configuration list for PBXNativeTarget "Doric" */;
buildPhases = (
DA386DB2C466EECBB35494295E6249C3 /* Headers */,
43FB81C9191AAE0213FE98D025B83ACE /* Sources */,
382B761D4A9024658E3270D27B34F516 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = Doric;
productName = Doric;
productReference = 192AE18287322BEEE32E2B90807CD2D4 /* libDoric.a */;
productType = "com.apple.product-type.library.static";
};
A345F604E78B54781FD1B7BFD7E0448C /* Pods-Example */ = { A345F604E78B54781FD1B7BFD7E0448C /* Pods-Example */ = {
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = 6D3B301D75D9DA0B718112AB6FA2118A /* Build configuration list for PBXNativeTarget "Pods-Example" */; buildConfigurationList = 6D3B301D75D9DA0B718112AB6FA2118A /* Build configuration list for PBXNativeTarget "Pods-Example" */;
@ -339,6 +357,23 @@
productReference = 12B878F1FD71B60D653F0F5A783CA95A /* libPods-ExampleTests.a */; productReference = 12B878F1FD71B60D653F0F5A783CA95A /* libPods-ExampleTests.a */;
productType = "com.apple.product-type.library.static"; productType = "com.apple.product-type.library.static";
}; };
FB98ABE01AC1D46CEDF3F453753413AA /* Doric */ = {
isa = PBXNativeTarget;
buildConfigurationList = 5AD8A2D5A1EBF4C60FE80152EB11F04C /* Build configuration list for PBXNativeTarget "Doric" */;
buildPhases = (
F682E79E14895C0A72EE5F0B3A0EE749 /* Headers */,
FCBC977BD8258E5F30148E3238B5DAB2 /* Sources */,
309DF0CD80477BFFDD79AD7928BA1EAE /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = Doric;
productName = Doric;
productReference = 192AE18287322BEEE32E2B90807CD2D4 /* libDoric.a */;
productType = "com.apple.product-type.library.static";
};
/* End PBXNativeTarget section */ /* End PBXNativeTarget section */
/* Begin PBXProject section */ /* Begin PBXProject section */
@ -354,13 +389,14 @@
hasScannedForEncodings = 0; hasScannedForEncodings = 0;
knownRegions = ( knownRegions = (
en, en,
Base,
); );
mainGroup = CF1408CF629C7361332E53B88F7BD30C; mainGroup = CF1408CF629C7361332E53B88F7BD30C;
productRefGroup = 29D5F571358D2DB73A9BA656A4698F3A /* Products */; productRefGroup = 29D5F571358D2DB73A9BA656A4698F3A /* Products */;
projectDirPath = ""; projectDirPath = "";
projectRoot = ""; projectRoot = "";
targets = ( targets = (
6DC305ABCA53EC5BF7FB4580339397E7 /* Doric */, FB98ABE01AC1D46CEDF3F453753413AA /* Doric */,
A345F604E78B54781FD1B7BFD7E0448C /* Pods-Example */, A345F604E78B54781FD1B7BFD7E0448C /* Pods-Example */,
BA4EA2DB7D0DFAB75914F3144F15AC7B /* Pods-ExampleTests */, BA4EA2DB7D0DFAB75914F3144F15AC7B /* Pods-ExampleTests */,
0D40E2A39D3301AE94BB9AA453AA15E1 /* Pods-ExampleUITests */, 0D40E2A39D3301AE94BB9AA453AA15E1 /* Pods-ExampleUITests */,
@ -369,17 +405,6 @@
/* End PBXProject section */ /* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */
43FB81C9191AAE0213FE98D025B83ACE /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
D02396C67164473CB51C04BC34202307 /* Doric-dummy.m in Sources */,
B78A5EB9F8CB35B376BF7541547D9ECC /* DoricContext.m in Sources */,
A7216FB6DCBBEDCA052A357C7655D28A /* DoricJSCoreExecutor.m in Sources */,
1817959702E97518E7BE82A2CD7FEBAD /* UIView+Doric.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
58573A8A9E1C4C60B5AF016E0BFEDD29 /* Sources */ = { 58573A8A9E1C4C60B5AF016E0BFEDD29 /* Sources */ = {
isa = PBXSourcesBuildPhase; isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
@ -404,39 +429,34 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
FCBC977BD8258E5F30148E3238B5DAB2 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
B57034BE55DEE9B55C4C9BF921D99967 /* Doric-dummy.m in Sources */,
5F8E083F93014CAEEB6B55C0B886FFFE /* DoricAsyncResult.m in Sources */,
0F4A2886066F1072A81A4F6EEFCC37AF /* DoricConstant.m in Sources */,
1155DEDC9971BA41D868E7A245185350 /* DoricContext.m in Sources */,
F8ECFFD0E8CEBD16B7DA3E2F385F19C4 /* DoricDriver.m in Sources */,
84821CCC63BDD4160238B816A874F014 /* DoricJSCoreExecutor.m in Sources */,
E40FE265F0ED76E294C1ACB63899ADC8 /* DoricJSEngine.m in Sources */,
ED2B543BB86386916C43CF3B284105EC /* DoricUtil.m in Sources */,
6F62A22EF4693459554A63ECDFADBA7F /* UIView+Doric.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */ /* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */ /* Begin PBXTargetDependency section */
08E845E70040821DC5837F1F7E153B37 /* PBXTargetDependency */ = { 08E845E70040821DC5837F1F7E153B37 /* PBXTargetDependency */ = {
isa = PBXTargetDependency; isa = PBXTargetDependency;
name = Doric; name = Doric;
target = 6DC305ABCA53EC5BF7FB4580339397E7 /* Doric */; target = FB98ABE01AC1D46CEDF3F453753413AA /* Doric */;
targetProxy = 9AAB3FEE40A6C9C78740731F5FA3622B /* PBXContainerItemProxy */; targetProxy = 9AAB3FEE40A6C9C78740731F5FA3622B /* PBXContainerItemProxy */;
}; };
/* End PBXTargetDependency section */ /* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */ /* Begin XCBuildConfiguration section */
0044609B6189F624A76DF9CFD33BE49A /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 5987657B5145A76C37D511E40BA2D08C /* Doric.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
GCC_PREFIX_HEADER = "Target Support Files/Doric/Doric-prefix.pch";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PRIVATE_HEADERS_FOLDER_PATH = "";
PUBLIC_HEADERS_FOLDER_PATH = "";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
186698CE97528A8EB1609B0FEDACB16B /* Debug */ = { 186698CE97528A8EB1609B0FEDACB16B /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 352BB69BD445911D67E242A3CB6D7298 /* Pods-ExampleTests.debug.xcconfig */; baseConfigurationReference = 352BB69BD445911D67E242A3CB6D7298 /* Pods-ExampleTests.debug.xcconfig */;
@ -480,6 +500,27 @@
}; };
name = Release; name = Release;
}; };
596F5FE35472F3CCF4DEAF32114CEB53 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = E1F135CA7664D10A00E813F155D436E0 /* Doric.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
GCC_PREFIX_HEADER = "Target Support Files/Doric/Doric-prefix.pch";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PRIVATE_HEADERS_FOLDER_PATH = "";
PUBLIC_HEADERS_FOLDER_PATH = "";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
63FD170E1A36D83B6E040F848DCDBA4A /* Debug */ = { 63FD170E1A36D83B6E040F848DCDBA4A /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = AFAAF574DA9AD669899852EFBA99E10C /* Pods-Example.debug.xcconfig */; baseConfigurationReference = AFAAF574DA9AD669899852EFBA99E10C /* Pods-Example.debug.xcconfig */;
@ -589,6 +630,28 @@
}; };
name = Debug; name = Debug;
}; };
B650299651AAACBB37C21DB5CBDC9031 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = E1F135CA7664D10A00E813F155D436E0 /* Doric.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
GCC_PREFIX_HEADER = "Target Support Files/Doric/Doric-prefix.pch";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PRIVATE_HEADERS_FOLDER_PATH = "";
PUBLIC_HEADERS_FOLDER_PATH = "";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
B9C644AD7E4F54465B96C2D574FAE8EC /* Debug */ = { B9C644AD7E4F54465B96C2D574FAE8EC /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 93B86D9B8CC9EE4710A7EAC45E2B40AF /* Pods-ExampleUITests.debug.xcconfig */; baseConfigurationReference = 93B86D9B8CC9EE4710A7EAC45E2B40AF /* Pods-ExampleUITests.debug.xcconfig */;
@ -610,28 +673,6 @@
}; };
name = Debug; name = Debug;
}; };
B9F14048CCF00D7BF6BFCFAC7365F3CD /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 5987657B5145A76C37D511E40BA2D08C /* Doric.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
GCC_PREFIX_HEADER = "Target Support Files/Doric/Doric-prefix.pch";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PRIVATE_HEADERS_FOLDER_PATH = "";
PUBLIC_HEADERS_FOLDER_PATH = "";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
D46117332C6CDC3C82674F7036CCA9FE /* Release */ = { D46117332C6CDC3C82674F7036CCA9FE /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 01A1F6852D87DC53BCB1B6B6FE7EECF1 /* Pods-ExampleTests.release.xcconfig */; baseConfigurationReference = 01A1F6852D87DC53BCB1B6B6FE7EECF1 /* Pods-ExampleTests.release.xcconfig */;
@ -737,6 +778,15 @@
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
5AD8A2D5A1EBF4C60FE80152EB11F04C /* Build configuration list for PBXNativeTarget "Doric" */ = {
isa = XCConfigurationList;
buildConfigurations = (
596F5FE35472F3CCF4DEAF32114CEB53 /* Debug */,
B650299651AAACBB37C21DB5CBDC9031 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
6D3B301D75D9DA0B718112AB6FA2118A /* Build configuration list for PBXNativeTarget "Pods-Example" */ = { 6D3B301D75D9DA0B718112AB6FA2118A /* Build configuration list for PBXNativeTarget "Pods-Example" */ = {
isa = XCConfigurationList; isa = XCConfigurationList;
buildConfigurations = ( buildConfigurations = (
@ -755,15 +805,6 @@
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
EAD29E9CC0DA144743205C4A54A49BEE /* Build configuration list for PBXNativeTarget "Doric" */ = {
isa = XCConfigurationList;
buildConfigurations = (
0044609B6189F624A76DF9CFD33BE49A /* Debug */,
B9F14048CCF00D7BF6BFCFAC7365F3CD /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */ /* End XCConfigurationList section */
}; };
rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */;

View File

@ -0,0 +1,26 @@
//
// DoricAsyncResult.h
// Doric
//
// Created by pengfei.zhou on 2019/7/26.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface DoricAsyncResult <R>: NSObject
typedef void(^DoricResultCallback)(R);
typedef void(^DoricExceptionCallback)(NSException *);
typedef void(^DoricFinishCallback)(void);
-(void)setupResult:(R)result;
-(void)setupError:(NSException*)exception;
-(BOOL)hasResult;
-(R)getResult;
-(void)setResultCallback:(DoricResultCallback) callback exceptionCallback:(DoricExceptionCallback) exceptionCallback;
-(void)setFinishCallback:(DoricFinishCallback) callback;
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,62 @@
//
// DoricAsyncResult.m
// Doric
//
// Created by pengfei.zhou on 2019/7/26.
//
#import "DoricAsyncResult.h"
@interface DoricAsyncResult()
@property(nonatomic,strong) id result;
@property(nonatomic,strong) DoricResultCallback resultCallback;
@property(nonatomic,strong) DoricExceptionCallback exceptionCallback;
@property(nonatomic,strong) DoricFinishCallback finishCallback;
@end
@implementation DoricAsyncResult
-(void)setupResult:(id)result {
self.result = result;
if(self.resultCallback){
self.resultCallback(result);
}
if(self.finishCallback){
self.finishCallback();
}
}
-(void)setupError:(NSException *)exception {
self.result = exception;
if(self.exceptionCallback){
self.exceptionCallback(exception);
}
if(self.finishCallback){
self.finishCallback();
}
}
-(BOOL)hasResult {
return self.result;
}
-(id)getResult {
return self.result;
}
-(void)setResultCallback:(DoricResultCallback)callback exceptionCallback:(DoricExceptionCallback)exceptionCallback {
self.resultCallback = callback;
self.exceptionCallback = exceptionCallback;
if([self.result isKindOfClass: [NSException class]]){
self.exceptionCallback(self.result);
}else if(self.result){
self.resultCallback(self.result);
}
}
-(void)setFinishCallback:(DoricFinishCallback)callback {
self.finishCallback = callback;
if(self.result){
callback();
}
}
@end

View File

@ -0,0 +1,39 @@
//
// DoricConstant.h
// Doric
//
// Created by pengfei.zhou on 2019/7/26.
//
#import <Foundation/Foundation.h>
extern NSString * const DORIC_BUNDLE_SANDBOX;
extern NSString * const DORIC_BUNDLE_LIB;
extern NSString * const DORIC_MODULE_LIB;
extern NSString * const INJECT_LOG;
extern NSString * const INJECT_REQUIRE;
extern NSString * const INJECT_TIMER_SET;
extern NSString * const INJECT_TIMER_CLEAR;
extern NSString * const INJECT_BRIDGE;
extern NSString * const TEMPLATE_CONTEXT_CREATE;
extern NSString * const TEMPLATE_MODULE;
extern NSString * const TEMPLATE_CONTEXT_DESTROY;
extern NSString * const GLOBAL_DORIC;
extern NSString * const DORIC_CONTEXT_RELEASE;
extern NSString * const DORIC_CONTEXT_INVOKE;
extern NSString * const DORIC_TIMER_CALLBACK;
extern NSString * const DORIC_BRIDGE_RESOLVE;
extern NSString * const DORIC_BRIDGE_REJECT;
extern NSString * const DORIC_ENTITY_RESPONSE;

View File

@ -0,0 +1,56 @@
//
// DoricConstant.m
// Doric
//
// Created by pengfei.zhou on 2019/7/26.
//
#import "DoricConstant.h"
NSString * const DORIC_BUNDLE_SANBOX = @"";
NSString * const DORIC_BUNDLE_LIB = @"doric-lib.js";
NSString * const DORIC_MODULE_LIB = @"./index";
NSString * const INJECT_LOG = @"nativeLog";
NSString * const INJECT_REQUIRE = @"nativeRequire";
NSString * const INJECT_TIMER_SET = @"nativeSetTimer";
NSString * const INJECT_TIMER_CLEAR = @"nativeClearTimer";
NSString * const INJECT_BRIDGE = @"nativeBridge";
NSString * const TEMPLATE_CONTEXT_CREATE = @"Reflect.apply("
"function(doric,context,Entry,require,exports){" "\n"
"%s" "\n"
"},doric.jsObtainContext(\"%s\"),["
"undefined,"
"doric.jsObtainContext(\"%s\"),"
"doric.jsObtainEntry(\"%s\"),"
"doric.__require__"
",{}"
"])";
NSString * const TEMPLATE_MODULE = @"Reflect.apply(doric.jsRegisterModule,this,["
"\"%s\","
"Reflect.apply(function(__module){"
"(function(module,exports,require){" "\n"
"%s" "\n"
"})(__module,__module.exports,doric.__require__);"
"\nreturn __module.exports;"
"},this,[{exports:{}}])"
"])";
NSString * const TEMPLATE_CONTEXT_DESTROY = @"doric.jsRelease(%s)";
NSString * const GLOBAL_DORIC = @"doric";
NSString * const DORIC_CONTEXT_RELEASE = @"jsReleaseContext";
NSString * const DORIC_CONTEXT_INVOKE = @"jsCallEntityMethod";
NSString * const DORIC_TIMER_CALLBACK = @"jsCallbackTimer";
NSString * const DORIC_BRIDGE_RESOLVE = @"jsCallResolve";
NSString * const DORIC_BRIDGE_REJECT = @"jsCallReject";
NSString * const DORIC_ENTITY_RESPONSE = @"__response__";

View File

@ -0,0 +1,16 @@
//
// DoricDriver.h
// Doric
//
// Created by pengfei.zhou on 2019/7/26.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface DoricDriver : NSObject
+(instancetype) instance;
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,27 @@
//
// DoricDriver.m
// Doric
//
// Created by pengfei.zhou on 2019/7/26.
//
#import "DoricDriver.h"
#import "DoricJSCoreExecutor.h"
#import "DoricJSExecutorProtocal.h"
@interface DoricDriver()
@property (nonatomic, strong) id<DoricJSExecutorProtocal> jsExecutor;
@end
@implementation DoricDriver
+ (instancetype)instance{
static DoricDriver *_instance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_instance = [[DoricDriver alloc] init];
});
return _instance;
}
@end

View File

@ -39,11 +39,6 @@ -(void)injectGlobalJSObject:(NSString *)name obj:(NSDictionary *)obj {
[self checkJSException]; [self checkJSException];
} }
-(void)injectGlobalJSFunction:(NSString *)name func:(DoricOCFunction)func {
self.jsContext[name] = func;
[self checkJSException];
}
-(JSValue *)invokeObject:(NSString *)objName method:(NSString *)funcName args:(NSArray *)args { -(JSValue *)invokeObject:(NSString *)objName method:(NSString *)funcName args:(NSArray *)args {
JSValue *obj = [self.jsContext objectForKeyedSubscript:objName]; JSValue *obj = [self.jsContext objectForKeyedSubscript:objName];
JSValue *ret = [obj invokeMethod:funcName withArguments:args]; JSValue *ret = [obj invokeMethod:funcName withArguments:args];

View File

@ -0,0 +1,16 @@
//
// DoricJSEngine.h
// Doric
//
// Created by pengfei.zhou on 2019/7/26.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface DoricJSEngine : NSObject
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,57 @@
//
// DoricJSEngine.m
// Doric
//
// Created by pengfei.zhou on 2019/7/26.
//
#import "DoricJSEngine.h"
#import "DoricJSExecutorProtocal.h"
#import "DoricJSCoreExecutor.h"
#import "DoricConstant.h"
#import "DoricUtil.h"
@interface DoricJSEngine()
@property(nonatomic,strong) id<DoricJSExecutorProtocal> jsExecutor;
@property(nonatomic,strong) dispatch_queue_t jsQueue;
@end
@implementation DoricJSEngine
-(instancetype)init {
if(self = [super init]){
_jsQueue = dispatch_queue_create("doric.jsengine", DISPATCH_QUEUE_SERIAL);
dispatch_async(_jsQueue, ^(){
self.jsExecutor = [[DoricJSCoreExecutor alloc] init];
[self initDoricEnvironment];
});
}
return self;
}
-(void)initDoricEnvironment {
[self.jsExecutor injectGlobalJSObject:INJECT_LOG obj:^(NSString * type, NSString * message){
DoricLog(@"JS:%@",message);
}];
[self.jsExecutor injectGlobalJSObject:INJECT_REQUIRE obj:^(NSString *name){
}];
[self.jsExecutor loadJSScript:@"nativeLog('w','log from js')" source:@""];
}
-(void)invokeDoricMethod:(NSString *)method,... {
NSMutableArray *array = [[NSMutableArray alloc] init];
va_list args;
va_start(args, method);
JSValue *arg = va_arg(args, JSValue *);
while(arg!=nil){
[array addObject:arg];
arg = va_arg(args, JSValue *);
}
va_end(args);
[self.jsExecutor invokeObject:GLOBAL_DORIC method:method args:array];
}
@end

View File

@ -10,15 +10,11 @@
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
typedef JSValue*(^DoricOCFunction)();
@protocol DoricJSExecutorProtocal <NSObject> @protocol DoricJSExecutorProtocal <NSObject>
-(NSString *) loadJSScript:(NSString *)script source:(NSString *)source; -(NSString *) loadJSScript:(NSString *)script source:(NSString *)source;
-(void) injectGlobalJSFunction:(NSString *)name func:(DoricOCFunction)func; -(void) injectGlobalJSObject:(NSString *)name obj:(id)obj;
-(void) injectGlobalJSObject:(NSString *)name obj:(NSDictionary *)obj;
-(JSValue *) invokeObject: (NSString *)objName method:(NSString *)funcName args:(NSArray *)args; -(JSValue *) invokeObject: (NSString *)objName method:(NSString *)funcName args:(NSArray *)args;

View File

@ -0,0 +1,10 @@
//
// DoricUtil.h
// Doric
//
// Created by pengfei.zhou on 2019/7/26.
//
#import <Foundation/Foundation.h>
void DoricLog(NSString * _Nonnull format, ...);

View File

@ -0,0 +1,15 @@
//
// DoricUtil.m
// Doric
//
// Created by pengfei.zhou on 2019/7/26.
//
#import "DoricUtil.h"
void DoricLog(NSString * _Nonnull format, ...) {
va_list args;
va_start(args, format);
NSLogv([NSString stringWithFormat:@"Doric:%@",format],args);
va_end(args);
}