From f0b003cb6636a02de395961c68e2ca7e1de86b32 Mon Sep 17 00:00:00 2001 From: "pengfei.zhou" Date: Fri, 26 Jul 2019 14:19:42 +0800 Subject: [PATCH] Doric Async and so on --- .../doric/engine/DoricJSEngine.java | 4 +- iOS/Example/Example/ViewController.m | 5 + .../Headers/Private/Doric/DoricAsyncResult.h | 1 + .../Headers/Private/Doric/DoricConstant.h | 1 + .../Pods/Headers/Private/Doric/DoricDriver.h | 1 + .../Headers/Private/Doric/DoricJSEngine.h | 1 + .../Pods/Headers/Private/Doric/DoricUtil.h | 1 + .../Headers/Public/Doric/DoricAsyncResult.h | 1 + .../Pods/Headers/Public/Doric/DoricConstant.h | 1 + .../Pods/Headers/Public/Doric/DoricDriver.h | 1 + .../Pods/Headers/Public/Doric/DoricJSEngine.h | 1 + .../Pods/Headers/Public/Doric/DoricUtil.h | 1 + .../Pods/Pods.xcodeproj/project.pbxproj | 321 ++++++++++-------- iOS/Pod/Classes/DoricAsyncResult.h | 26 ++ iOS/Pod/Classes/DoricAsyncResult.m | 62 ++++ iOS/Pod/Classes/DoricConstant.h | 39 +++ iOS/Pod/Classes/DoricConstant.m | 56 +++ iOS/Pod/Classes/DoricDriver.h | 16 + iOS/Pod/Classes/DoricDriver.m | 27 ++ iOS/Pod/Classes/DoricJSCoreExecutor.m | 5 - iOS/Pod/Classes/DoricJSEngine.h | 16 + iOS/Pod/Classes/DoricJSEngine.m | 57 ++++ iOS/Pod/Classes/DoricJSExecutorProtocal.h | 6 +- iOS/Pod/Classes/DoricUtil.h | 10 + iOS/Pod/Classes/DoricUtil.m | 15 + 25 files changed, 523 insertions(+), 152 deletions(-) create mode 120000 iOS/Example/Pods/Headers/Private/Doric/DoricAsyncResult.h create mode 120000 iOS/Example/Pods/Headers/Private/Doric/DoricConstant.h create mode 120000 iOS/Example/Pods/Headers/Private/Doric/DoricDriver.h create mode 120000 iOS/Example/Pods/Headers/Private/Doric/DoricJSEngine.h create mode 120000 iOS/Example/Pods/Headers/Private/Doric/DoricUtil.h create mode 120000 iOS/Example/Pods/Headers/Public/Doric/DoricAsyncResult.h create mode 120000 iOS/Example/Pods/Headers/Public/Doric/DoricConstant.h create mode 120000 iOS/Example/Pods/Headers/Public/Doric/DoricDriver.h create mode 120000 iOS/Example/Pods/Headers/Public/Doric/DoricJSEngine.h create mode 120000 iOS/Example/Pods/Headers/Public/Doric/DoricUtil.h create mode 100644 iOS/Pod/Classes/DoricAsyncResult.h create mode 100644 iOS/Pod/Classes/DoricAsyncResult.m create mode 100644 iOS/Pod/Classes/DoricConstant.h create mode 100644 iOS/Pod/Classes/DoricConstant.m create mode 100644 iOS/Pod/Classes/DoricDriver.h create mode 100644 iOS/Pod/Classes/DoricDriver.m create mode 100644 iOS/Pod/Classes/DoricJSEngine.h create mode 100644 iOS/Pod/Classes/DoricJSEngine.m create mode 100644 iOS/Pod/Classes/DoricUtil.h create mode 100644 iOS/Pod/Classes/DoricUtil.m diff --git a/Android/doric/src/main/java/com/github/penfeizhou/doric/engine/DoricJSEngine.java b/Android/doric/src/main/java/com/github/penfeizhou/doric/engine/DoricJSEngine.java index 99547774..c8149609 100644 --- a/Android/doric/src/main/java/com/github/penfeizhou/doric/engine/DoricJSEngine.java +++ b/Android/doric/src/main/java/com/github/penfeizhou/doric/engine/DoricJSEngine.java @@ -39,7 +39,7 @@ public class DoricJSEngine implements Handler.Callback, DoricTimerExtension.Time @Override public void run() { initJSExecutor(); - initHugoRuntime(); + initDoricRuntime(); } }); 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); String libName = DoricConstant.DORIC_MODULE_LIB; String libJS = DoricUtils.readAssetFile(DoricConstant.DORIC_BUNDLE_LIB); diff --git a/iOS/Example/Example/ViewController.m b/iOS/Example/Example/ViewController.m index 6bc4de2e..89da229e 100644 --- a/iOS/Example/Example/ViewController.m +++ b/iOS/Example/Example/ViewController.m @@ -9,6 +9,8 @@ #import "ViewController.h" #import "UIView+Doric.h" #import "DoricJSCoreExecutor.h" +#import "DoricUtil.h" +#import "DoricJSEngine.h" @interface ViewController () @@ -31,6 +33,9 @@ - (void)viewDidLoad { }@catch(NSException *e){ NSLog(@"catch Exception: %@,reason is %@",e.name,e.reason); } + DoricLog(@"%@",@"testxxxxx"); + DoricLog(@"test2rwr"); + DoricJSEngine *jsengine = [[DoricJSEngine alloc] init]; } diff --git a/iOS/Example/Pods/Headers/Private/Doric/DoricAsyncResult.h b/iOS/Example/Pods/Headers/Private/Doric/DoricAsyncResult.h new file mode 120000 index 00000000..c5a8f34b --- /dev/null +++ b/iOS/Example/Pods/Headers/Private/Doric/DoricAsyncResult.h @@ -0,0 +1 @@ +../../../../../Pod/Classes/DoricAsyncResult.h \ No newline at end of file diff --git a/iOS/Example/Pods/Headers/Private/Doric/DoricConstant.h b/iOS/Example/Pods/Headers/Private/Doric/DoricConstant.h new file mode 120000 index 00000000..83da6b44 --- /dev/null +++ b/iOS/Example/Pods/Headers/Private/Doric/DoricConstant.h @@ -0,0 +1 @@ +../../../../../Pod/Classes/DoricConstant.h \ No newline at end of file diff --git a/iOS/Example/Pods/Headers/Private/Doric/DoricDriver.h b/iOS/Example/Pods/Headers/Private/Doric/DoricDriver.h new file mode 120000 index 00000000..a9c106e1 --- /dev/null +++ b/iOS/Example/Pods/Headers/Private/Doric/DoricDriver.h @@ -0,0 +1 @@ +../../../../../Pod/Classes/DoricDriver.h \ No newline at end of file diff --git a/iOS/Example/Pods/Headers/Private/Doric/DoricJSEngine.h b/iOS/Example/Pods/Headers/Private/Doric/DoricJSEngine.h new file mode 120000 index 00000000..766d6f65 --- /dev/null +++ b/iOS/Example/Pods/Headers/Private/Doric/DoricJSEngine.h @@ -0,0 +1 @@ +../../../../../Pod/Classes/DoricJSEngine.h \ No newline at end of file diff --git a/iOS/Example/Pods/Headers/Private/Doric/DoricUtil.h b/iOS/Example/Pods/Headers/Private/Doric/DoricUtil.h new file mode 120000 index 00000000..0aa09e95 --- /dev/null +++ b/iOS/Example/Pods/Headers/Private/Doric/DoricUtil.h @@ -0,0 +1 @@ +../../../../../Pod/Classes/DoricUtil.h \ No newline at end of file diff --git a/iOS/Example/Pods/Headers/Public/Doric/DoricAsyncResult.h b/iOS/Example/Pods/Headers/Public/Doric/DoricAsyncResult.h new file mode 120000 index 00000000..c5a8f34b --- /dev/null +++ b/iOS/Example/Pods/Headers/Public/Doric/DoricAsyncResult.h @@ -0,0 +1 @@ +../../../../../Pod/Classes/DoricAsyncResult.h \ No newline at end of file diff --git a/iOS/Example/Pods/Headers/Public/Doric/DoricConstant.h b/iOS/Example/Pods/Headers/Public/Doric/DoricConstant.h new file mode 120000 index 00000000..83da6b44 --- /dev/null +++ b/iOS/Example/Pods/Headers/Public/Doric/DoricConstant.h @@ -0,0 +1 @@ +../../../../../Pod/Classes/DoricConstant.h \ No newline at end of file diff --git a/iOS/Example/Pods/Headers/Public/Doric/DoricDriver.h b/iOS/Example/Pods/Headers/Public/Doric/DoricDriver.h new file mode 120000 index 00000000..a9c106e1 --- /dev/null +++ b/iOS/Example/Pods/Headers/Public/Doric/DoricDriver.h @@ -0,0 +1 @@ +../../../../../Pod/Classes/DoricDriver.h \ No newline at end of file diff --git a/iOS/Example/Pods/Headers/Public/Doric/DoricJSEngine.h b/iOS/Example/Pods/Headers/Public/Doric/DoricJSEngine.h new file mode 120000 index 00000000..766d6f65 --- /dev/null +++ b/iOS/Example/Pods/Headers/Public/Doric/DoricJSEngine.h @@ -0,0 +1 @@ +../../../../../Pod/Classes/DoricJSEngine.h \ No newline at end of file diff --git a/iOS/Example/Pods/Headers/Public/Doric/DoricUtil.h b/iOS/Example/Pods/Headers/Public/Doric/DoricUtil.h new file mode 120000 index 00000000..0aa09e95 --- /dev/null +++ b/iOS/Example/Pods/Headers/Public/Doric/DoricUtil.h @@ -0,0 +1 @@ +../../../../../Pod/Classes/DoricUtil.h \ No newline at end of file diff --git a/iOS/Example/Pods/Pods.xcodeproj/project.pbxproj b/iOS/Example/Pods/Pods.xcodeproj/project.pbxproj index 62ffc7a4..2abcad88 100644 --- a/iOS/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/iOS/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,17 +7,27 @@ objects = { /* 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 */; }; + 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 */; }; + 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 */; }; - 718EFE0A6373A6984146E33328619ADE /* DoricJSExecutorProtocal.h in Headers */ = {isa = PBXBuildFile; fileRef = 455142EF9977C08CFDC613C6D9B2F8C9 /* DoricJSExecutorProtocal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8F16B5F1DEE22DD649E290815F736460 /* DoricJSCoreExecutor.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FA24A50185798752FC03CDE32056619 /* DoricJSCoreExecutor.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A7216FB6DCBBEDCA052A357C7655D28A /* DoricJSCoreExecutor.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BF067FC4DC92EFD635E7985EE98F05F /* DoricJSCoreExecutor.m */; }; - AE9C63D565F9028CD10B9C383B514106 /* DoricContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B732F93F2797370E8611ADE4AE21017 /* DoricContext.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B78A5EB9F8CB35B376BF7541547D9ECC /* DoricContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 34BF2803E091DB9D12AAFAD388D84BEC /* DoricContext.m */; }; - D02396C67164473CB51C04BC34202307 /* Doric-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6C972CC027A536D39FC97E19A1324A /* Doric-dummy.m */; }; - D68323E1F60D697A888C1972768A8646 /* UIView+Doric.h in Headers */ = {isa = PBXBuildFile; fileRef = 231F91A9D7E38117599BB50119FE02D4 /* UIView+Doric.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5F8E083F93014CAEEB6B55C0B886FFFE /* DoricAsyncResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 3242505F6D6CF525FC48DCB58FDBB24F /* DoricAsyncResult.m */; }; + 6F62A22EF4693459554A63ECDFADBA7F /* UIView+Doric.m in Sources */ = {isa = PBXBuildFile; fileRef = C16CF0A4BC437F03D5D6BFDB67691869 /* UIView+Doric.m */; }; + 840457CD5D617D70B1A4B1C2E78BBC0B /* UIView+Doric.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DDDB0811EAA632C6E5456CB975CBC98 /* UIView+Doric.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 84821CCC63BDD4160238B816A874F014 /* DoricJSCoreExecutor.m in Sources */ = {isa = PBXBuildFile; fileRef = D8A9927194503ABEEDA14551B38F9ED2 /* DoricJSCoreExecutor.m */; }; + 89670F75E4BDAFEE7DBB7FA197D25507 /* DoricAsyncResult.h in Headers */ = {isa = PBXBuildFile; fileRef = BCA2B4EE41F55EA388E2C63A291A9729 /* DoricAsyncResult.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9D9461B8352CAEF085BAAC2114B25D36 /* DoricDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 9888B317FA2E31B5C92CD43F0AB833A6 /* DoricDriver.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 */ /* Begin PBXContainerItemProxy section */ @@ -25,50 +35,60 @@ isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 6DC305ABCA53EC5BF7FB4580339397E7; + remoteGlobalIDString = FB98ABE01AC1D46CEDF3F453753413AA; remoteInfo = Doric; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ 01A1F6852D87DC53BCB1B6B6FE7EECF1 /* Pods-ExampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ExampleTests.release.xcconfig"; sourceTree = ""; }; - 0CCC4486F64D26B3F19BA6A63DBD2A33 /* libPods-ExampleUITests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-ExampleUITests.a"; 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; }; - 192AE18287322BEEE32E2B90807CD2D4 /* libDoric.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libDoric.a; path = libDoric.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 0CCC4486F64D26B3F19BA6A63DBD2A33 /* libPods-ExampleUITests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ExampleUITests.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 = ""; }; + 0FA55C02CF2BA1C8EA4CB582BC211C18 /* DoricContext.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricContext.h; path = Pod/Classes/DoricContext.h; sourceTree = ""; }; + 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 = ""; }; - 231F91A9D7E38117599BB50119FE02D4 /* UIView+Doric.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+Doric.h"; path = "Pod/Classes/UIView+Doric.h"; sourceTree = ""; }; - 24390EFD555DD124430DFF9724065945 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 2BF067FC4DC92EFD635E7985EE98F05F /* DoricJSCoreExecutor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricJSCoreExecutor.m; path = Pod/Classes/DoricJSCoreExecutor.m; sourceTree = ""; }; + 24390EFD555DD124430DFF9724065945 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; 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 = ""; }; 32F7499F26C2F8871011055318451503 /* Pods-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example.release.xcconfig"; sourceTree = ""; }; - 341D10B379C8113700248C66772CA69A /* UIView+Doric.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+Doric.m"; path = "Pod/Classes/UIView+Doric.m"; sourceTree = ""; }; - 34BF2803E091DB9D12AAFAD388D84BEC /* DoricContext.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricContext.m; path = Pod/Classes/DoricContext.m; sourceTree = ""; }; 352BB69BD445911D67E242A3CB6D7298 /* Pods-ExampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ExampleTests.debug.xcconfig"; sourceTree = ""; }; - 38AE1F4549532393840E0AFBBF624C51 /* libPods-Example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-Example.a"; 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 = ""; }; - 3D6C972CC027A536D39FC97E19A1324A /* Doric-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Doric-dummy.m"; sourceTree = ""; }; + 38AE1F4549532393840E0AFBBF624C51 /* libPods-Example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Example.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 3DA6C06795DC0A5CCE08FE0A93490213 /* Pods-ExampleTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ExampleTests-acknowledgements.markdown"; sourceTree = ""; }; - 455142EF9977C08CFDC613C6D9B2F8C9 /* DoricJSExecutorProtocal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricJSExecutorProtocal.h; path = Pod/Classes/DoricJSExecutorProtocal.h; sourceTree = ""; }; 4552DFC8FC2E3B5E34ECA08D5890844E /* Pods-ExampleUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ExampleUITests-dummy.m"; sourceTree = ""; }; + 47A3B5C9AE186E8D257A117113443A62 /* DoricJSEngine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricJSEngine.h; path = Pod/Classes/DoricJSEngine.h; sourceTree = ""; }; 4A2C01971EED68EB1AC43E54FE0FF4BF /* Pods-ExampleTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ExampleTests-acknowledgements.plist"; sourceTree = ""; }; 4F53C7E53C548173948E138F5EAAC9B7 /* Pods-Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Example-dummy.m"; sourceTree = ""; }; 518BFC36C6DDA143C2924A9DF620156F /* Pods-Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Example-acknowledgements.plist"; sourceTree = ""; }; 51DA648ED8D0D483360D5BA602654A61 /* Pods-ExampleTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ExampleTests-dummy.m"; sourceTree = ""; }; - 5987657B5145A76C37D511E40BA2D08C /* Doric.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Doric.xcconfig; sourceTree = ""; }; + 53FE6D017DB4C60D30CFAC0A0E38EEF1 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; 5D74D99FC589B7AE9B1061880AF0AAF2 /* Pods-ExampleUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ExampleUITests.release.xcconfig"; sourceTree = ""; }; - 68ACA94EB1C8FCD6E3D626DCC4330F31 /* Doric-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Doric-prefix.pch"; sourceTree = ""; }; - 6CDAB5A3E308976B77F65EAD774C9FC7 /* Doric.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; path = Doric.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 6FA24A50185798752FC03CDE32056619 /* DoricJSCoreExecutor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricJSCoreExecutor.h; path = Pod/Classes/DoricJSCoreExecutor.h; sourceTree = ""; }; + 69B74451241AAE498CE36C4282696E6A /* Doric.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; path = Doric.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 7EFBAA71377544155F4B74128B3543CA /* DoricJSEngine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricJSEngine.m; path = Pod/Classes/DoricJSEngine.m; sourceTree = ""; }; + 83B376D60191860AE5E996FD48B3E06C /* Doric-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Doric-dummy.m"; sourceTree = ""; }; 83F27F62D3570DD3EED7EDC698B39673 /* Pods-ExampleUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ExampleUITests-acknowledgements.plist"; sourceTree = ""; }; 8908E207FAF96E979F6B81FE964B66E4 /* Pods-ExampleTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ExampleTests-resources.sh"; sourceTree = ""; }; + 92800E02F8DFBD20C9450D69413BF353 /* DoricUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricUtil.m; path = Pod/Classes/DoricUtil.m; sourceTree = ""; }; 93B86D9B8CC9EE4710A7EAC45E2B40AF /* Pods-ExampleUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ExampleUITests.debug.xcconfig"; sourceTree = ""; }; + 9888B317FA2E31B5C92CD43F0AB833A6 /* DoricDriver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricDriver.h; path = Pod/Classes/DoricDriver.h; sourceTree = ""; }; + 9BC432B2ED8483F7C5A09DEC5158E9DB /* Doric-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Doric-prefix.pch"; sourceTree = ""; }; + 9D88BA8866CCC65462FBB519706EE54C /* DoricConstant.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricConstant.h; path = Pod/Classes/DoricConstant.h; sourceTree = ""; }; A3C87156B34E44AF7BC940F794A3EEE0 /* Pods-Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Example-acknowledgements.markdown"; sourceTree = ""; }; A7C069247E2F891CB6A5AE5543BC4C8B /* Pods-Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Example-frameworks.sh"; sourceTree = ""; }; + AE472CC179719DBA95E63FCEE634E6BC /* DoricContext.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricContext.m; path = Pod/Classes/DoricContext.m; sourceTree = ""; }; AFAAF574DA9AD669899852EFBA99E10C /* Pods-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example.debug.xcconfig"; sourceTree = ""; }; + B51C4D3ACE9F17635BCA6EF19AA30AFA /* DoricJSCoreExecutor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricJSCoreExecutor.h; path = Pod/Classes/DoricJSCoreExecutor.h; sourceTree = ""; }; + BA282AF907D4D3E887E64FF9D16D2489 /* DoricConstant.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricConstant.m; path = Pod/Classes/DoricConstant.m; sourceTree = ""; }; + BCA2B4EE41F55EA388E2C63A291A9729 /* DoricAsyncResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricAsyncResult.h; path = Pod/Classes/DoricAsyncResult.h; sourceTree = ""; }; + C16CF0A4BC437F03D5D6BFDB67691869 /* UIView+Doric.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+Doric.m"; path = "Pod/Classes/UIView+Doric.m"; sourceTree = ""; }; + C64F26A86BA96BB1D2155CD8B06041B6 /* DoricDriver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricDriver.m; path = Pod/Classes/DoricDriver.m; sourceTree = ""; }; CE1BBE6E92CA9DC3880D159CD803E553 /* Pods-ExampleUITests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ExampleUITests-resources.sh"; sourceTree = ""; }; CF4462A66582B7755AF57D07F45E671E /* Pods-ExampleTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ExampleTests-frameworks.sh"; sourceTree = ""; }; D291C334AF09BCAE4D49F304783DA69A /* Pods-ExampleUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ExampleUITests-acknowledgements.markdown"; sourceTree = ""; }; + D8A9927194503ABEEDA14551B38F9ED2 /* DoricJSCoreExecutor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DoricJSCoreExecutor.m; path = Pod/Classes/DoricJSCoreExecutor.m; sourceTree = ""; }; + DC194491AD4293361C6B13D385A4FE6F /* DoricUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricUtil.h; path = Pod/Classes/DoricUtil.h; sourceTree = ""; }; DCAAC1238554F9CC2D49D7D5165DF1A0 /* Pods-Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Example-resources.sh"; sourceTree = ""; }; - F569653641158FA19420DDEE5D491AD2 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + E1F135CA7664D10A00E813F155D436E0 /* Doric.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Doric.xcconfig; sourceTree = ""; }; + F3042AE3FC90EE0A9D5463F1BA030440 /* DoricJSExecutorProtocal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DoricJSExecutorProtocal.h; path = Pod/Classes/DoricJSExecutorProtocal.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -79,7 +99,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 382B761D4A9024658E3270D27B34F516 /* Frameworks */ = { + 309DF0CD80477BFFDD79AD7928BA1EAE /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -103,12 +123,12 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 1DD4B111F5AE200D6C9DDC723F139821 /* Support Files */ = { + 07A5F2758BFB4ABBDB5E4EF6C9C63C71 /* Support Files */ = { isa = PBXGroup; children = ( - 5987657B5145A76C37D511E40BA2D08C /* Doric.xcconfig */, - 3D6C972CC027A536D39FC97E19A1324A /* Doric-dummy.m */, - 68ACA94EB1C8FCD6E3D626DCC4330F31 /* Doric-prefix.pch */, + E1F135CA7664D10A00E813F155D436E0 /* Doric.xcconfig */, + 83B376D60191860AE5E996FD48B3E06C /* Doric-dummy.m */, + 9BC432B2ED8483F7C5A09DEC5158E9DB /* Doric-prefix.pch */, ); name = "Support Files"; path = "Example/Pods/Target Support Files/Doric"; @@ -140,15 +160,6 @@ name = Products; sourceTree = ""; }; - 2E0C60FB76F1A3CFCAB726AC936C2D3F /* Pod */ = { - isa = PBXGroup; - children = ( - 6CDAB5A3E308976B77F65EAD774C9FC7 /* Doric.podspec */, - F569653641158FA19420DDEE5D491AD2 /* LICENSE */, - ); - name = Pod; - sourceTree = ""; - }; 5AA0E8BB1B60D8046D4AE5D1103C1A51 /* Pods-Example */ = { isa = PBXGroup; children = ( @@ -164,6 +175,15 @@ path = "Target Support Files/Pods-Example"; sourceTree = ""; }; + 7C7A5CAB180DF933F41EFBEF2A280B68 /* Pod */ = { + isa = PBXGroup; + children = ( + 69B74451241AAE498CE36C4282696E6A /* Doric.podspec */, + 53FE6D017DB4C60D30CFAC0A0E38EEF1 /* LICENSE */, + ); + name = Pod; + sourceTree = ""; + }; 7C8BDF0846F1BDADA9ED62DC4B0BF6A6 /* Targets Support Files */ = { isa = PBXGroup; children = ( @@ -193,7 +213,7 @@ isa = PBXGroup; children = ( 24390EFD555DD124430DFF9724065945 /* Podfile */, - FB9AA77B88C34DF6B67BE6FFC908228B /* Development Pods */, + FB8F81326DA239A34387E32F33106BEE /* Development Pods */, D89477F20FB1DE18A04690586D7808C4 /* Frameworks */, 29D5F571358D2DB73A9BA656A4698F3A /* Products */, 7C8BDF0846F1BDADA9ED62DC4B0BF6A6 /* Targets Support Files */, @@ -207,26 +227,36 @@ name = Frameworks; sourceTree = ""; }; - FB9AA77B88C34DF6B67BE6FFC908228B /* Development Pods */ = { + FB8F81326DA239A34387E32F33106BEE /* Development Pods */ = { isa = PBXGroup; children = ( - FC43AC0DC8BE9D78B1A2246DB1145660 /* Doric */, + FCAFC63CCA4BDF7FF416D2B52243D00F /* Doric */, ); name = "Development Pods"; sourceTree = ""; }; - FC43AC0DC8BE9D78B1A2246DB1145660 /* Doric */ = { + FCAFC63CCA4BDF7FF416D2B52243D00F /* Doric */ = { isa = PBXGroup; children = ( - 3B732F93F2797370E8611ADE4AE21017 /* DoricContext.h */, - 34BF2803E091DB9D12AAFAD388D84BEC /* DoricContext.m */, - 6FA24A50185798752FC03CDE32056619 /* DoricJSCoreExecutor.h */, - 2BF067FC4DC92EFD635E7985EE98F05F /* DoricJSCoreExecutor.m */, - 455142EF9977C08CFDC613C6D9B2F8C9 /* DoricJSExecutorProtocal.h */, - 231F91A9D7E38117599BB50119FE02D4 /* UIView+Doric.h */, - 341D10B379C8113700248C66772CA69A /* UIView+Doric.m */, - 2E0C60FB76F1A3CFCAB726AC936C2D3F /* Pod */, - 1DD4B111F5AE200D6C9DDC723F139821 /* Support Files */, + BCA2B4EE41F55EA388E2C63A291A9729 /* DoricAsyncResult.h */, + 3242505F6D6CF525FC48DCB58FDBB24F /* DoricAsyncResult.m */, + 9D88BA8866CCC65462FBB519706EE54C /* DoricConstant.h */, + BA282AF907D4D3E887E64FF9D16D2489 /* DoricConstant.m */, + 0FA55C02CF2BA1C8EA4CB582BC211C18 /* DoricContext.h */, + AE472CC179719DBA95E63FCEE634E6BC /* DoricContext.m */, + 9888B317FA2E31B5C92CD43F0AB833A6 /* DoricDriver.h */, + C64F26A86BA96BB1D2155CD8B06041B6 /* DoricDriver.m */, + 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; path = ../..; @@ -256,14 +286,19 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - DA386DB2C466EECBB35494295E6249C3 /* Headers */ = { + F682E79E14895C0A72EE5F0B3A0EE749 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - AE9C63D565F9028CD10B9C383B514106 /* DoricContext.h in Headers */, - 8F16B5F1DEE22DD649E290815F736460 /* DoricJSCoreExecutor.h in Headers */, - 718EFE0A6373A6984146E33328619ADE /* DoricJSExecutorProtocal.h in Headers */, - D68323E1F60D697A888C1972768A8646 /* UIView+Doric.h in Headers */, + 89670F75E4BDAFEE7DBB7FA197D25507 /* DoricAsyncResult.h in Headers */, + 0089246B27871087C8DE82B1BC82D044 /* DoricConstant.h in Headers */, + CAE973C80A6F8B73AC7B2B58B1DA9242 /* DoricContext.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; }; @@ -287,23 +322,6 @@ productReference = 0CCC4486F64D26B3F19BA6A63DBD2A33 /* libPods-ExampleUITests.a */; 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 */ = { isa = PBXNativeTarget; buildConfigurationList = 6D3B301D75D9DA0B718112AB6FA2118A /* Build configuration list for PBXNativeTarget "Pods-Example" */; @@ -339,6 +357,23 @@ productReference = 12B878F1FD71B60D653F0F5A783CA95A /* libPods-ExampleTests.a */; 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 */ /* Begin PBXProject section */ @@ -354,13 +389,14 @@ hasScannedForEncodings = 0; knownRegions = ( en, + Base, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; productRefGroup = 29D5F571358D2DB73A9BA656A4698F3A /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 6DC305ABCA53EC5BF7FB4580339397E7 /* Doric */, + FB98ABE01AC1D46CEDF3F453753413AA /* Doric */, A345F604E78B54781FD1B7BFD7E0448C /* Pods-Example */, BA4EA2DB7D0DFAB75914F3144F15AC7B /* Pods-ExampleTests */, 0D40E2A39D3301AE94BB9AA453AA15E1 /* Pods-ExampleUITests */, @@ -369,17 +405,6 @@ /* End PBXProject 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 */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -404,39 +429,34 @@ ); 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 */ /* Begin PBXTargetDependency section */ 08E845E70040821DC5837F1F7E153B37 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Doric; - target = 6DC305ABCA53EC5BF7FB4580339397E7 /* Doric */; + target = FB98ABE01AC1D46CEDF3F453753413AA /* Doric */; targetProxy = 9AAB3FEE40A6C9C78740731F5FA3622B /* PBXContainerItemProxy */; }; /* End PBXTargetDependency 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 */ = { isa = XCBuildConfiguration; baseConfigurationReference = 352BB69BD445911D67E242A3CB6D7298 /* Pods-ExampleTests.debug.xcconfig */; @@ -480,6 +500,27 @@ }; 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 */ = { isa = XCBuildConfiguration; baseConfigurationReference = AFAAF574DA9AD669899852EFBA99E10C /* Pods-Example.debug.xcconfig */; @@ -589,6 +630,28 @@ }; 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 */ = { isa = XCBuildConfiguration; baseConfigurationReference = 93B86D9B8CC9EE4710A7EAC45E2B40AF /* Pods-ExampleUITests.debug.xcconfig */; @@ -610,28 +673,6 @@ }; 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 */ = { isa = XCBuildConfiguration; baseConfigurationReference = 01A1F6852D87DC53BCB1B6B6FE7EECF1 /* Pods-ExampleTests.release.xcconfig */; @@ -737,6 +778,15 @@ defaultConfigurationIsVisible = 0; 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" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -755,15 +805,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - EAD29E9CC0DA144743205C4A54A49BEE /* Build configuration list for PBXNativeTarget "Doric" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 0044609B6189F624A76DF9CFD33BE49A /* Debug */, - B9F14048CCF00D7BF6BFCFAC7365F3CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ }; rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; diff --git a/iOS/Pod/Classes/DoricAsyncResult.h b/iOS/Pod/Classes/DoricAsyncResult.h new file mode 100644 index 00000000..dfec4ad4 --- /dev/null +++ b/iOS/Pod/Classes/DoricAsyncResult.h @@ -0,0 +1,26 @@ +// +// DoricAsyncResult.h +// Doric +// +// Created by pengfei.zhou on 2019/7/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + +@interface DoricAsyncResult : 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 diff --git a/iOS/Pod/Classes/DoricAsyncResult.m b/iOS/Pod/Classes/DoricAsyncResult.m new file mode 100644 index 00000000..7d9c21d1 --- /dev/null +++ b/iOS/Pod/Classes/DoricAsyncResult.m @@ -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 diff --git a/iOS/Pod/Classes/DoricConstant.h b/iOS/Pod/Classes/DoricConstant.h new file mode 100644 index 00000000..c60f38e9 --- /dev/null +++ b/iOS/Pod/Classes/DoricConstant.h @@ -0,0 +1,39 @@ +// +// DoricConstant.h +// Doric +// +// Created by pengfei.zhou on 2019/7/26. +// + +#import + +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; diff --git a/iOS/Pod/Classes/DoricConstant.m b/iOS/Pod/Classes/DoricConstant.m new file mode 100644 index 00000000..83a47267 --- /dev/null +++ b/iOS/Pod/Classes/DoricConstant.m @@ -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__"; diff --git a/iOS/Pod/Classes/DoricDriver.h b/iOS/Pod/Classes/DoricDriver.h new file mode 100644 index 00000000..d0caffe2 --- /dev/null +++ b/iOS/Pod/Classes/DoricDriver.h @@ -0,0 +1,16 @@ +// +// DoricDriver.h +// Doric +// +// Created by pengfei.zhou on 2019/7/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface DoricDriver : NSObject ++(instancetype) instance; +@end + +NS_ASSUME_NONNULL_END diff --git a/iOS/Pod/Classes/DoricDriver.m b/iOS/Pod/Classes/DoricDriver.m new file mode 100644 index 00000000..5bc6f3d9 --- /dev/null +++ b/iOS/Pod/Classes/DoricDriver.m @@ -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 jsExecutor; +@end + +@implementation DoricDriver + ++ (instancetype)instance{ + static DoricDriver *_instance; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + _instance = [[DoricDriver alloc] init]; + }); + return _instance; +} + +@end diff --git a/iOS/Pod/Classes/DoricJSCoreExecutor.m b/iOS/Pod/Classes/DoricJSCoreExecutor.m index 6e522bc3..ad8b99ec 100644 --- a/iOS/Pod/Classes/DoricJSCoreExecutor.m +++ b/iOS/Pod/Classes/DoricJSCoreExecutor.m @@ -39,11 +39,6 @@ -(void)injectGlobalJSObject:(NSString *)name obj:(NSDictionary *)obj { [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 *obj = [self.jsContext objectForKeyedSubscript:objName]; JSValue *ret = [obj invokeMethod:funcName withArguments:args]; diff --git a/iOS/Pod/Classes/DoricJSEngine.h b/iOS/Pod/Classes/DoricJSEngine.h new file mode 100644 index 00000000..ee6cf7cf --- /dev/null +++ b/iOS/Pod/Classes/DoricJSEngine.h @@ -0,0 +1,16 @@ +// +// DoricJSEngine.h +// Doric +// +// Created by pengfei.zhou on 2019/7/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface DoricJSEngine : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/iOS/Pod/Classes/DoricJSEngine.m b/iOS/Pod/Classes/DoricJSEngine.m new file mode 100644 index 00000000..68e06e26 --- /dev/null +++ b/iOS/Pod/Classes/DoricJSEngine.m @@ -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 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 diff --git a/iOS/Pod/Classes/DoricJSExecutorProtocal.h b/iOS/Pod/Classes/DoricJSExecutorProtocal.h index 498e8fa2..b394e344 100644 --- a/iOS/Pod/Classes/DoricJSExecutorProtocal.h +++ b/iOS/Pod/Classes/DoricJSExecutorProtocal.h @@ -10,15 +10,11 @@ NS_ASSUME_NONNULL_BEGIN -typedef JSValue*(^DoricOCFunction)(); - @protocol DoricJSExecutorProtocal -(NSString *) loadJSScript:(NSString *)script source:(NSString *)source; --(void) injectGlobalJSFunction:(NSString *)name func:(DoricOCFunction)func; - --(void) injectGlobalJSObject:(NSString *)name obj:(NSDictionary *)obj; +-(void) injectGlobalJSObject:(NSString *)name obj:(id)obj; -(JSValue *) invokeObject: (NSString *)objName method:(NSString *)funcName args:(NSArray *)args; diff --git a/iOS/Pod/Classes/DoricUtil.h b/iOS/Pod/Classes/DoricUtil.h new file mode 100644 index 00000000..3917d408 --- /dev/null +++ b/iOS/Pod/Classes/DoricUtil.h @@ -0,0 +1,10 @@ +// +// DoricUtil.h +// Doric +// +// Created by pengfei.zhou on 2019/7/26. +// + +#import + +void DoricLog(NSString * _Nonnull format, ...); diff --git a/iOS/Pod/Classes/DoricUtil.m b/iOS/Pod/Classes/DoricUtil.m new file mode 100644 index 00000000..469bc5b1 --- /dev/null +++ b/iOS/Pod/Classes/DoricUtil.m @@ -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); +}