Parcourir la source

integerate ios react-native demo

matrixbirds il y a 6 ans
Parent
révision
47e46b8c08
22 fichiers modifiés avec 2110 ajouts et 842 suppressions
  1. 33
    11
      ios/RCTAgora.xcodeproj/project.pbxproj
  2. 7
    0
      ios/RCTAgora.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  3. 8
    0
      ios/RCTAgora.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
  4. BIN
      ios/RCTAgora.xcodeproj/project.xcworkspace/xcuserdata/DB.xcuserdatad/UserInterfaceState.xcuserstate
  5. BIN
      ios/RCTAgora.xcodeproj/project.xcworkspace/xcuserdata/ly.xcuserdatad/UserInterfaceState.xcuserstate
  6. 14
    0
      ios/RCTAgora.xcodeproj/xcuserdata/ly.xcuserdatad/xcschemes/xcschememanagement.plist
  7. 1423
    394
      package-lock.json
  8. 1
    5
      react-native-agora.podspec
  9. 13
    9
      samples/simpleDemo/App.js
  10. 56
    22
      samples/simpleDemo/components/agora.js
  11. 3
    1
      samples/simpleDemo/ios/Podfile
  12. 19
    7
      samples/simpleDemo/ios/Podfile.lock
  13. 130
    159
      samples/simpleDemo/ios/simpleDemo.xcodeproj/project.pbxproj
  14. BIN
      samples/simpleDemo/ios/simpleDemo.xcodeproj/project.xcworkspace/xcuserdata/ly.xcuserdatad/UserInterfaceState.xcuserstate
  15. 1
    1
      samples/simpleDemo/ios/simpleDemo.xcodeproj/xcshareddata/xcschemes/simpleDemo-tvOS.xcscheme
  16. 1
    1
      samples/simpleDemo/ios/simpleDemo.xcodeproj/xcshareddata/xcschemes/simpleDemo.xcscheme
  17. 15
    0
      samples/simpleDemo/ios/simpleDemo/Images.xcassets/AppIcon.appiconset/Contents.json
  18. 21
    16
      samples/simpleDemo/ios/simpleDemo/Info.plist
  19. 1
    1
      samples/simpleDemo/utils.js
  20. 182
    189
      samples/simpleDemo/yarn.lock
  21. 101
    15
      src/RtcEngine.native.ts
  22. 81
    11
      src/types.d.ts

+ 33
- 11
ios/RCTAgora.xcodeproj/project.pbxproj Voir le fichier

9
 /* Begin PBXBuildFile section */
9
 /* Begin PBXBuildFile section */
10
 		085CF7D72204A7B7002075D5 /* AgoraRtcCryptoLoader.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 085CF7D52204A7B7002075D5 /* AgoraRtcCryptoLoader.framework */; };
10
 		085CF7D72204A7B7002075D5 /* AgoraRtcCryptoLoader.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 085CF7D52204A7B7002075D5 /* AgoraRtcCryptoLoader.framework */; };
11
 		085CF7D82204A7B7002075D5 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 085CF7D62204A7B7002075D5 /* libcrypto.a */; };
11
 		085CF7D82204A7B7002075D5 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 085CF7D62204A7B7002075D5 /* libcrypto.a */; };
12
+		08B28CF72211239F00E57CEB /* AgoraRtcEngineKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08B28CF62211239F00E57CEB /* AgoraRtcEngineKit.framework */; };
12
 		23AF28211EEFECD800D771AB /* RCTAgora.m in Sources */ = {isa = PBXBuildFile; fileRef = 23AF28201EEFECD800D771AB /* RCTAgora.m */; };
13
 		23AF28211EEFECD800D771AB /* RCTAgora.m in Sources */ = {isa = PBXBuildFile; fileRef = 23AF28201EEFECD800D771AB /* RCTAgora.m */; };
13
 		23AF28221EEFECD800D771AB /* RCTAgora.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 23AF281F1EEFECD800D771AB /* RCTAgora.h */; };
14
 		23AF28221EEFECD800D771AB /* RCTAgora.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 23AF281F1EEFECD800D771AB /* RCTAgora.h */; };
14
 		23C20DD11F0A6ED80095F60C /* AgoraConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 23C20DCC1F0A6ED80095F60C /* AgoraConst.m */; };
15
 		23C20DD11F0A6ED80095F60C /* AgoraConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 23C20DCC1F0A6ED80095F60C /* AgoraConst.m */; };
32
 /* Begin PBXFileReference section */
33
 /* Begin PBXFileReference section */
33
 		085CF7D52204A7B7002075D5 /* AgoraRtcCryptoLoader.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AgoraRtcCryptoLoader.framework; sourceTree = "<group>"; };
34
 		085CF7D52204A7B7002075D5 /* AgoraRtcCryptoLoader.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AgoraRtcCryptoLoader.framework; sourceTree = "<group>"; };
34
 		085CF7D62204A7B7002075D5 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libcrypto.a; sourceTree = "<group>"; };
35
 		085CF7D62204A7B7002075D5 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libcrypto.a; sourceTree = "<group>"; };
36
+		08B28CF62211239F00E57CEB /* AgoraRtcEngineKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AgoraRtcEngineKit.framework; path = ../samples/simpleDemo/ios/Pods/AgoraRtcEngine_iOS/AgoraRtcEngineKit.framework; sourceTree = "<group>"; };
35
 		23AF281C1EEFECD800D771AB /* libRCTAgora.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRCTAgora.a; sourceTree = BUILT_PRODUCTS_DIR; };
37
 		23AF281C1EEFECD800D771AB /* libRCTAgora.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRCTAgora.a; sourceTree = BUILT_PRODUCTS_DIR; };
36
 		23AF281F1EEFECD800D771AB /* RCTAgora.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTAgora.h; sourceTree = "<group>"; };
38
 		23AF281F1EEFECD800D771AB /* RCTAgora.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTAgora.h; sourceTree = "<group>"; };
37
 		23AF28201EEFECD800D771AB /* RCTAgora.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RCTAgora.m; sourceTree = "<group>"; };
39
 		23AF28201EEFECD800D771AB /* RCTAgora.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RCTAgora.m; sourceTree = "<group>"; };
48
 			isa = PBXFrameworksBuildPhase;
50
 			isa = PBXFrameworksBuildPhase;
49
 			buildActionMask = 2147483647;
51
 			buildActionMask = 2147483647;
50
 			files = (
52
 			files = (
53
+				08B28CF72211239F00E57CEB /* AgoraRtcEngineKit.framework in Frameworks */,
51
 				085CF7D82204A7B7002075D5 /* libcrypto.a in Frameworks */,
54
 				085CF7D82204A7B7002075D5 /* libcrypto.a in Frameworks */,
52
 				085CF7D72204A7B7002075D5 /* AgoraRtcCryptoLoader.framework in Frameworks */,
55
 				085CF7D72204A7B7002075D5 /* AgoraRtcCryptoLoader.framework in Frameworks */,
53
 			);
56
 			);
65
 			path = libs;
68
 			path = libs;
66
 			sourceTree = "<group>";
69
 			sourceTree = "<group>";
67
 		};
70
 		};
71
+		08B28CF52211239F00E57CEB /* Frameworks */ = {
72
+			isa = PBXGroup;
73
+			children = (
74
+				08B28CF62211239F00E57CEB /* AgoraRtcEngineKit.framework */,
75
+			);
76
+			name = Frameworks;
77
+			sourceTree = "<group>";
78
+		};
68
 		23AF28131EEFECD800D771AB = {
79
 		23AF28131EEFECD800D771AB = {
69
 			isa = PBXGroup;
80
 			isa = PBXGroup;
70
 			children = (
81
 			children = (
71
 				23AF281E1EEFECD800D771AB /* RCTAgora */,
82
 				23AF281E1EEFECD800D771AB /* RCTAgora */,
72
 				23AF281D1EEFECD800D771AB /* Products */,
83
 				23AF281D1EEFECD800D771AB /* Products */,
84
+				08B28CF52211239F00E57CEB /* Frameworks */,
73
 			);
85
 			);
74
 			sourceTree = "<group>";
86
 			sourceTree = "<group>";
75
 		};
87
 		};
123
 		23AF28141EEFECD800D771AB /* Project object */ = {
135
 		23AF28141EEFECD800D771AB /* Project object */ = {
124
 			isa = PBXProject;
136
 			isa = PBXProject;
125
 			attributes = {
137
 			attributes = {
126
-				LastUpgradeCheck = 0830;
138
+				LastUpgradeCheck = 1010;
127
 				ORGANIZATIONNAME = Syan;
139
 				ORGANIZATIONNAME = Syan;
128
 				TargetAttributes = {
140
 				TargetAttributes = {
129
 					23AF281B1EEFECD800D771AB = {
141
 					23AF281B1EEFECD800D771AB = {
175
 				CLANG_CXX_LIBRARY = "libc++";
187
 				CLANG_CXX_LIBRARY = "libc++";
176
 				CLANG_ENABLE_MODULES = YES;
188
 				CLANG_ENABLE_MODULES = YES;
177
 				CLANG_ENABLE_OBJC_ARC = YES;
189
 				CLANG_ENABLE_OBJC_ARC = YES;
190
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
178
 				CLANG_WARN_BOOL_CONVERSION = YES;
191
 				CLANG_WARN_BOOL_CONVERSION = YES;
192
+				CLANG_WARN_COMMA = YES;
179
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
193
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
194
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
180
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
195
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
181
 				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
196
 				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
182
 				CLANG_WARN_EMPTY_BODY = YES;
197
 				CLANG_WARN_EMPTY_BODY = YES;
183
 				CLANG_WARN_ENUM_CONVERSION = YES;
198
 				CLANG_WARN_ENUM_CONVERSION = YES;
184
 				CLANG_WARN_INFINITE_RECURSION = YES;
199
 				CLANG_WARN_INFINITE_RECURSION = YES;
185
 				CLANG_WARN_INT_CONVERSION = YES;
200
 				CLANG_WARN_INT_CONVERSION = YES;
201
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
202
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
203
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
186
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
204
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
205
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
206
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
187
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
207
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
188
 				CLANG_WARN_UNREACHABLE_CODE = YES;
208
 				CLANG_WARN_UNREACHABLE_CODE = YES;
189
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
209
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
224
 				CLANG_CXX_LIBRARY = "libc++";
244
 				CLANG_CXX_LIBRARY = "libc++";
225
 				CLANG_ENABLE_MODULES = YES;
245
 				CLANG_ENABLE_MODULES = YES;
226
 				CLANG_ENABLE_OBJC_ARC = YES;
246
 				CLANG_ENABLE_OBJC_ARC = YES;
247
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
227
 				CLANG_WARN_BOOL_CONVERSION = YES;
248
 				CLANG_WARN_BOOL_CONVERSION = YES;
249
+				CLANG_WARN_COMMA = YES;
228
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
250
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
251
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
229
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
252
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
230
 				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
253
 				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
231
 				CLANG_WARN_EMPTY_BODY = YES;
254
 				CLANG_WARN_EMPTY_BODY = YES;
232
 				CLANG_WARN_ENUM_CONVERSION = YES;
255
 				CLANG_WARN_ENUM_CONVERSION = YES;
233
 				CLANG_WARN_INFINITE_RECURSION = YES;
256
 				CLANG_WARN_INFINITE_RECURSION = YES;
234
 				CLANG_WARN_INT_CONVERSION = YES;
257
 				CLANG_WARN_INT_CONVERSION = YES;
258
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
259
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
260
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
235
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
261
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
262
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
263
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
236
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
264
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
237
 				CLANG_WARN_UNREACHABLE_CODE = YES;
265
 				CLANG_WARN_UNREACHABLE_CODE = YES;
238
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
266
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
262
 			buildSettings = {
290
 			buildSettings = {
263
 				DEVELOPMENT_TEAM = 342K4Q49RK;
291
 				DEVELOPMENT_TEAM = 342K4Q49RK;
264
 				ENABLE_BITCODE = YES;
292
 				ENABLE_BITCODE = YES;
265
-				FRAMEWORK_SEARCH_PATHS = (
266
-					"\"$(SRCROOT)/RCTAgora/libs\"",
267
-					"$(PROJECT_DIR)/RCTAgora/libs",
268
-				);
269
 				HEADER_SEARCH_PATHS = (
293
 				HEADER_SEARCH_PATHS = (
270
 					"\"$(SRCROOT)/../../react-native/React\"/**",
294
 					"\"$(SRCROOT)/../../react-native/React\"/**",
271
 					"\"$(SRCROOT)/../../react-native/Libraries\"/**",
295
 					"\"$(SRCROOT)/../../react-native/Libraries\"/**",
272
 				);
296
 				);
273
 				LIBRARY_SEARCH_PATHS = (
297
 				LIBRARY_SEARCH_PATHS = (
274
 					"$(inherited)",
298
 					"$(inherited)",
275
-					"$(PROJECT_DIR)/RCTAgora/libs",
299
+					"$(PROJECT_DIR)",
300
+					"$(PROJECT_DIR)/RCTAgora/libs/**",
276
 				);
301
 				);
277
 				OTHER_LDFLAGS = "-ObjC";
302
 				OTHER_LDFLAGS = "-ObjC";
278
 				PRODUCT_NAME = "$(TARGET_NAME)";
303
 				PRODUCT_NAME = "$(TARGET_NAME)";
285
 			buildSettings = {
310
 			buildSettings = {
286
 				DEVELOPMENT_TEAM = 342K4Q49RK;
311
 				DEVELOPMENT_TEAM = 342K4Q49RK;
287
 				ENABLE_BITCODE = YES;
312
 				ENABLE_BITCODE = YES;
288
-				FRAMEWORK_SEARCH_PATHS = (
289
-					"\"$(SRCROOT)/RCTAgora/libs\"",
290
-					"$(PROJECT_DIR)/RCTAgora/libs",
291
-				);
292
 				HEADER_SEARCH_PATHS = (
313
 				HEADER_SEARCH_PATHS = (
293
 					"\"$(SRCROOT)/../../react-native/React\"/**",
314
 					"\"$(SRCROOT)/../../react-native/React\"/**",
294
 					"\"$(SRCROOT)/../../react-native/Libraries\"/**",
315
 					"\"$(SRCROOT)/../../react-native/Libraries\"/**",
295
 				);
316
 				);
296
 				LIBRARY_SEARCH_PATHS = (
317
 				LIBRARY_SEARCH_PATHS = (
297
 					"$(inherited)",
318
 					"$(inherited)",
298
-					"$(PROJECT_DIR)/RCTAgora/libs",
319
+					"$(PROJECT_DIR)",
320
+					"$(PROJECT_DIR)/RCTAgora/libs/**",
299
 				);
321
 				);
300
 				OTHER_LDFLAGS = "-ObjC";
322
 				OTHER_LDFLAGS = "-ObjC";
301
 				PRODUCT_NAME = "$(TARGET_NAME)";
323
 				PRODUCT_NAME = "$(TARGET_NAME)";

+ 7
- 0
ios/RCTAgora.xcodeproj/project.xcworkspace/contents.xcworkspacedata Voir le fichier

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<Workspace
3
+   version = "1.0">
4
+   <FileRef
5
+      location = "self:RCTAgora.xcodeproj">
6
+   </FileRef>
7
+</Workspace>

+ 8
- 0
ios/RCTAgora.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist Voir le fichier

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+<plist version="1.0">
4
+<dict>
5
+	<key>IDEDidComputeMac32BitWarning</key>
6
+	<true/>
7
+</dict>
8
+</plist>

BIN
ios/RCTAgora.xcodeproj/project.xcworkspace/xcuserdata/DB.xcuserdatad/UserInterfaceState.xcuserstate Voir le fichier


BIN
ios/RCTAgora.xcodeproj/project.xcworkspace/xcuserdata/ly.xcuserdatad/UserInterfaceState.xcuserstate Voir le fichier


+ 14
- 0
ios/RCTAgora.xcodeproj/xcuserdata/ly.xcuserdatad/xcschemes/xcschememanagement.plist Voir le fichier

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+<plist version="1.0">
4
+<dict>
5
+	<key>SchemeUserState</key>
6
+	<dict>
7
+		<key>RCTAgora.xcscheme_^#shared#^_</key>
8
+		<dict>
9
+			<key>orderHint</key>
10
+			<integer>8</integer>
11
+		</dict>
12
+	</dict>
13
+</dict>
14
+</plist>

+ 1423
- 394
package-lock.json
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 1
- 5
react-native-agora.podspec Voir le fichier

82
   #  you can include multiple dependencies to ensure it works.
82
   #  you can include multiple dependencies to ensure it works.
83
 
83
 
84
   # s.requires_arc = true
84
   # s.requires_arc = true
85
-  s.subspec 'AgoraRtcEngineKit' do |sp|
86
-    sp.dependency 'AgoraRtcEngine_iOS', '2.3.3'
87
-    sp.source_files = 'AgoraRtcEngineKit/**/*.{c,h,m,mm,S,cpp}'
88
-  end  
89
-
90
   s.subspec 'AgoraRtcCryptoLoader' do |sp|
85
   s.subspec 'AgoraRtcCryptoLoader' do |sp|
91
     sp.source_files = './ios/RCTAgora/libs/AgoraRtcCryptoLoader.framework/**/*.{c,h,m,mm,S,cpp}'
86
     sp.source_files = './ios/RCTAgora/libs/AgoraRtcCryptoLoader.framework/**/*.{c,h,m,mm,S,cpp}'
92
     sp.vendored_libraries = 'libcrypto.a'
87
     sp.vendored_libraries = 'libcrypto.a'
99
     ]
94
     ]
100
   }
95
   }
101
   s.dependency "AgoraRtcEngine_iOS", "2.3.3"
96
   s.dependency "AgoraRtcEngine_iOS", "2.3.3"
97
+  s.dependency 'React'
102
 
98
 
103
 end
99
 end

+ 13
- 9
samples/simpleDemo/App.js Voir le fichier

51
       videoProfile: 40,
51
       videoProfile: 40,
52
       clientRole: 1,
52
       clientRole: 1,
53
       swapWidthAndHeight: true,
53
       swapWidthAndHeight: true,
54
-      channelName: 'defaultChannel'
54
+      channelName: null
55
     };
55
     };
56
   }
56
   }
57
 
57
 
62
   }
62
   }
63
 
63
 
64
   onCancel = (error) => {
64
   onCancel = (error) => {
65
-    console.log("[error]", error);
66
     this.setState({
65
     this.setState({
67
       showLive: false,
66
       showLive: false,
68
-      error
67
+      error: JSON.stringify(error)
69
     })
68
     })
70
   }
69
   }
71
 
70
 
72
   render() {
71
   render() {
73
     if (this.state.showLive) {
72
     if (this.state.showLive) {
73
+      console.log('channelName', this.state.channelName);
74
       return (<AgoraRTCView
74
       return (<AgoraRTCView
75
-        onCancel={this.onCancel}
76
         channelProfile={this.state.channelProfile}
75
         channelProfile={this.state.channelProfile}
76
+        channelName={this.state.channelName}
77
         videoProfile={this.state.videoProfile}
77
         videoProfile={this.state.videoProfile}
78
         clientRole={this.state.clientRole}
78
         clientRole={this.state.clientRole}
79
-        swapWidthAndHeight={this.state.swapWidthAndHeight}
80
-        channelName={this.state.channelName}
79
+        onCancel={this.onCancel}
81
       ></AgoraRTCView>);
80
       ></AgoraRTCView>);
82
     }
81
     }
83
     return (
82
     return (
84
       <View style={styles.container}>
83
       <View style={styles.container}>
85
-        {this.state.error && <Text>Error Message: {error}</Text>}
84
+        {this.state.error ? <Text>Error Message: {this.state.error}</Text> : null}
86
         <TextInput
85
         <TextInput
87
           style={{height: 40}}
86
           style={{height: 40}}
88
           keyboardType='numeric'
87
           keyboardType='numeric'
112
             let matched = text.match(/\d+/g) && text.match(/\d+/g)[0]
111
             let matched = text.match(/\d+/g) && text.match(/\d+/g)[0]
113
             if (matched) {
112
             if (matched) {
114
               this.setState({clientRole: +matched})
113
               this.setState({clientRole: +matched})
115
-            }          }
114
+            }
115
+          }
116
         } />
116
         } />
117
         <TextInput
117
         <TextInput
118
           style={{height: 40}}
118
           style={{height: 40}}
119
           placeholder="Enter channelName"
119
           placeholder="Enter channelName"
120
-          onChnageText={(text) => this.setState({channelName: text})}
120
+          onChangeText={
121
+            (text) => {
122
+              this.setState({channelName: text}) 
123
+            }
124
+          }
121
         />
125
         />
122
         <TouchableOpacity
126
         <TouchableOpacity
123
           style={styles.button}
127
           style={styles.button}

+ 56
- 22
samples/simpleDemo/components/agora.js Voir le fichier

1
 import React, {Component, PureComponent} from 'react';
1
 import React, {Component, PureComponent} from 'react';
2
 import {
2
 import {
3
   StyleSheet, Text, View, TouchableOpacity,
3
   StyleSheet, Text, View, TouchableOpacity,
4
-  Image, Dimensions, Modal, Platform
4
+  Image, Dimensions, Modal, Platform, NativeModules
5
 } from 'react-native';
5
 } from 'react-native';
6
 
6
 
7
 import {RtcEngine, AgoraView} from 'react-native-agora';
7
 import {RtcEngine, AgoraView} from 'react-native-agora';
10
   isIphoneX, isIphoneXR
10
   isIphoneX, isIphoneXR
11
 } from '../utils';
11
 } from '../utils';
12
 
12
 
13
+const {Agora} = NativeModules;
14
+
15
+if (!Agora) {
16
+  throw new Error("Agora load failed in react-native, please check ur compiler environments");
17
+}
18
+
19
+const {
20
+  FPS30,
21
+  FixedLandscape,
22
+  Host,
23
+  AudioProfileDefault,
24
+  AudioScenarioDefault,
25
+} = Agora;
26
+
13
 const BtnEndCall = () => require('../assets/btn_endcall.png');
27
 const BtnEndCall = () => require('../assets/btn_endcall.png');
14
 const BtnMute = () => require('../assets/btn_mute.png');
28
 const BtnMute = () => require('../assets/btn_mute.png');
15
 const BtnSpeaker = () => require('../assets/btn_speaker.png');
29
 const BtnSpeaker = () => require('../assets/btn_speaker.png');
86
   channelName: String,
100
   channelName: String,
87
   videoProfile: Number,
101
   videoProfile: Number,
88
   clientRole: Number,
102
   clientRole: Number,
89
-  swapWidthAndHeight: Boolean,
90
   onCancel: Function
103
   onCancel: Function
91
 }
104
 }
92
 
105
 
93
-export default class Agora extends Component<Props> {
106
+export default class AgoraComponent extends Component<Props> {
94
   state = {
107
   state = {
95
     peerIds: [],
108
     peerIds: [],
96
     joinSucceed: false,
109
     joinSucceed: false,
109
       channelProfile: this.props.channelProfile,
122
       channelProfile: this.props.channelProfile,
110
       videoProfile: this.props.videoProfile,
123
       videoProfile: this.props.videoProfile,
111
       clientRole: this.props.clientRole,
124
       clientRole: this.props.clientRole,
112
-      swapWidthAndHeight: this.props.swapWidthAndHeight
125
+      videoEncoderConfig: {
126
+        width: 360,
127
+        height: 480,
128
+        bitrate: 1,
129
+        frameRate: FPS30,
130
+        orientationMode: FixedLandscape,
131
+      },
132
+      clientRole: Host,
133
+      audioProfile: AudioProfileDefault,
134
+      audioScenario: AudioScenarioDefault
113
     }
135
     }
114
-    console.log("[CONFIG]", config);
136
+    console.log("[CONFIG]", JSON.stringify(config));
137
+    console.log("[CONFIG.encoderConfig", config.videoEncoderConfig);
115
     RtcEngine.init(config);
138
     RtcEngine.init(config);
116
   }
139
   }
117
 
140
 
124
     RtcEngine.joinChannel(this.props.channelName);
147
     RtcEngine.joinChannel(this.props.channelName);
125
     RtcEngine.enableAudioVolumeIndication(500, 3);
148
     RtcEngine.enableAudioVolumeIndication(500, 3);
126
     RtcEngine.eventEmitter({
149
     RtcEngine.eventEmitter({
127
-      onFirstRemoteVideoDecoded: (data) => {
128
-        console.log('[RtcEngine] onFirstRemoteVideoDecoded', data);
150
+      FirstRemoteVideoDecodedOfUid: (data) => {
151
+        console.log('[RtcEngine] firstRemoteVideoDecodedOfUid', data);
129
       },
152
       },
130
-      onUserOffline: (data) => {
131
-        console.log('[RtcEngine] onUserOffline', data);
153
+      DidOfflineOfUid: (data) => {
154
+        console.log('[RtcEngine] didOfflineOfUid', data);
132
         this.setState({
155
         this.setState({
133
             peerIds: this.state.peerIds.filter(uid => uid !== data.uid)
156
             peerIds: this.state.peerIds.filter(uid => uid !== data.uid)
134
         })
157
         })
135
       },
158
       },
136
-      onJoinChannelSuccess: (data) => {
137
-        console.log('[RtcEngine] onJoinChannelSuccess', data);
159
+      DidJoinChannel: (data) => {
160
+        console.log('[RtcEngine] didJoinChannel', data);
138
         // RtcEngine.setShowLocalVideo()
161
         // RtcEngine.setShowLocalVideo()
139
         RtcEngine.startPreview();
162
         RtcEngine.startPreview();
140
         this.setState({
163
         this.setState({
141
           joinSucceed: true
164
           joinSucceed: true
142
         })
165
         })
143
-      },
144
-      onAudioVolumeIndication: (data) => {
145
-        console.log('[RtcEngine] onAudioVolumeIndication', data);
146
-      },
147
-      onUserJoined: (data) => {
148
-        console.log('[RtcEngine] onUserJoined', data);
149
         const {peerIds} = this.state;
166
         const {peerIds} = this.state;
150
         if (peerIds.indexOf(data.uid) !== -1) {
167
         if (peerIds.indexOf(data.uid) !== -1) {
151
           this.setState({
168
           this.setState({
153
           })
170
           })
154
         }
171
         }
155
       },
172
       },
156
-      onError: (data) => {
173
+      ReportAudioVolumeIndicationOfSpeakers: (data) => {
174
+        console.log('[RtcEngine] reportAudioVolumeIndicationOfSpeakers', data);
175
+      },
176
+      DidClientRoleChanged: (data) => {
177
+        console.log("[RtcEngine] DidClientRoleChanged", data);
178
+      },
179
+      // onUserJoined: (data) => {
180
+      //   console.log('[RtcEngine] onUserJoined', data);
181
+      //   const {peerIds} = this.state;
182
+      //   if (peerIds.indexOf(data.uid) !== -1) {
183
+      //     this.setState({
184
+      //       peerIds: [...peerIds, data.uid]
185
+      //     })
186
+      //   }
187
+      // },
188
+      DidOccurError: (data) => {
157
         console.log('[RtcEngine] onError', data);
189
         console.log('[RtcEngine] onError', data);
158
         if (data.error === 17) {
190
         if (data.error === 17) {
159
-          RtcEngine.leaveChannel();
160
-          RtcEngine.destroy();
191
+          RtcEngine.leaveChannel().then(_ => {
192
+            RtcEngine.destroy();
193
+            this.props.onCancel(data);
194
+          });
161
         }
195
         }
162
-        this.props.onCancel(data.error);
163
       }
196
       }
164
     })
197
     })
165
   }
198
   }
166
 
199
 
167
   componentWillUnmount () {
200
   componentWillUnmount () {
168
-    RtcEngine.removeEmitter()
201
+    RtcEngine.leaveChannel();
202
+    RtcEngine.destroy();
169
   }
203
   }
170
 
204
 
171
   handleCancel = () => {
205
   handleCancel = () => {

+ 3
- 1
samples/simpleDemo/ios/Podfile Voir le fichier

13
   #  inherit! :search_paths
13
   #  inherit! :search_paths
14
   #  # Pods for testing
14
   #  # Pods for testing
15
   #end
15
   #end
16
-  pod "react-native-agora", path: "../node_modules/react-native-agora"
16
+  pod "react-native-agora", path: "../../../"
17
+  pod 'yoga', path: '../node_modules/react-native/ReactCommon/yoga/Yoga.podspec'
18
+  pod 'React', path: '../node_modules/react-native'
17
   #pod "React", path: react_native_path
19
   #pod "React", path: react_native_path
18
   #%w(DoubleConversion Folly glog).each do |lib_name|
20
   #%w(DoubleConversion Folly glog).each do |lib_name|
19
   #  pod lib_name, podspec: "#{react_native_path}/third-party-podspecs/#{lib_name}.podspec"
21
   #  pod lib_name, podspec: "#{react_native_path}/third-party-podspecs/#{lib_name}.podspec"

+ 19
- 7
samples/simpleDemo/ios/Podfile.lock Voir le fichier

1
 PODS:
1
 PODS:
2
   - AgoraRtcEngine_iOS (2.3.3)
2
   - AgoraRtcEngine_iOS (2.3.3)
3
+  - React (0.58.3):
4
+    - React/Core (= 0.58.3)
3
   - react-native-agora (2.3.3):
5
   - react-native-agora (2.3.3):
4
     - AgoraRtcEngine_iOS (= 2.3.3)
6
     - AgoraRtcEngine_iOS (= 2.3.3)
7
+    - React
5
     - react-native-agora/AgoraRtcCryptoLoader (= 2.3.3)
8
     - react-native-agora/AgoraRtcCryptoLoader (= 2.3.3)
6
-    - react-native-agora/AgoraRtcEngineKit (= 2.3.3)
7
   - react-native-agora/AgoraRtcCryptoLoader (2.3.3):
9
   - react-native-agora/AgoraRtcCryptoLoader (2.3.3):
8
     - AgoraRtcEngine_iOS (= 2.3.3)
10
     - AgoraRtcEngine_iOS (= 2.3.3)
9
-  - react-native-agora/AgoraRtcEngineKit (2.3.3):
10
-    - AgoraRtcEngine_iOS (= 2.3.3)
11
+    - React
12
+  - React/Core (0.58.3):
13
+    - yoga (= 0.58.3.React)
14
+  - yoga (0.58.3.React)
11
 
15
 
12
 DEPENDENCIES:
16
 DEPENDENCIES:
13
-  - react-native-agora (from `../node_modules/react-native-agora`)
17
+  - React (from `../node_modules/react-native`)
18
+  - react-native-agora (from `../../../`)
19
+  - yoga (from `../node_modules/react-native/ReactCommon/yoga/Yoga.podspec`)
14
 
20
 
15
 SPEC REPOS:
21
 SPEC REPOS:
16
   https://github.com/cocoapods/specs.git:
22
   https://github.com/cocoapods/specs.git:
17
     - AgoraRtcEngine_iOS
23
     - AgoraRtcEngine_iOS
18
 
24
 
19
 EXTERNAL SOURCES:
25
 EXTERNAL SOURCES:
26
+  React:
27
+    :path: "../node_modules/react-native"
20
   react-native-agora:
28
   react-native-agora:
21
-    :path: "../node_modules/react-native-agora"
29
+    :path: "../../../"
30
+  yoga:
31
+    :path: "../node_modules/react-native/ReactCommon/yoga/Yoga.podspec"
22
 
32
 
23
 SPEC CHECKSUMS:
33
 SPEC CHECKSUMS:
24
   AgoraRtcEngine_iOS: 8ad4b58dafed2cec5df03fa1f0ddbdad2c9ff958
34
   AgoraRtcEngine_iOS: 8ad4b58dafed2cec5df03fa1f0ddbdad2c9ff958
25
-  react-native-agora: ad43868aad1298fa32f167d9a00887e2c88af54b
35
+  React: 9b873b38b92ed8012d7cdf3b965477095ed364c4
36
+  react-native-agora: ad538661771e745fac8920412002e0e90903bbc8
37
+  yoga: 0885622311729a02c2bc02dca97167787a51488b
26
 
38
 
27
-PODFILE CHECKSUM: ed05ca9e60ab637de485899d548c81338155a2ae
39
+PODFILE CHECKSUM: 20565f1fb8643e49a8e76b33da6bb4e2d188134a
28
 
40
 
29
 COCOAPODS: 1.5.3
41
 COCOAPODS: 1.5.3

+ 130
- 159
samples/simpleDemo/ios/simpleDemo.xcodeproj/project.pbxproj Voir le fichier

13
 		00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; };
13
 		00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; };
14
 		00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; };
14
 		00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; };
15
 		00E356F31AD99517003FC87E /* simpleDemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* simpleDemoTests.m */; };
15
 		00E356F31AD99517003FC87E /* simpleDemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* simpleDemoTests.m */; };
16
+		05194A9809AFD1FDF74709E7 /* libPods-simpleDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C9C186FCB90BE59A498E388 /* libPods-simpleDemo.a */; };
17
+		0835F32622113E6C00D06B62 /* libRCTAgora.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0835F32522113DBB00D06B62 /* libRCTAgora.a */; };
16
 		0842E3912206D315003875AC /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E36A2206D315003875AC /* libc++.tbd */; };
18
 		0842E3912206D315003875AC /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E36A2206D315003875AC /* libc++.tbd */; };
17
 		0842E3932206D31B003875AC /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E3922206D31B003875AC /* libresolv.tbd */; };
19
 		0842E3932206D31B003875AC /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E3922206D31B003875AC /* libresolv.tbd */; };
18
 		0842E3952206D320003875AC /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E3942206D320003875AC /* AVFoundation.framework */; };
20
 		0842E3952206D320003875AC /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E3942206D320003875AC /* AVFoundation.framework */; };
21
 		0842E39C2206D332003875AC /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E39A2206D331003875AC /* CoreMedia.framework */; };
23
 		0842E39C2206D332003875AC /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E39A2206D331003875AC /* CoreMedia.framework */; };
22
 		0842E39D2206D332003875AC /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E39B2206D332003875AC /* CoreMotion.framework */; };
24
 		0842E39D2206D332003875AC /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E39B2206D332003875AC /* CoreMotion.framework */; };
23
 		0842E39F2206D338003875AC /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E39E2206D338003875AC /* CoreTelephony.framework */; };
25
 		0842E39F2206D338003875AC /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E39E2206D338003875AC /* CoreTelephony.framework */; };
24
-		0842E3A12206D34C003875AC /* AgoraRtcEngineKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E3A02206D34C003875AC /* AgoraRtcEngineKit.framework */; };
25
-		0842E3A42206D360003875AC /* AgoraRtcCryptoLoader.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E3A22206D360003875AC /* AgoraRtcCryptoLoader.framework */; };
26
-		0842E3A52206D360003875AC /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E3A32206D360003875AC /* libcrypto.a */; };
27
 		11D1A2F320CAFA9E000508D9 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
26
 		11D1A2F320CAFA9E000508D9 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
28
 		133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; };
27
 		133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; };
29
 		139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; };
28
 		139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; };
34
 		13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
33
 		13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
35
 		140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
34
 		140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
36
 		146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
35
 		146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
36
+		1EDE4E5AD6EB936298841520 /* libPods-simpleDemoTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F00ACB437198E85C3CA8C909 /* libPods-simpleDemoTests.a */; };
37
 		2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
37
 		2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
38
 		2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
38
 		2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
39
 		2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
39
 		2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
47
 		2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D16E6891FA4F8E400B85C8A /* libReact.a */; };
47
 		2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D16E6891FA4F8E400B85C8A /* libReact.a */; };
48
 		2DCD954D1E0B4F2C00145EB5 /* simpleDemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* simpleDemoTests.m */; };
48
 		2DCD954D1E0B4F2C00145EB5 /* simpleDemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* simpleDemoTests.m */; };
49
 		2DF0FFEE2056DD460020B375 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; };
49
 		2DF0FFEE2056DD460020B375 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; };
50
-		4086AF4EA873C2D50131464F /* libPods-simpleDemo-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 07FD1913E615AEBFC3940FDC /* libPods-simpleDemo-tvOSTests.a */; };
51
 		832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
50
 		832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
52
 		ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; };
51
 		ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; };
53
-		B375A63E4462113FC4A97339 /* libPods-simpleDemo-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 021402B39A761565305CBE44 /* libPods-simpleDemo-tvOS.a */; };
54
-		C02FA657FA0B4EB58C0BFD88 /* libRCTAgora.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B9F98204ACA40738ADB1B26 /* libRCTAgora.a */; };
52
+		B63DC20AC5E319CED37AF53F /* libPods-simpleDemo-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C29A9B4FA0CBFCB2AEAC456B /* libPods-simpleDemo-tvOS.a */; };
53
+		D899073F3898E08F36D2FAD2 /* libPods-simpleDemo-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 45848698D81201AE2B62BBC9 /* libPods-simpleDemo-tvOSTests.a */; };
55
 		ED297163215061F000B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED297162215061F000B7C4FE /* JavaScriptCore.framework */; };
54
 		ED297163215061F000B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED297162215061F000B7C4FE /* JavaScriptCore.framework */; };
56
 		ED2971652150620600B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED2971642150620600B7C4FE /* JavaScriptCore.framework */; };
55
 		ED2971652150620600B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED2971642150620600B7C4FE /* JavaScriptCore.framework */; };
57
 /* End PBXBuildFile section */
56
 /* End PBXBuildFile section */
99
 			remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
98
 			remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
100
 			remoteInfo = simpleDemo;
99
 			remoteInfo = simpleDemo;
101
 		};
100
 		};
101
+		0835F32422113DBB00D06B62 /* PBXContainerItemProxy */ = {
102
+			isa = PBXContainerItemProxy;
103
+			containerPortal = 0835F32022113DBB00D06B62 /* RCTAgora.xcodeproj */;
104
+			proxyType = 2;
105
+			remoteGlobalIDString = 23AF281C1EEFECD800D771AB;
106
+			remoteInfo = RCTAgora;
107
+		};
102
 		0842E3362206D244003875AC /* PBXContainerItemProxy */ = {
108
 		0842E3362206D244003875AC /* PBXContainerItemProxy */ = {
103
 			isa = PBXContainerItemProxy;
109
 			isa = PBXContainerItemProxy;
104
 			containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
110
 			containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
127
 			remoteGlobalIDString = ED296FEE214C9CF800B7C4FE;
133
 			remoteGlobalIDString = ED296FEE214C9CF800B7C4FE;
128
 			remoteInfo = "jsiexecutor-tvOS";
134
 			remoteInfo = "jsiexecutor-tvOS";
129
 		};
135
 		};
130
-		0842E3412206D245003875AC /* PBXContainerItemProxy */ = {
131
-			isa = PBXContainerItemProxy;
132
-			containerPortal = CA9AD93325024B3384E0F566 /* RCTAgora.xcodeproj */;
133
-			proxyType = 2;
134
-			remoteGlobalIDString = 23AF281C1EEFECD800D771AB;
135
-			remoteInfo = RCTAgora;
136
-		};
137
 		139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = {
136
 		139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = {
138
 			isa = PBXContainerItemProxy;
137
 			isa = PBXContainerItemProxy;
139
 			containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */;
138
 			containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */;
349
 		00E356EE1AD99517003FC87E /* simpleDemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = simpleDemoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
348
 		00E356EE1AD99517003FC87E /* simpleDemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = simpleDemoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
350
 		00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
349
 		00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
351
 		00E356F21AD99517003FC87E /* simpleDemoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = simpleDemoTests.m; sourceTree = "<group>"; };
350
 		00E356F21AD99517003FC87E /* simpleDemoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = simpleDemoTests.m; sourceTree = "<group>"; };
352
-		021402B39A761565305CBE44 /* libPods-simpleDemo-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-simpleDemo-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; };
353
-		07FD1913E615AEBFC3940FDC /* libPods-simpleDemo-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-simpleDemo-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
351
+		0835F32022113DBB00D06B62 /* RCTAgora.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAgora.xcodeproj; path = "../node_modules/react-native-agora/ios/RCTAgora.xcodeproj"; sourceTree = "<group>"; };
354
 		0842E36A2206D315003875AC /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
352
 		0842E36A2206D315003875AC /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
355
 		0842E3922206D31B003875AC /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; };
353
 		0842E3922206D31B003875AC /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; };
356
 		0842E3942206D320003875AC /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
354
 		0842E3942206D320003875AC /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
362
 		0842E3A02206D34C003875AC /* AgoraRtcEngineKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AgoraRtcEngineKit.framework; path = Pods/AgoraRtcEngine_iOS/AgoraRtcEngineKit.framework; sourceTree = "<group>"; };
360
 		0842E3A02206D34C003875AC /* AgoraRtcEngineKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AgoraRtcEngineKit.framework; path = Pods/AgoraRtcEngine_iOS/AgoraRtcEngineKit.framework; sourceTree = "<group>"; };
363
 		0842E3A22206D360003875AC /* AgoraRtcCryptoLoader.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AgoraRtcCryptoLoader.framework; path = "../node_modules/react-native-agora/ios/RCTAgora/libs/AgoraRtcCryptoLoader.framework"; sourceTree = "<group>"; };
361
 		0842E3A22206D360003875AC /* AgoraRtcCryptoLoader.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AgoraRtcCryptoLoader.framework; path = "../node_modules/react-native-agora/ios/RCTAgora/libs/AgoraRtcCryptoLoader.framework"; sourceTree = "<group>"; };
364
 		0842E3A32206D360003875AC /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = "../node_modules/react-native-agora/ios/RCTAgora/libs/libcrypto.a"; sourceTree = "<group>"; };
362
 		0842E3A32206D360003875AC /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = "../node_modules/react-native-agora/ios/RCTAgora/libs/libcrypto.a"; sourceTree = "<group>"; };
365
-		0DB04D9AEAA74EF6607A82A9 /* Pods-simpleDemo-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-simpleDemo-tvOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-simpleDemo-tvOS/Pods-simpleDemo-tvOS.debug.xcconfig"; sourceTree = "<group>"; };
363
+		0A0E55F5895DC7A7CD825A1B /* Pods-simpleDemoTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-simpleDemoTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-simpleDemoTests/Pods-simpleDemoTests.debug.xcconfig"; sourceTree = "<group>"; };
366
 		139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = "<group>"; };
364
 		139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = "<group>"; };
367
 		139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = "<group>"; };
365
 		139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = "<group>"; };
368
 		13B07F961A680F5B00A75B9A /* simpleDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = simpleDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
366
 		13B07F961A680F5B00A75B9A /* simpleDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = simpleDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
376
 		2D02E47B1E0B4A5D006451C7 /* simpleDemo-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "simpleDemo-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
374
 		2D02E47B1E0B4A5D006451C7 /* simpleDemo-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "simpleDemo-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
377
 		2D02E4901E0B4A5D006451C7 /* simpleDemo-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "simpleDemo-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
375
 		2D02E4901E0B4A5D006451C7 /* simpleDemo-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "simpleDemo-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
378
 		2D16E6891FA4F8E400B85C8A /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; };
376
 		2D16E6891FA4F8E400B85C8A /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; };
379
-		5B69BB0F0278983EB91EFB36 /* Pods-simpleDemoTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-simpleDemoTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-simpleDemoTests/Pods-simpleDemoTests.release.xcconfig"; sourceTree = "<group>"; };
377
+		45848698D81201AE2B62BBC9 /* libPods-simpleDemo-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-simpleDemo-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
378
+		5C9C186FCB90BE59A498E388 /* libPods-simpleDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-simpleDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; };
380
 		5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; };
379
 		5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; };
381
-		70A91D90042C89CC6EF0E8CD /* Pods-simpleDemo-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-simpleDemo-tvOSTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-simpleDemo-tvOSTests/Pods-simpleDemo-tvOSTests.release.xcconfig"; sourceTree = "<group>"; };
382
 		78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
380
 		78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
383
 		832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };
381
 		832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };
384
-		8B9F98204ACA40738ADB1B26 /* libRCTAgora.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRCTAgora.a; sourceTree = "<group>"; };
385
-		8C859670831DE00C89A5E486 /* Pods-simpleDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-simpleDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-simpleDemo/Pods-simpleDemo.release.xcconfig"; sourceTree = "<group>"; };
386
-		8DD8116E964676CE1B43C594 /* Pods-simpleDemoTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-simpleDemoTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-simpleDemoTests/Pods-simpleDemoTests.debug.xcconfig"; sourceTree = "<group>"; };
387
-		A5782448EE30AD496E22F402 /* Pods-simpleDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-simpleDemo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-simpleDemo/Pods-simpleDemo.debug.xcconfig"; sourceTree = "<group>"; };
388
-		ABDB6D24F1D1E9BBB9BE0147 /* libPods-simpleDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-simpleDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; };
389
 		ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = "<group>"; };
382
 		ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = "<group>"; };
390
-		B835BA3CB4E5C940B624A18B /* Pods-simpleDemo-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-simpleDemo-tvOSTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-simpleDemo-tvOSTests/Pods-simpleDemo-tvOSTests.debug.xcconfig"; sourceTree = "<group>"; };
391
-		C8B44CB320F35679C035C147 /* Pods-simpleDemo-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-simpleDemo-tvOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-simpleDemo-tvOS/Pods-simpleDemo-tvOS.release.xcconfig"; sourceTree = "<group>"; };
392
-		CA9AD93325024B3384E0F566 /* RCTAgora.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTAgora.xcodeproj; path = "../node_modules/react-native-agora/ios/RCTAgora.xcodeproj"; sourceTree = "<group>"; };
393
-		E8C5512D7AE6DF802B22A14C /* libPods-simpleDemoTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-simpleDemoTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
383
+		B1F8F74BA7E4A893B45EBA14 /* Pods-simpleDemo-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-simpleDemo-tvOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-simpleDemo-tvOS/Pods-simpleDemo-tvOS.release.xcconfig"; sourceTree = "<group>"; };
384
+		B4BEA34A2BE6170D8015E6E6 /* Pods-simpleDemoTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-simpleDemoTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-simpleDemoTests/Pods-simpleDemoTests.release.xcconfig"; sourceTree = "<group>"; };
385
+		BA1D76D22058F0FE11245706 /* Pods-simpleDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-simpleDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-simpleDemo/Pods-simpleDemo.release.xcconfig"; sourceTree = "<group>"; };
386
+		C246F6B5A5B225491EE41834 /* Pods-simpleDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-simpleDemo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-simpleDemo/Pods-simpleDemo.debug.xcconfig"; sourceTree = "<group>"; };
387
+		C29A9B4FA0CBFCB2AEAC456B /* libPods-simpleDemo-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-simpleDemo-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; };
388
+		C6621048A1D76D31934A4971 /* Pods-simpleDemo-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-simpleDemo-tvOSTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-simpleDemo-tvOSTests/Pods-simpleDemo-tvOSTests.release.xcconfig"; sourceTree = "<group>"; };
394
 		ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
389
 		ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
395
 		ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
390
 		ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
391
+		F00ACB437198E85C3CA8C909 /* libPods-simpleDemoTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-simpleDemoTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
392
+		F5A5F433C9A120BCBAB88C30 /* Pods-simpleDemo-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-simpleDemo-tvOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-simpleDemo-tvOS/Pods-simpleDemo-tvOS.debug.xcconfig"; sourceTree = "<group>"; };
393
+		FE09FB8163CC564FE6E1A0D1 /* Pods-simpleDemo-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-simpleDemo-tvOSTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-simpleDemo-tvOSTests/Pods-simpleDemo-tvOSTests.debug.xcconfig"; sourceTree = "<group>"; };
396
 /* End PBXFileReference section */
394
 /* End PBXFileReference section */
397
 
395
 
398
 /* Begin PBXFrameworksBuildPhase section */
396
 /* Begin PBXFrameworksBuildPhase section */
401
 			buildActionMask = 2147483647;
399
 			buildActionMask = 2147483647;
402
 			files = (
400
 			files = (
403
 				140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */,
401
 				140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */,
402
+				1EDE4E5AD6EB936298841520 /* libPods-simpleDemoTests.a in Frameworks */,
404
 			);
403
 			);
405
 			runOnlyForDeploymentPostprocessing = 0;
404
 			runOnlyForDeploymentPostprocessing = 0;
406
 		};
405
 		};
408
 			isa = PBXFrameworksBuildPhase;
407
 			isa = PBXFrameworksBuildPhase;
409
 			buildActionMask = 2147483647;
408
 			buildActionMask = 2147483647;
410
 			files = (
409
 			files = (
411
-				0842E3A42206D360003875AC /* AgoraRtcCryptoLoader.framework in Frameworks */,
412
-				0842E3A52206D360003875AC /* libcrypto.a in Frameworks */,
413
-				0842E3A12206D34C003875AC /* AgoraRtcEngineKit.framework in Frameworks */,
410
+				0835F32622113E6C00D06B62 /* libRCTAgora.a in Frameworks */,
414
 				0842E39F2206D338003875AC /* CoreTelephony.framework in Frameworks */,
411
 				0842E39F2206D338003875AC /* CoreTelephony.framework in Frameworks */,
415
 				0842E39C2206D332003875AC /* CoreMedia.framework in Frameworks */,
412
 				0842E39C2206D332003875AC /* CoreMedia.framework in Frameworks */,
416
 				0842E39D2206D332003875AC /* CoreMotion.framework in Frameworks */,
413
 				0842E39D2206D332003875AC /* CoreMotion.framework in Frameworks */,
432
 				832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */,
429
 				832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */,
433
 				00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
430
 				00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
434
 				139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
431
 				139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
435
-				C02FA657FA0B4EB58C0BFD88 /* libRCTAgora.a in Frameworks */,
432
+				05194A9809AFD1FDF74709E7 /* libPods-simpleDemo.a in Frameworks */,
436
 			);
433
 			);
437
 			runOnlyForDeploymentPostprocessing = 0;
434
 			runOnlyForDeploymentPostprocessing = 0;
438
 		};
435
 		};
449
 				2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */,
446
 				2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */,
450
 				2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */,
447
 				2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */,
451
 				2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */,
448
 				2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */,
452
-				B375A63E4462113FC4A97339 /* libPods-simpleDemo-tvOS.a in Frameworks */,
449
+				B63DC20AC5E319CED37AF53F /* libPods-simpleDemo-tvOS.a in Frameworks */,
453
 			);
450
 			);
454
 			runOnlyForDeploymentPostprocessing = 0;
451
 			runOnlyForDeploymentPostprocessing = 0;
455
 		};
452
 		};
458
 			buildActionMask = 2147483647;
455
 			buildActionMask = 2147483647;
459
 			files = (
456
 			files = (
460
 				2DF0FFEE2056DD460020B375 /* libReact.a in Frameworks */,
457
 				2DF0FFEE2056DD460020B375 /* libReact.a in Frameworks */,
461
-				4086AF4EA873C2D50131464F /* libPods-simpleDemo-tvOSTests.a in Frameworks */,
458
+				D899073F3898E08F36D2FAD2 /* libPods-simpleDemo-tvOSTests.a in Frameworks */,
462
 			);
459
 			);
463
 			runOnlyForDeploymentPostprocessing = 0;
460
 			runOnlyForDeploymentPostprocessing = 0;
464
 		};
461
 		};
524
 			name = "Supporting Files";
521
 			name = "Supporting Files";
525
 			sourceTree = "<group>";
522
 			sourceTree = "<group>";
526
 		};
523
 		};
527
-		0842E3102206D244003875AC /* Recovered References */ = {
524
+		0835F32122113DBB00D06B62 /* Products */ = {
528
 			isa = PBXGroup;
525
 			isa = PBXGroup;
529
 			children = (
526
 			children = (
530
-				8B9F98204ACA40738ADB1B26 /* libRCTAgora.a */,
527
+				0835F32522113DBB00D06B62 /* libRCTAgora.a */,
531
 			);
528
 			);
532
-			name = "Recovered References";
529
+			name = Products;
533
 			sourceTree = "<group>";
530
 			sourceTree = "<group>";
534
 		};
531
 		};
535
-		0842E33E2206D244003875AC /* Products */ = {
532
+		0842E3102206D244003875AC /* Recovered References */ = {
536
 			isa = PBXGroup;
533
 			isa = PBXGroup;
537
 			children = (
534
 			children = (
538
-				0842E3422206D245003875AC /* libRCTAgora.a */,
539
 			);
535
 			);
540
-			name = Products;
536
+			name = "Recovered References";
541
 			sourceTree = "<group>";
537
 			sourceTree = "<group>";
542
 		};
538
 		};
543
 		139105B71AF99BAD00B5F7CC /* Products */ = {
539
 		139105B71AF99BAD00B5F7CC /* Products */ = {
614
 				ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
610
 				ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
615
 				ED2971642150620600B7C4FE /* JavaScriptCore.framework */,
611
 				ED2971642150620600B7C4FE /* JavaScriptCore.framework */,
616
 				2D16E6891FA4F8E400B85C8A /* libReact.a */,
612
 				2D16E6891FA4F8E400B85C8A /* libReact.a */,
617
-				ABDB6D24F1D1E9BBB9BE0147 /* libPods-simpleDemo.a */,
618
-				021402B39A761565305CBE44 /* libPods-simpleDemo-tvOS.a */,
619
-				07FD1913E615AEBFC3940FDC /* libPods-simpleDemo-tvOSTests.a */,
620
-				E8C5512D7AE6DF802B22A14C /* libPods-simpleDemoTests.a */,
613
+				5C9C186FCB90BE59A498E388 /* libPods-simpleDemo.a */,
614
+				C29A9B4FA0CBFCB2AEAC456B /* libPods-simpleDemo-tvOS.a */,
615
+				45848698D81201AE2B62BBC9 /* libPods-simpleDemo-tvOSTests.a */,
616
+				F00ACB437198E85C3CA8C909 /* libPods-simpleDemoTests.a */,
621
 			);
617
 			);
622
 			name = Frameworks;
618
 			name = Frameworks;
623
 			sourceTree = "<group>";
619
 			sourceTree = "<group>";
624
 		};
620
 		};
625
-		4703D98D5D154C759488B421 /* Pods */ = {
626
-			isa = PBXGroup;
627
-			children = (
628
-				A5782448EE30AD496E22F402 /* Pods-simpleDemo.debug.xcconfig */,
629
-				8C859670831DE00C89A5E486 /* Pods-simpleDemo.release.xcconfig */,
630
-				0DB04D9AEAA74EF6607A82A9 /* Pods-simpleDemo-tvOS.debug.xcconfig */,
631
-				C8B44CB320F35679C035C147 /* Pods-simpleDemo-tvOS.release.xcconfig */,
632
-				B835BA3CB4E5C940B624A18B /* Pods-simpleDemo-tvOSTests.debug.xcconfig */,
633
-				70A91D90042C89CC6EF0E8CD /* Pods-simpleDemo-tvOSTests.release.xcconfig */,
634
-				8DD8116E964676CE1B43C594 /* Pods-simpleDemoTests.debug.xcconfig */,
635
-				5B69BB0F0278983EB91EFB36 /* Pods-simpleDemoTests.release.xcconfig */,
636
-			);
637
-			name = Pods;
638
-			sourceTree = "<group>";
639
-		};
640
 		5E91572E1DD0AC6500FF2AA8 /* Products */ = {
621
 		5E91572E1DD0AC6500FF2AA8 /* Products */ = {
641
 			isa = PBXGroup;
622
 			isa = PBXGroup;
642
 			children = (
623
 			children = (
658
 		832341AE1AAA6A7D00B99B32 /* Libraries */ = {
639
 		832341AE1AAA6A7D00B99B32 /* Libraries */ = {
659
 			isa = PBXGroup;
640
 			isa = PBXGroup;
660
 			children = (
641
 			children = (
642
+				0835F32022113DBB00D06B62 /* RCTAgora.xcodeproj */,
661
 				5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */,
643
 				5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */,
662
 				146833FF1AC3E56700842450 /* React.xcodeproj */,
644
 				146833FF1AC3E56700842450 /* React.xcodeproj */,
663
 				00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */,
645
 				00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */,
670
 				832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */,
652
 				832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */,
671
 				00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
653
 				00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
672
 				139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
654
 				139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
673
-				CA9AD93325024B3384E0F566 /* RCTAgora.xcodeproj */,
674
 			);
655
 			);
675
 			name = Libraries;
656
 			name = Libraries;
676
 			sourceTree = "<group>";
657
 			sourceTree = "<group>";
693
 				83CBBA001A601CBA00E9B192 /* Products */,
674
 				83CBBA001A601CBA00E9B192 /* Products */,
694
 				2D16E6871FA4F8E400B85C8A /* Frameworks */,
675
 				2D16E6871FA4F8E400B85C8A /* Frameworks */,
695
 				0842E3102206D244003875AC /* Recovered References */,
676
 				0842E3102206D244003875AC /* Recovered References */,
696
-				4703D98D5D154C759488B421 /* Pods */,
677
+				92B2639AF6824F9FB78D2D98 /* Pods */,
697
 			);
678
 			);
698
 			indentWidth = 2;
679
 			indentWidth = 2;
699
 			sourceTree = "<group>";
680
 			sourceTree = "<group>";
711
 			name = Products;
692
 			name = Products;
712
 			sourceTree = "<group>";
693
 			sourceTree = "<group>";
713
 		};
694
 		};
695
+		92B2639AF6824F9FB78D2D98 /* Pods */ = {
696
+			isa = PBXGroup;
697
+			children = (
698
+				C246F6B5A5B225491EE41834 /* Pods-simpleDemo.debug.xcconfig */,
699
+				BA1D76D22058F0FE11245706 /* Pods-simpleDemo.release.xcconfig */,
700
+				F5A5F433C9A120BCBAB88C30 /* Pods-simpleDemo-tvOS.debug.xcconfig */,
701
+				B1F8F74BA7E4A893B45EBA14 /* Pods-simpleDemo-tvOS.release.xcconfig */,
702
+				FE09FB8163CC564FE6E1A0D1 /* Pods-simpleDemo-tvOSTests.debug.xcconfig */,
703
+				C6621048A1D76D31934A4971 /* Pods-simpleDemo-tvOSTests.release.xcconfig */,
704
+				0A0E55F5895DC7A7CD825A1B /* Pods-simpleDemoTests.debug.xcconfig */,
705
+				B4BEA34A2BE6170D8015E6E6 /* Pods-simpleDemoTests.release.xcconfig */,
706
+			);
707
+			name = Pods;
708
+			sourceTree = "<group>";
709
+		};
714
 		ADBDB9201DFEBF0600ED6528 /* Products */ = {
710
 		ADBDB9201DFEBF0600ED6528 /* Products */ = {
715
 			isa = PBXGroup;
711
 			isa = PBXGroup;
716
 			children = (
712
 			children = (
727
 			isa = PBXNativeTarget;
723
 			isa = PBXNativeTarget;
728
 			buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "simpleDemoTests" */;
724
 			buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "simpleDemoTests" */;
729
 			buildPhases = (
725
 			buildPhases = (
730
-				3FFC5D425E3DF3194460D800 /* [CP] Check Pods Manifest.lock */,
726
+				80B4FF9FD140311F9367E567 /* [CP] Check Pods Manifest.lock */,
731
 				00E356EA1AD99517003FC87E /* Sources */,
727
 				00E356EA1AD99517003FC87E /* Sources */,
732
 				00E356EB1AD99517003FC87E /* Frameworks */,
728
 				00E356EB1AD99517003FC87E /* Frameworks */,
733
 				00E356EC1AD99517003FC87E /* Resources */,
729
 				00E356EC1AD99517003FC87E /* Resources */,
746
 			isa = PBXNativeTarget;
742
 			isa = PBXNativeTarget;
747
 			buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "simpleDemo" */;
743
 			buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "simpleDemo" */;
748
 			buildPhases = (
744
 			buildPhases = (
749
-				8A8AC2B3E04BA4DFC465A578 /* [CP] Check Pods Manifest.lock */,
745
+				6199F491670B1F294BE7D6F9 /* [CP] Check Pods Manifest.lock */,
750
 				13B07F871A680F5B00A75B9A /* Sources */,
746
 				13B07F871A680F5B00A75B9A /* Sources */,
751
 				13B07F8C1A680F5B00A75B9A /* Frameworks */,
747
 				13B07F8C1A680F5B00A75B9A /* Frameworks */,
752
 				13B07F8E1A680F5B00A75B9A /* Resources */,
748
 				13B07F8E1A680F5B00A75B9A /* Resources */,
765
 			isa = PBXNativeTarget;
761
 			isa = PBXNativeTarget;
766
 			buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "simpleDemo-tvOS" */;
762
 			buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "simpleDemo-tvOS" */;
767
 			buildPhases = (
763
 			buildPhases = (
768
-				D54C70C54B42A6AFA965C0B1 /* [CP] Check Pods Manifest.lock */,
764
+				6D121135C9FF54DFB7ACAC38 /* [CP] Check Pods Manifest.lock */,
769
 				2D02E4771E0B4A5D006451C7 /* Sources */,
765
 				2D02E4771E0B4A5D006451C7 /* Sources */,
770
 				2D02E4781E0B4A5D006451C7 /* Frameworks */,
766
 				2D02E4781E0B4A5D006451C7 /* Frameworks */,
771
 				2D02E4791E0B4A5D006451C7 /* Resources */,
767
 				2D02E4791E0B4A5D006451C7 /* Resources */,
784
 			isa = PBXNativeTarget;
780
 			isa = PBXNativeTarget;
785
 			buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "simpleDemo-tvOSTests" */;
781
 			buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "simpleDemo-tvOSTests" */;
786
 			buildPhases = (
782
 			buildPhases = (
787
-				90EB8623CEFC3A44104B7505 /* [CP] Check Pods Manifest.lock */,
783
+				18B73F289B3D5EACD1288561 /* [CP] Check Pods Manifest.lock */,
788
 				2D02E48C1E0B4A5D006451C7 /* Sources */,
784
 				2D02E48C1E0B4A5D006451C7 /* Sources */,
789
 				2D02E48D1E0B4A5D006451C7 /* Frameworks */,
785
 				2D02E48D1E0B4A5D006451C7 /* Frameworks */,
790
 				2D02E48E1E0B4A5D006451C7 /* Resources */,
786
 				2D02E48E1E0B4A5D006451C7 /* Resources */,
810
 				TargetAttributes = {
806
 				TargetAttributes = {
811
 					00E356ED1AD99517003FC87E = {
807
 					00E356ED1AD99517003FC87E = {
812
 						CreatedOnToolsVersion = 6.2;
808
 						CreatedOnToolsVersion = 6.2;
809
+						DevelopmentTeam = 56968F5P8G;
813
 						TestTargetID = 13B07F861A680F5B00A75B9A;
810
 						TestTargetID = 13B07F861A680F5B00A75B9A;
814
 					};
811
 					};
812
+					13B07F861A680F5B00A75B9A = {
813
+						DevelopmentTeam = 56968F5P8G;
814
+						SystemCapabilities = {
815
+							com.apple.BackgroundModes = {
816
+								enabled = 1;
817
+							};
818
+						};
819
+					};
815
 					2D02E47A1E0B4A5D006451C7 = {
820
 					2D02E47A1E0B4A5D006451C7 = {
816
 						CreatedOnToolsVersion = 8.2.1;
821
 						CreatedOnToolsVersion = 8.2.1;
817
 						ProvisioningStyle = Automatic;
822
 						ProvisioningStyle = Automatic;
840
 					ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */;
845
 					ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */;
841
 				},
846
 				},
842
 				{
847
 				{
843
-					ProductGroup = 0842E33E2206D244003875AC /* Products */;
844
-					ProjectRef = CA9AD93325024B3384E0F566 /* RCTAgora.xcodeproj */;
848
+					ProductGroup = 0835F32122113DBB00D06B62 /* Products */;
849
+					ProjectRef = 0835F32022113DBB00D06B62 /* RCTAgora.xcodeproj */;
845
 				},
850
 				},
846
 				{
851
 				{
847
 					ProductGroup = 5E91572E1DD0AC6500FF2AA8 /* Products */;
852
 					ProductGroup = 5E91572E1DD0AC6500FF2AA8 /* Products */;
934
 			remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */;
939
 			remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */;
935
 			sourceTree = BUILT_PRODUCTS_DIR;
940
 			sourceTree = BUILT_PRODUCTS_DIR;
936
 		};
941
 		};
942
+		0835F32522113DBB00D06B62 /* libRCTAgora.a */ = {
943
+			isa = PBXReferenceProxy;
944
+			fileType = archive.ar;
945
+			path = libRCTAgora.a;
946
+			remoteRef = 0835F32422113DBB00D06B62 /* PBXContainerItemProxy */;
947
+			sourceTree = BUILT_PRODUCTS_DIR;
948
+		};
937
 		0842E3372206D244003875AC /* libjsi.a */ = {
949
 		0842E3372206D244003875AC /* libjsi.a */ = {
938
 			isa = PBXReferenceProxy;
950
 			isa = PBXReferenceProxy;
939
 			fileType = archive.ar;
951
 			fileType = archive.ar;
962
 			remoteRef = 0842E33C2206D244003875AC /* PBXContainerItemProxy */;
974
 			remoteRef = 0842E33C2206D244003875AC /* PBXContainerItemProxy */;
963
 			sourceTree = BUILT_PRODUCTS_DIR;
975
 			sourceTree = BUILT_PRODUCTS_DIR;
964
 		};
976
 		};
965
-		0842E3422206D245003875AC /* libRCTAgora.a */ = {
966
-			isa = PBXReferenceProxy;
967
-			fileType = archive.ar;
968
-			path = libRCTAgora.a;
969
-			remoteRef = 0842E3412206D245003875AC /* PBXContainerItemProxy */;
970
-			sourceTree = BUILT_PRODUCTS_DIR;
971
-		};
972
 		139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = {
977
 		139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = {
973
 			isa = PBXReferenceProxy;
978
 			isa = PBXReferenceProxy;
974
 			fileType = archive.ar;
979
 			fileType = archive.ar;
1214
 			);
1219
 			);
1215
 			runOnlyForDeploymentPostprocessing = 0;
1220
 			runOnlyForDeploymentPostprocessing = 0;
1216
 			shellPath = /bin/sh;
1221
 			shellPath = /bin/sh;
1217
-			shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
1222
+			shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
1218
 		};
1223
 		};
1219
-		2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = {
1224
+		18B73F289B3D5EACD1288561 /* [CP] Check Pods Manifest.lock */ = {
1220
 			isa = PBXShellScriptBuildPhase;
1225
 			isa = PBXShellScriptBuildPhase;
1221
 			buildActionMask = 2147483647;
1226
 			buildActionMask = 2147483647;
1222
 			files = (
1227
 			files = (
1223
 			);
1228
 			);
1229
+			inputFileListPaths = (
1230
+			);
1224
 			inputPaths = (
1231
 			inputPaths = (
1232
+				"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
1233
+				"${PODS_ROOT}/Manifest.lock",
1234
+			);
1235
+			name = "[CP] Check Pods Manifest.lock";
1236
+			outputFileListPaths = (
1225
 			);
1237
 			);
1226
-			name = "Bundle React Native Code And Images";
1227
 			outputPaths = (
1238
 			outputPaths = (
1239
+				"$(DERIVED_FILE_DIR)/Pods-simpleDemo-tvOSTests-checkManifestLockResult.txt",
1228
 			);
1240
 			);
1229
 			runOnlyForDeploymentPostprocessing = 0;
1241
 			runOnlyForDeploymentPostprocessing = 0;
1230
 			shellPath = /bin/sh;
1242
 			shellPath = /bin/sh;
1231
-			shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
1243
+			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
1244
+			showEnvVarsInLog = 0;
1232
 		};
1245
 		};
1233
-		3FFC5D425E3DF3194460D800 /* [CP] Check Pods Manifest.lock */ = {
1246
+		2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = {
1234
 			isa = PBXShellScriptBuildPhase;
1247
 			isa = PBXShellScriptBuildPhase;
1235
 			buildActionMask = 2147483647;
1248
 			buildActionMask = 2147483647;
1236
 			files = (
1249
 			files = (
1237
 			);
1250
 			);
1238
-			inputFileListPaths = (
1239
-			);
1240
 			inputPaths = (
1251
 			inputPaths = (
1241
-				"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
1242
-				"${PODS_ROOT}/Manifest.lock",
1243
-			);
1244
-			name = "[CP] Check Pods Manifest.lock";
1245
-			outputFileListPaths = (
1246
 			);
1252
 			);
1253
+			name = "Bundle React Native Code And Images";
1247
 			outputPaths = (
1254
 			outputPaths = (
1248
-				"$(DERIVED_FILE_DIR)/Pods-simpleDemoTests-checkManifestLockResult.txt",
1249
 			);
1255
 			);
1250
 			runOnlyForDeploymentPostprocessing = 0;
1256
 			runOnlyForDeploymentPostprocessing = 0;
1251
 			shellPath = /bin/sh;
1257
 			shellPath = /bin/sh;
1252
-			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
1253
-			showEnvVarsInLog = 0;
1258
+			shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
1254
 		};
1259
 		};
1255
-		8A8AC2B3E04BA4DFC465A578 /* [CP] Check Pods Manifest.lock */ = {
1260
+		6199F491670B1F294BE7D6F9 /* [CP] Check Pods Manifest.lock */ = {
1256
 			isa = PBXShellScriptBuildPhase;
1261
 			isa = PBXShellScriptBuildPhase;
1257
 			buildActionMask = 2147483647;
1262
 			buildActionMask = 2147483647;
1258
 			files = (
1263
 			files = (
1274
 			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
1279
 			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
1275
 			showEnvVarsInLog = 0;
1280
 			showEnvVarsInLog = 0;
1276
 		};
1281
 		};
1277
-		90EB8623CEFC3A44104B7505 /* [CP] Check Pods Manifest.lock */ = {
1282
+		6D121135C9FF54DFB7ACAC38 /* [CP] Check Pods Manifest.lock */ = {
1278
 			isa = PBXShellScriptBuildPhase;
1283
 			isa = PBXShellScriptBuildPhase;
1279
 			buildActionMask = 2147483647;
1284
 			buildActionMask = 2147483647;
1280
 			files = (
1285
 			files = (
1289
 			outputFileListPaths = (
1294
 			outputFileListPaths = (
1290
 			);
1295
 			);
1291
 			outputPaths = (
1296
 			outputPaths = (
1292
-				"$(DERIVED_FILE_DIR)/Pods-simpleDemo-tvOSTests-checkManifestLockResult.txt",
1297
+				"$(DERIVED_FILE_DIR)/Pods-simpleDemo-tvOS-checkManifestLockResult.txt",
1293
 			);
1298
 			);
1294
 			runOnlyForDeploymentPostprocessing = 0;
1299
 			runOnlyForDeploymentPostprocessing = 0;
1295
 			shellPath = /bin/sh;
1300
 			shellPath = /bin/sh;
1296
 			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
1301
 			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
1297
 			showEnvVarsInLog = 0;
1302
 			showEnvVarsInLog = 0;
1298
 		};
1303
 		};
1299
-		D54C70C54B42A6AFA965C0B1 /* [CP] Check Pods Manifest.lock */ = {
1304
+		80B4FF9FD140311F9367E567 /* [CP] Check Pods Manifest.lock */ = {
1300
 			isa = PBXShellScriptBuildPhase;
1305
 			isa = PBXShellScriptBuildPhase;
1301
 			buildActionMask = 2147483647;
1306
 			buildActionMask = 2147483647;
1302
 			files = (
1307
 			files = (
1311
 			outputFileListPaths = (
1316
 			outputFileListPaths = (
1312
 			);
1317
 			);
1313
 			outputPaths = (
1318
 			outputPaths = (
1314
-				"$(DERIVED_FILE_DIR)/Pods-simpleDemo-tvOS-checkManifestLockResult.txt",
1319
+				"$(DERIVED_FILE_DIR)/Pods-simpleDemoTests-checkManifestLockResult.txt",
1315
 			);
1320
 			);
1316
 			runOnlyForDeploymentPostprocessing = 0;
1321
 			runOnlyForDeploymentPostprocessing = 0;
1317
 			shellPath = /bin/sh;
1322
 			shellPath = /bin/sh;
1385
 /* Begin XCBuildConfiguration section */
1390
 /* Begin XCBuildConfiguration section */
1386
 		00E356F61AD99517003FC87E /* Debug */ = {
1391
 		00E356F61AD99517003FC87E /* Debug */ = {
1387
 			isa = XCBuildConfiguration;
1392
 			isa = XCBuildConfiguration;
1388
-			baseConfigurationReference = 8DD8116E964676CE1B43C594 /* Pods-simpleDemoTests.debug.xcconfig */;
1393
+			baseConfigurationReference = 0A0E55F5895DC7A7CD825A1B /* Pods-simpleDemoTests.debug.xcconfig */;
1389
 			buildSettings = {
1394
 			buildSettings = {
1390
 				BUNDLE_LOADER = "$(TEST_HOST)";
1395
 				BUNDLE_LOADER = "$(TEST_HOST)";
1396
+				DEVELOPMENT_TEAM = 56968F5P8G;
1391
 				GCC_PREPROCESSOR_DEFINITIONS = (
1397
 				GCC_PREPROCESSOR_DEFINITIONS = (
1392
 					"DEBUG=1",
1398
 					"DEBUG=1",
1393
 					"$(inherited)",
1399
 					"$(inherited)",
1394
 				);
1400
 				);
1395
-				HEADER_SEARCH_PATHS = (
1396
-					"$(inherited)",
1397
-					"$(SRCROOT)/../node_modules/react-native-agora/ios/RCTAgora/**",
1398
-				);
1401
+				HEADER_SEARCH_PATHS = "$(inherited)";
1399
 				INFOPLIST_FILE = simpleDemoTests/Info.plist;
1402
 				INFOPLIST_FILE = simpleDemoTests/Info.plist;
1400
 				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
1403
 				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
1401
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1404
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1402
-				LIBRARY_SEARCH_PATHS = (
1403
-					"$(inherited)",
1404
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1405
-				);
1405
+				LIBRARY_SEARCH_PATHS = "$(inherited)";
1406
 				OTHER_LDFLAGS = (
1406
 				OTHER_LDFLAGS = (
1407
 					"-ObjC",
1407
 					"-ObjC",
1408
 					"-lc++",
1408
 					"-lc++",
1415
 		};
1415
 		};
1416
 		00E356F71AD99517003FC87E /* Release */ = {
1416
 		00E356F71AD99517003FC87E /* Release */ = {
1417
 			isa = XCBuildConfiguration;
1417
 			isa = XCBuildConfiguration;
1418
-			baseConfigurationReference = 5B69BB0F0278983EB91EFB36 /* Pods-simpleDemoTests.release.xcconfig */;
1418
+			baseConfigurationReference = B4BEA34A2BE6170D8015E6E6 /* Pods-simpleDemoTests.release.xcconfig */;
1419
 			buildSettings = {
1419
 			buildSettings = {
1420
 				BUNDLE_LOADER = "$(TEST_HOST)";
1420
 				BUNDLE_LOADER = "$(TEST_HOST)";
1421
 				COPY_PHASE_STRIP = NO;
1421
 				COPY_PHASE_STRIP = NO;
1422
-				HEADER_SEARCH_PATHS = (
1423
-					"$(inherited)",
1424
-					"$(SRCROOT)/../node_modules/react-native-agora/ios/RCTAgora/**",
1425
-				);
1422
+				DEVELOPMENT_TEAM = 56968F5P8G;
1423
+				HEADER_SEARCH_PATHS = "$(inherited)";
1426
 				INFOPLIST_FILE = simpleDemoTests/Info.plist;
1424
 				INFOPLIST_FILE = simpleDemoTests/Info.plist;
1427
 				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
1425
 				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
1428
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1426
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1429
-				LIBRARY_SEARCH_PATHS = (
1430
-					"$(inherited)",
1431
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1432
-				);
1427
+				LIBRARY_SEARCH_PATHS = "$(inherited)";
1433
 				OTHER_LDFLAGS = (
1428
 				OTHER_LDFLAGS = (
1434
 					"-ObjC",
1429
 					"-ObjC",
1435
 					"-lc++",
1430
 					"-lc++",
1442
 		};
1437
 		};
1443
 		13B07F941A680F5B00A75B9A /* Debug */ = {
1438
 		13B07F941A680F5B00A75B9A /* Debug */ = {
1444
 			isa = XCBuildConfiguration;
1439
 			isa = XCBuildConfiguration;
1445
-			baseConfigurationReference = A5782448EE30AD496E22F402 /* Pods-simpleDemo.debug.xcconfig */;
1440
+			baseConfigurationReference = C246F6B5A5B225491EE41834 /* Pods-simpleDemo.debug.xcconfig */;
1446
 			buildSettings = {
1441
 			buildSettings = {
1447
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1442
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1448
 				CURRENT_PROJECT_VERSION = 1;
1443
 				CURRENT_PROJECT_VERSION = 1;
1449
 				DEAD_CODE_STRIPPING = NO;
1444
 				DEAD_CODE_STRIPPING = NO;
1445
+				DEVELOPMENT_TEAM = 56968F5P8G;
1450
 				FRAMEWORK_SEARCH_PATHS = (
1446
 				FRAMEWORK_SEARCH_PATHS = (
1451
 					"$(inherited)",
1447
 					"$(inherited)",
1452
-					"$(SRCROOT)/../node_modules/react-native-agora/ios/RCTAgora/libs",
1453
-					"$(SRCROOT)/Pods/AgoraRtcEngine_iOS",
1448
+					"$(SRCROOT)/../node_modules/react-native-agora/ios/**",
1454
 				);
1449
 				);
1455
 				HEADER_SEARCH_PATHS = (
1450
 				HEADER_SEARCH_PATHS = (
1456
 					"$(inherited)",
1451
 					"$(inherited)",
1457
-					"$(SRCROOT)/../node_modules/react-native-agora/ios/RCTAgora/libs/**",
1452
+					"$(SRCROOT)/../node_modules/react-native-agora/ios/**",
1458
 				);
1453
 				);
1459
 				INFOPLIST_FILE = simpleDemo/Info.plist;
1454
 				INFOPLIST_FILE = simpleDemo/Info.plist;
1460
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1455
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1461
 				LIBRARY_SEARCH_PATHS = (
1456
 				LIBRARY_SEARCH_PATHS = (
1462
 					"$(inherited)",
1457
 					"$(inherited)",
1463
-					"$(SRCROOT)/../node_modules/react-native-agora/ios/RCTAgora/libs",
1458
+					"$(SRCROOT)/../node_modules/react-native-agora/ios/**",
1464
 				);
1459
 				);
1465
 				OTHER_LDFLAGS = (
1460
 				OTHER_LDFLAGS = (
1466
 					"$(inherited)",
1461
 					"$(inherited)",
1467
 					"-ObjC",
1462
 					"-ObjC",
1468
 					"-lc++",
1463
 					"-lc++",
1469
 				);
1464
 				);
1470
-				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
1465
+				PRODUCT_BUNDLE_IDENTIFIER = tori.mori.mobi;
1471
 				PRODUCT_NAME = simpleDemo;
1466
 				PRODUCT_NAME = simpleDemo;
1472
 				VERSIONING_SYSTEM = "apple-generic";
1467
 				VERSIONING_SYSTEM = "apple-generic";
1473
 			};
1468
 			};
1475
 		};
1470
 		};
1476
 		13B07F951A680F5B00A75B9A /* Release */ = {
1471
 		13B07F951A680F5B00A75B9A /* Release */ = {
1477
 			isa = XCBuildConfiguration;
1472
 			isa = XCBuildConfiguration;
1478
-			baseConfigurationReference = 8C859670831DE00C89A5E486 /* Pods-simpleDemo.release.xcconfig */;
1473
+			baseConfigurationReference = BA1D76D22058F0FE11245706 /* Pods-simpleDemo.release.xcconfig */;
1479
 			buildSettings = {
1474
 			buildSettings = {
1480
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1475
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1481
 				CURRENT_PROJECT_VERSION = 1;
1476
 				CURRENT_PROJECT_VERSION = 1;
1477
+				DEVELOPMENT_TEAM = 56968F5P8G;
1482
 				FRAMEWORK_SEARCH_PATHS = (
1478
 				FRAMEWORK_SEARCH_PATHS = (
1483
 					"$(inherited)",
1479
 					"$(inherited)",
1484
-					"$(SRCROOT)/../node_modules/react-native-agora/ios/RCTAgora/libs",
1485
-					"$(SRCROOT)/Pods/AgoraRtcEngine_iOS",
1480
+					"$(SRCROOT)/../node_modules/react-native-agora/ios/**",
1486
 				);
1481
 				);
1487
 				HEADER_SEARCH_PATHS = (
1482
 				HEADER_SEARCH_PATHS = (
1488
 					"$(inherited)",
1483
 					"$(inherited)",
1489
-					"$(SRCROOT)/../node_modules/react-native-agora/ios/RCTAgora/libs/**",
1484
+					"$(SRCROOT)/../node_modules/react-native-agora/ios/**",
1490
 				);
1485
 				);
1491
 				INFOPLIST_FILE = simpleDemo/Info.plist;
1486
 				INFOPLIST_FILE = simpleDemo/Info.plist;
1492
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1487
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1493
 				LIBRARY_SEARCH_PATHS = (
1488
 				LIBRARY_SEARCH_PATHS = (
1494
 					"$(inherited)",
1489
 					"$(inherited)",
1495
-					"$(SRCROOT)/../node_modules/react-native-agora/ios/RCTAgora/libs",
1490
+					"$(SRCROOT)/../node_modules/react-native-agora/ios/**",
1496
 				);
1491
 				);
1497
 				OTHER_LDFLAGS = (
1492
 				OTHER_LDFLAGS = (
1498
 					"$(inherited)",
1493
 					"$(inherited)",
1499
 					"-ObjC",
1494
 					"-ObjC",
1500
 					"-lc++",
1495
 					"-lc++",
1501
 				);
1496
 				);
1502
-				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
1497
+				PRODUCT_BUNDLE_IDENTIFIER = tori.mori.mobi;
1503
 				PRODUCT_NAME = simpleDemo;
1498
 				PRODUCT_NAME = simpleDemo;
1504
 				VERSIONING_SYSTEM = "apple-generic";
1499
 				VERSIONING_SYSTEM = "apple-generic";
1505
 			};
1500
 			};
1507
 		};
1502
 		};
1508
 		2D02E4971E0B4A5E006451C7 /* Debug */ = {
1503
 		2D02E4971E0B4A5E006451C7 /* Debug */ = {
1509
 			isa = XCBuildConfiguration;
1504
 			isa = XCBuildConfiguration;
1510
-			baseConfigurationReference = 0DB04D9AEAA74EF6607A82A9 /* Pods-simpleDemo-tvOS.debug.xcconfig */;
1505
+			baseConfigurationReference = F5A5F433C9A120BCBAB88C30 /* Pods-simpleDemo-tvOS.debug.xcconfig */;
1511
 			buildSettings = {
1506
 			buildSettings = {
1512
 				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
1507
 				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
1513
 				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
1508
 				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
1518
 				DEBUG_INFORMATION_FORMAT = dwarf;
1513
 				DEBUG_INFORMATION_FORMAT = dwarf;
1519
 				ENABLE_TESTABILITY = YES;
1514
 				ENABLE_TESTABILITY = YES;
1520
 				GCC_NO_COMMON_BLOCKS = YES;
1515
 				GCC_NO_COMMON_BLOCKS = YES;
1521
-				HEADER_SEARCH_PATHS = (
1522
-					"$(inherited)",
1523
-					"$(SRCROOT)/../node_modules/react-native-agora/ios/RCTAgora/**",
1524
-				);
1516
+				HEADER_SEARCH_PATHS = "$(inherited)";
1525
 				INFOPLIST_FILE = "simpleDemo-tvOS/Info.plist";
1517
 				INFOPLIST_FILE = "simpleDemo-tvOS/Info.plist";
1526
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1518
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1527
-				LIBRARY_SEARCH_PATHS = (
1528
-					"$(inherited)",
1529
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1530
-				);
1519
+				LIBRARY_SEARCH_PATHS = "$(inherited)";
1531
 				OTHER_LDFLAGS = (
1520
 				OTHER_LDFLAGS = (
1532
 					"-ObjC",
1521
 					"-ObjC",
1533
 					"-lc++",
1522
 					"-lc++",
1542
 		};
1531
 		};
1543
 		2D02E4981E0B4A5E006451C7 /* Release */ = {
1532
 		2D02E4981E0B4A5E006451C7 /* Release */ = {
1544
 			isa = XCBuildConfiguration;
1533
 			isa = XCBuildConfiguration;
1545
-			baseConfigurationReference = C8B44CB320F35679C035C147 /* Pods-simpleDemo-tvOS.release.xcconfig */;
1534
+			baseConfigurationReference = B1F8F74BA7E4A893B45EBA14 /* Pods-simpleDemo-tvOS.release.xcconfig */;
1546
 			buildSettings = {
1535
 			buildSettings = {
1547
 				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
1536
 				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
1548
 				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
1537
 				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
1553
 				COPY_PHASE_STRIP = NO;
1542
 				COPY_PHASE_STRIP = NO;
1554
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
1543
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
1555
 				GCC_NO_COMMON_BLOCKS = YES;
1544
 				GCC_NO_COMMON_BLOCKS = YES;
1556
-				HEADER_SEARCH_PATHS = (
1557
-					"$(inherited)",
1558
-					"$(SRCROOT)/../node_modules/react-native-agora/ios/RCTAgora/**",
1559
-				);
1545
+				HEADER_SEARCH_PATHS = "$(inherited)";
1560
 				INFOPLIST_FILE = "simpleDemo-tvOS/Info.plist";
1546
 				INFOPLIST_FILE = "simpleDemo-tvOS/Info.plist";
1561
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1547
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1562
-				LIBRARY_SEARCH_PATHS = (
1563
-					"$(inherited)",
1564
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1565
-				);
1548
+				LIBRARY_SEARCH_PATHS = "$(inherited)";
1566
 				OTHER_LDFLAGS = (
1549
 				OTHER_LDFLAGS = (
1567
 					"-ObjC",
1550
 					"-ObjC",
1568
 					"-lc++",
1551
 					"-lc++",
1577
 		};
1560
 		};
1578
 		2D02E4991E0B4A5E006451C7 /* Debug */ = {
1561
 		2D02E4991E0B4A5E006451C7 /* Debug */ = {
1579
 			isa = XCBuildConfiguration;
1562
 			isa = XCBuildConfiguration;
1580
-			baseConfigurationReference = B835BA3CB4E5C940B624A18B /* Pods-simpleDemo-tvOSTests.debug.xcconfig */;
1563
+			baseConfigurationReference = FE09FB8163CC564FE6E1A0D1 /* Pods-simpleDemo-tvOSTests.debug.xcconfig */;
1581
 			buildSettings = {
1564
 			buildSettings = {
1582
 				BUNDLE_LOADER = "$(TEST_HOST)";
1565
 				BUNDLE_LOADER = "$(TEST_HOST)";
1583
 				CLANG_ANALYZER_NONNULL = YES;
1566
 				CLANG_ANALYZER_NONNULL = YES;
1587
 				DEBUG_INFORMATION_FORMAT = dwarf;
1570
 				DEBUG_INFORMATION_FORMAT = dwarf;
1588
 				ENABLE_TESTABILITY = YES;
1571
 				ENABLE_TESTABILITY = YES;
1589
 				GCC_NO_COMMON_BLOCKS = YES;
1572
 				GCC_NO_COMMON_BLOCKS = YES;
1590
-				HEADER_SEARCH_PATHS = (
1591
-					"$(inherited)",
1592
-					"$(SRCROOT)/../node_modules/react-native-agora/ios/RCTAgora/**",
1593
-				);
1573
+				HEADER_SEARCH_PATHS = "$(inherited)";
1594
 				INFOPLIST_FILE = "simpleDemo-tvOSTests/Info.plist";
1574
 				INFOPLIST_FILE = "simpleDemo-tvOSTests/Info.plist";
1595
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1575
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1596
-				LIBRARY_SEARCH_PATHS = (
1597
-					"$(inherited)",
1598
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1599
-				);
1576
+				LIBRARY_SEARCH_PATHS = "$(inherited)";
1600
 				OTHER_LDFLAGS = (
1577
 				OTHER_LDFLAGS = (
1601
 					"-ObjC",
1578
 					"-ObjC",
1602
 					"-lc++",
1579
 					"-lc++",
1611
 		};
1588
 		};
1612
 		2D02E49A1E0B4A5E006451C7 /* Release */ = {
1589
 		2D02E49A1E0B4A5E006451C7 /* Release */ = {
1613
 			isa = XCBuildConfiguration;
1590
 			isa = XCBuildConfiguration;
1614
-			baseConfigurationReference = 70A91D90042C89CC6EF0E8CD /* Pods-simpleDemo-tvOSTests.release.xcconfig */;
1591
+			baseConfigurationReference = C6621048A1D76D31934A4971 /* Pods-simpleDemo-tvOSTests.release.xcconfig */;
1615
 			buildSettings = {
1592
 			buildSettings = {
1616
 				BUNDLE_LOADER = "$(TEST_HOST)";
1593
 				BUNDLE_LOADER = "$(TEST_HOST)";
1617
 				CLANG_ANALYZER_NONNULL = YES;
1594
 				CLANG_ANALYZER_NONNULL = YES;
1621
 				COPY_PHASE_STRIP = NO;
1598
 				COPY_PHASE_STRIP = NO;
1622
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
1599
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
1623
 				GCC_NO_COMMON_BLOCKS = YES;
1600
 				GCC_NO_COMMON_BLOCKS = YES;
1624
-				HEADER_SEARCH_PATHS = (
1625
-					"$(inherited)",
1626
-					"$(SRCROOT)/../node_modules/react-native-agora/ios/RCTAgora/**",
1627
-				);
1601
+				HEADER_SEARCH_PATHS = "$(inherited)";
1628
 				INFOPLIST_FILE = "simpleDemo-tvOSTests/Info.plist";
1602
 				INFOPLIST_FILE = "simpleDemo-tvOSTests/Info.plist";
1629
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1603
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1630
-				LIBRARY_SEARCH_PATHS = (
1631
-					"$(inherited)",
1632
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1633
-				);
1604
+				LIBRARY_SEARCH_PATHS = "$(inherited)";
1634
 				OTHER_LDFLAGS = (
1605
 				OTHER_LDFLAGS = (
1635
 					"-ObjC",
1606
 					"-ObjC",
1636
 					"-lc++",
1607
 					"-lc++",

BIN
samples/simpleDemo/ios/simpleDemo.xcodeproj/project.xcworkspace/xcuserdata/ly.xcuserdatad/UserInterfaceState.xcuserstate Voir le fichier


+ 1
- 1
samples/simpleDemo/ios/simpleDemo.xcodeproj/xcshareddata/xcschemes/simpleDemo-tvOS.xcscheme Voir le fichier

1
 <?xml version="1.0" encoding="UTF-8"?>
1
 <?xml version="1.0" encoding="UTF-8"?>
2
 <Scheme
2
 <Scheme
3
-   LastUpgradeVersion = "0940"
3
+   LastUpgradeVersion = "1010"
4
    version = "1.3">
4
    version = "1.3">
5
    <BuildAction
5
    <BuildAction
6
       parallelizeBuildables = "NO"
6
       parallelizeBuildables = "NO"

+ 1
- 1
samples/simpleDemo/ios/simpleDemo.xcodeproj/xcshareddata/xcschemes/simpleDemo.xcscheme Voir le fichier

1
 <?xml version="1.0" encoding="UTF-8"?>
1
 <?xml version="1.0" encoding="UTF-8"?>
2
 <Scheme
2
 <Scheme
3
-   LastUpgradeVersion = "0940"
3
+   LastUpgradeVersion = "1010"
4
    version = "1.3">
4
    version = "1.3">
5
    <BuildAction
5
    <BuildAction
6
       parallelizeBuildables = "NO"
6
       parallelizeBuildables = "NO"

+ 15
- 0
samples/simpleDemo/ios/simpleDemo/Images.xcassets/AppIcon.appiconset/Contents.json Voir le fichier

1
 {
1
 {
2
   "images" : [
2
   "images" : [
3
+    {
4
+      "idiom" : "iphone",
5
+      "size" : "20x20",
6
+      "scale" : "2x"
7
+    },
8
+    {
9
+      "idiom" : "iphone",
10
+      "size" : "20x20",
11
+      "scale" : "3x"
12
+    },
3
     {
13
     {
4
       "idiom" : "iphone",
14
       "idiom" : "iphone",
5
       "size" : "29x29",
15
       "size" : "29x29",
29
       "idiom" : "iphone",
39
       "idiom" : "iphone",
30
       "size" : "60x60",
40
       "size" : "60x60",
31
       "scale" : "3x"
41
       "scale" : "3x"
42
+    },
43
+    {
44
+      "idiom" : "ios-marketing",
45
+      "size" : "1024x1024",
46
+      "scale" : "1x"
32
     }
47
     }
33
   ],
48
   ],
34
   "info" : {
49
   "info" : {

+ 21
- 16
samples/simpleDemo/ios/simpleDemo/Info.plist Voir le fichier

24
 	<string>1</string>
24
 	<string>1</string>
25
 	<key>LSRequiresIPhoneOS</key>
25
 	<key>LSRequiresIPhoneOS</key>
26
 	<true/>
26
 	<true/>
27
+	<key>NSAppTransportSecurity</key>
28
+	<dict>
29
+		<key>NSAllowsArbitraryLoads</key>
30
+		<true/>
31
+		<key>NSExceptionDomains</key>
32
+		<dict>
33
+			<key>localhost</key>
34
+			<dict>
35
+				<key>NSExceptionAllowsInsecureHTTPLoads</key>
36
+				<true/>
37
+			</dict>
38
+		</dict>
39
+	</dict>
27
 	<key>NSLocationWhenInUseUsageDescription</key>
40
 	<key>NSLocationWhenInUseUsageDescription</key>
28
 	<string></string>
41
 	<string></string>
42
+	<key>UIBackgroundModes</key>
43
+	<array>
44
+		<string>audio</string>
45
+	</array>
29
 	<key>UILaunchStoryboardName</key>
46
 	<key>UILaunchStoryboardName</key>
30
 	<string>LaunchScreen</string>
47
 	<string>LaunchScreen</string>
31
 	<key>UIRequiredDeviceCapabilities</key>
48
 	<key>UIRequiredDeviceCapabilities</key>
40
 	</array>
57
 	</array>
41
 	<key>UIViewControllerBasedStatusBarAppearance</key>
58
 	<key>UIViewControllerBasedStatusBarAppearance</key>
42
 	<false/>
59
 	<false/>
43
-	<key>NSLocationWhenInUseUsageDescription</key>
44
-	<string></string>
45
-	<key>NSAppTransportSecurity</key>
46
-	<!--See http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/ -->
47
-	<dict>
48
-    <key>NSAllowsArbitraryLoads</key>
49
-    <true/>
50
-		<key>NSExceptionDomains</key>
51
-		<dict>
52
-			<key>localhost</key>
53
-			<dict>
54
-				<key>NSExceptionAllowsInsecureHTTPLoads</key>
55
-				<true/>
56
-			</dict>
57
-		</dict>
58
-	</dict>
60
+	<key>NSCameraUsageDescription</key>
61
+	<string>use camera for avc</string>
62
+	<key>NSMicrophoneUsageDescription</key>
63
+	<string>use microphone for avc sdk</string>
59
 </dict>
64
 </dict>
60
 </plist>
65
 </plist>

+ 1
- 1
samples/simpleDemo/utils.js Voir le fichier

1
-export const APPID = 'Your Agora APP_ID'; //'Your Agora APP_ID'
1
+export const APPID = 'Your Agora APP_ID';
2
 // iPhoneX Xs
2
 // iPhoneX Xs
3
 const X_WIDTH = 375;
3
 const X_WIDTH = 375;
4
 const X_HEIGHT = 812;
4
 const X_HEIGHT = 812;

+ 182
- 189
samples/simpleDemo/yarn.lock Voir le fichier

30
     source-map "^0.5.0"
30
     source-map "^0.5.0"
31
 
31
 
32
 "@babel/generator@^7.0.0", "@babel/generator@^7.2.2":
32
 "@babel/generator@^7.0.0", "@babel/generator@^7.2.2":
33
-  version "7.3.0"
34
-  resolved "http://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.3.0.tgz#f663838cd7b542366de3aa608a657b8ccb2a99eb"
35
-  integrity sha1-9mODjNe1QjZt46pgimV7jMsqmes=
33
+  version "7.3.2"
34
+  resolved "http://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.3.2.tgz#fff31a7b2f2f3dad23ef8e01be45b0d5c2fc0132"
35
+  integrity sha1-//Maey8vPa0j744BvkWw1cL8ATI=
36
   dependencies:
36
   dependencies:
37
-    "@babel/types" "^7.3.0"
37
+    "@babel/types" "^7.3.2"
38
     jsesc "^2.5.1"
38
     jsesc "^2.5.1"
39
     lodash "^4.17.10"
39
     lodash "^4.17.10"
40
     source-map "^0.5.0"
40
     source-map "^0.5.0"
73
     "@babel/types" "^7.0.0"
73
     "@babel/types" "^7.0.0"
74
 
74
 
75
 "@babel/helper-create-class-features-plugin@^7.3.0":
75
 "@babel/helper-create-class-features-plugin@^7.3.0":
76
-  version "7.3.0"
77
-  resolved "http://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.3.0.tgz#2b01a81b3adc2b1287f9ee193688ef8dc71e718f"
78
-  integrity sha1-KwGoGzrcKxKH+e4ZNojvjccecY8=
76
+  version "7.3.2"
77
+  resolved "http://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.3.2.tgz#ba1685603eb1c9f2f51c9106d5180135c163fe73"
78
+  integrity sha1-uhaFYD6xyfL1HJEG1RgBNcFj/nM=
79
   dependencies:
79
   dependencies:
80
     "@babel/helper-function-name" "^7.1.0"
80
     "@babel/helper-function-name" "^7.1.0"
81
     "@babel/helper-member-expression-to-functions" "^7.0.0"
81
     "@babel/helper-member-expression-to-functions" "^7.0.0"
233
     js-tokens "^4.0.0"
233
     js-tokens "^4.0.0"
234
 
234
 
235
 "@babel/parser@^7.0.0", "@babel/parser@^7.2.2", "@babel/parser@^7.2.3":
235
 "@babel/parser@^7.0.0", "@babel/parser@^7.2.2", "@babel/parser@^7.2.3":
236
-  version "7.3.1"
237
-  resolved "http://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.3.1.tgz#8f4ffd45f779e6132780835ffa7a215fa0b2d181"
238
-  integrity sha1-j0/9Rfd55hMngINf+nohX6Cy0YE=
236
+  version "7.3.2"
237
+  resolved "http://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.3.2.tgz#95cdeddfc3992a6ca2a1315191c1679ca32c55cd"
238
+  integrity sha1-lc3t38OZKmyioTFRkcFnnKMsVc0=
239
 
239
 
240
 "@babel/plugin-external-helpers@^7.0.0":
240
 "@babel/plugin-external-helpers@^7.0.0":
241
   version "7.2.0"
241
   version "7.2.0"
269
     "@babel/plugin-syntax-nullish-coalescing-operator" "^7.2.0"
269
     "@babel/plugin-syntax-nullish-coalescing-operator" "^7.2.0"
270
 
270
 
271
 "@babel/plugin-proposal-object-rest-spread@^7.0.0":
271
 "@babel/plugin-proposal-object-rest-spread@^7.0.0":
272
-  version "7.3.1"
273
-  resolved "http://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.3.1.tgz#f69fb6a1ea6a4e1c503994a91d9cf76f3c4b36e8"
274
-  integrity sha1-9p+2oepqThxQOZSpHZz3bzxLNug=
272
+  version "7.3.2"
273
+  resolved "http://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.3.2.tgz#6d1859882d4d778578e41f82cc5d7bf3d5daf6c1"
274
+  integrity sha1-bRhZiC1Nd4V45B+CzF1789Xa9sE=
275
   dependencies:
275
   dependencies:
276
     "@babel/helper-plugin-utils" "^7.0.0"
276
     "@babel/helper-plugin-utils" "^7.0.0"
277
     "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
277
     "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
415
     "@babel/helper-plugin-utils" "^7.0.0"
415
     "@babel/helper-plugin-utils" "^7.0.0"
416
 
416
 
417
 "@babel/plugin-transform-destructuring@^7.0.0":
417
 "@babel/plugin-transform-destructuring@^7.0.0":
418
-  version "7.2.0"
419
-  resolved "http://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.2.0.tgz#e75269b4b7889ec3a332cd0d0c8cff8fed0dc6f3"
420
-  integrity sha1-51JptLeInsOjMs0NDIz/j+0NxvM=
418
+  version "7.3.2"
419
+  resolved "http://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.3.2.tgz#f2f5520be055ba1c38c41c0e094d8a461dd78f2d"
420
+  integrity sha1-8vVSC+BVuhw4xBwOCU2KRh3Xjy0=
421
   dependencies:
421
   dependencies:
422
     "@babel/helper-plugin-utils" "^7.0.0"
422
     "@babel/helper-plugin-utils" "^7.0.0"
423
 
423
 
578
     "@babel/helper-plugin-utils" "^7.0.0"
578
     "@babel/helper-plugin-utils" "^7.0.0"
579
 
579
 
580
 "@babel/plugin-transform-typescript@^7.0.0":
580
 "@babel/plugin-transform-typescript@^7.0.0":
581
-  version "7.2.0"
582
-  resolved "http://registry.npm.taobao.org/@babel/plugin-transform-typescript/download/@babel/plugin-transform-typescript-7.2.0.tgz#bce7c06300434de6a860ae8acf6a442ef74a99d1"
583
-  integrity sha1-vOfAYwBDTeaoYK6Kz2pELvdKmdE=
581
+  version "7.3.2"
582
+  resolved "http://registry.npm.taobao.org/@babel/plugin-transform-typescript/download/@babel/plugin-transform-typescript-7.3.2.tgz#59a7227163e55738842f043d9e5bd7c040447d96"
583
+  integrity sha1-WacicWPlVziELwQ9nlvXwEBEfZY=
584
   dependencies:
584
   dependencies:
585
     "@babel/helper-plugin-utils" "^7.0.0"
585
     "@babel/helper-plugin-utils" "^7.0.0"
586
     "@babel/plugin-syntax-typescript" "^7.2.0"
586
     "@babel/plugin-syntax-typescript" "^7.2.0"
638
     globals "^11.1.0"
638
     globals "^11.1.0"
639
     lodash "^4.17.10"
639
     lodash "^4.17.10"
640
 
640
 
641
-"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.3.0":
642
-  version "7.3.0"
643
-  resolved "http://registry.npm.taobao.org/@babel/types/download/@babel/types-7.3.0.tgz#61dc0b336a93badc02bf5f69c4cd8e1353f2ffc0"
644
-  integrity sha1-YdwLM2qTutwCv19pxM2OE1Py/8A=
641
+"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.3.0", "@babel/types@^7.3.2":
642
+  version "7.3.2"
643
+  resolved "http://registry.npm.taobao.org/@babel/types/download/@babel/types-7.3.2.tgz#424f5be4be633fff33fb83ab8d67e4a8290f5a2f"
644
+  integrity sha1-Qk9b5L5jP/8z+4OrjWfkqCkPWi8=
645
   dependencies:
645
   dependencies:
646
     esutils "^2.0.2"
646
     esutils "^2.0.2"
647
     lodash "^4.17.10"
647
     lodash "^4.17.10"
689
   integrity sha1-Z6ojG/iBKXS4UjWpZ3Hra9B+onk=
689
   integrity sha1-Z6ojG/iBKXS4UjWpZ3Hra9B+onk=
690
 
690
 
691
 acorn@^6.0.1:
691
 acorn@^6.0.1:
692
-  version "6.0.6"
693
-  resolved "http://registry.npm.taobao.org/acorn/download/acorn-6.0.6.tgz#cd75181670d5b99bdb1b1c993941d3a239ab1f56"
694
-  integrity sha1-zXUYFnDVuZvbGxyZOUHTojmrH1Y=
692
+  version "6.1.0"
693
+  resolved "http://registry.npm.taobao.org/acorn/download/acorn-6.1.0.tgz#b0a3be31752c97a0f7013c5f4903b71a05db6818"
694
+  integrity sha1-sKO+MXUsl6D3ATxfSQO3GgXbaBg=
695
 
695
 
696
 ajv@^6.5.5:
696
 ajv@^6.5.5:
697
-  version "6.8.1"
698
-  resolved "http://registry.npm.taobao.org/ajv/download/ajv-6.8.1.tgz#0890b93742985ebf8973cd365c5b23920ce3cb20"
699
-  integrity sha1-CJC5N0KYXr+Jc802XFsjkgzjyyA=
697
+  version "6.9.1"
698
+  resolved "http://registry.npm.taobao.org/ajv/download/ajv-6.9.1.tgz#a4d3683d74abc5670e75f0b16520f70a20ea8dc1"
699
+  integrity sha1-pNNoPXSrxWcOdfCxZSD3CiDqjcE=
700
   dependencies:
700
   dependencies:
701
     fast-deep-equal "^2.0.1"
701
     fast-deep-equal "^2.0.1"
702
     fast-json-stable-stringify "^2.0.0"
702
     fast-json-stable-stringify "^2.0.0"
1018
     babel-plugin-istanbul "^4.1.6"
1018
     babel-plugin-istanbul "^4.1.6"
1019
     babel-preset-jest "^23.2.0"
1019
     babel-preset-jest "^23.2.0"
1020
 
1020
 
1021
-babel-jest@^24.0.0:
1022
-  version "24.0.0"
1023
-  resolved "http://registry.npm.taobao.org/babel-jest/download/babel-jest-24.0.0.tgz#8a0c767f03f4a595fb921afdab13ff126edd00da"
1024
-  integrity sha1-igx2fwP0pZX7khr9qxP/Em7dANo=
1021
+babel-jest@^24.1.0:
1022
+  version "24.1.0"
1023
+  resolved "http://registry.npm.taobao.org/babel-jest/download/babel-jest-24.1.0.tgz#441e23ef75ded3bd547e300ac3194cef87b55190"
1024
+  integrity sha1-RB4j73Xe071UfjAKwxlM74e1UZA=
1025
   dependencies:
1025
   dependencies:
1026
     babel-plugin-istanbul "^5.1.0"
1026
     babel-plugin-istanbul "^5.1.0"
1027
-    babel-preset-jest "^24.0.0"
1027
+    babel-preset-jest "^24.1.0"
1028
+    chalk "^2.4.2"
1029
+    slash "^2.0.0"
1028
 
1030
 
1029
 babel-messages@^6.23.0:
1031
 babel-messages@^6.23.0:
1030
   version "6.23.0"
1032
   version "6.23.0"
1057
   resolved "http://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167"
1059
   resolved "http://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167"
1058
   integrity sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=
1060
   integrity sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=
1059
 
1061
 
1060
-babel-plugin-jest-hoist@^24.0.0:
1061
-  version "24.0.0"
1062
-  resolved "http://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-24.0.0.tgz#3adf030b6fd67e4311479a54b24077bdfc226ec9"
1063
-  integrity sha1-Ot8DC2/WfkMRR5pUskB3vfwibsk=
1062
+babel-plugin-jest-hoist@^24.1.0:
1063
+  version "24.1.0"
1064
+  resolved "http://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-24.1.0.tgz#dfecc491fb15e2668abbd690a697a8fd1411a7f8"
1065
+  integrity sha1-3+zEkfsV4maKu9aQppeo/RQRp/g=
1064
 
1066
 
1065
 babel-plugin-syntax-object-rest-spread@^6.13.0:
1067
 babel-plugin-syntax-object-rest-spread@^6.13.0:
1066
   version "6.13.0"
1068
   version "6.13.0"
1113
     babel-plugin-jest-hoist "^23.2.0"
1115
     babel-plugin-jest-hoist "^23.2.0"
1114
     babel-plugin-syntax-object-rest-spread "^6.13.0"
1116
     babel-plugin-syntax-object-rest-spread "^6.13.0"
1115
 
1117
 
1116
-babel-preset-jest@^24.0.0:
1117
-  version "24.0.0"
1118
-  resolved "http://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-24.0.0.tgz#d23782e5e036cff517859640a80960bd628bd82b"
1119
-  integrity sha1-0jeC5eA2z/UXhZZAqAlgvWKL2Cs=
1118
+babel-preset-jest@^24.1.0:
1119
+  version "24.1.0"
1120
+  resolved "http://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-24.1.0.tgz#83bc564fdcd4903641af65ec63f2f5de6b04132e"
1121
+  integrity sha1-g7xWT9zUkDZBr2XsY/L13msEEy4=
1120
   dependencies:
1122
   dependencies:
1121
     "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
1123
     "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
1122
-    babel-plugin-jest-hoist "^24.0.0"
1124
+    babel-plugin-jest-hoist "^24.1.0"
1123
 
1125
 
1124
 babel-register@^6.26.0:
1126
 babel-register@^6.26.0:
1125
   version "6.26.0"
1127
   version "6.26.0"
1306
   resolved "http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
1308
   resolved "http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
1307
   integrity sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=
1309
   integrity sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=
1308
 
1310
 
1309
-builtin-modules@^1.0.0:
1310
-  version "1.1.1"
1311
-  resolved "http://registry.npm.taobao.org/builtin-modules/download/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
1312
-  integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
1313
-
1314
 bytes@3.0.0:
1311
 bytes@3.0.0:
1315
   version "3.0.0"
1312
   version "3.0.0"
1316
   resolved "http://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
1313
   resolved "http://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
1388
     strip-ansi "^3.0.0"
1385
     strip-ansi "^3.0.0"
1389
     supports-color "^2.0.0"
1386
     supports-color "^2.0.0"
1390
 
1387
 
1391
-chalk@^2.0.0, chalk@^2.0.1:
1388
+chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2:
1392
   version "2.4.2"
1389
   version "2.4.2"
1393
   resolved "http://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
1390
   resolved "http://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
1394
   integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=
1391
   integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=
1597
   integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=
1594
   integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=
1598
 
1595
 
1599
 core-js@^2.2.2, core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0, core-js@^2.5.7:
1596
 core-js@^2.2.2, core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0, core-js@^2.5.7:
1600
-  version "2.6.3"
1601
-  resolved "http://registry.npm.taobao.org/core-js/download/core-js-2.6.3.tgz#4b70938bdffdaf64931e66e2db158f0892289c49"
1602
-  integrity sha1-S3CTi9/9r2STHmbi2xWPCJIonEk=
1597
+  version "2.6.4"
1598
+  resolved "http://registry.npm.taobao.org/core-js/download/core-js-2.6.4.tgz#b8897c062c4d769dd30a0ac5c73976c47f92ea0d"
1599
+  integrity sha1-uIl8BixNdp3TCgrFxzl2xH+S6g0=
1603
 
1600
 
1604
 core-util-is@1.0.2, core-util-is@~1.0.0:
1601
 core-util-is@1.0.2, core-util-is@~1.0.0:
1605
   version "1.0.2"
1602
   version "1.0.2"
1646
     which "^1.2.9"
1643
     which "^1.2.9"
1647
 
1644
 
1648
 cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
1645
 cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
1649
-  version "0.3.4"
1650
-  resolved "http://registry.npm.taobao.org/cssom/download/cssom-0.3.4.tgz#8cd52e8a3acfd68d3aed38ee0a640177d2f9d797"
1651
-  integrity sha1-jNUuijrP1o067TjuCmQBd9L515c=
1646
+  version "0.3.6"
1647
+  resolved "http://registry.npm.taobao.org/cssom/download/cssom-0.3.6.tgz#f85206cee04efa841f3c5982a74ba96ab20d65ad"
1648
+  integrity sha1-+FIGzuBO+oQfPFmCp0uparINZa0=
1652
 
1649
 
1653
 cssstyle@^1.0.0:
1650
 cssstyle@^1.0.0:
1654
   version "1.1.1"
1651
   version "1.1.1"
2028
     jest-message-util "^23.4.0"
2025
     jest-message-util "^23.4.0"
2029
     jest-regex-util "^23.3.0"
2026
     jest-regex-util "^23.3.0"
2030
 
2027
 
2031
-expect@^24.0.0:
2032
-  version "24.0.0"
2033
-  resolved "http://registry.npm.taobao.org/expect/download/expect-24.0.0.tgz#71f71d88a4202746fc79849bb4c6498008b5ef03"
2034
-  integrity sha1-cfcdiKQgJ0b8eYSbtMZJgAi17wM=
2028
+expect@^24.1.0:
2029
+  version "24.1.0"
2030
+  resolved "http://registry.npm.taobao.org/expect/download/expect-24.1.0.tgz#88e73301c4c785cde5f16da130ab407bdaf8c0f2"
2031
+  integrity sha1-iOczAcTHhc3l8W2hMKtAe9r4wPI=
2035
   dependencies:
2032
   dependencies:
2036
     ansi-styles "^3.2.0"
2033
     ansi-styles "^3.2.0"
2037
     jest-get-type "^24.0.0"
2034
     jest-get-type "^24.0.0"
2453
   integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
2450
   integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
2454
 
2451
 
2455
 handlebars@^4.0.11, handlebars@^4.0.3:
2452
 handlebars@^4.0.11, handlebars@^4.0.3:
2456
-  version "4.0.12"
2457
-  resolved "http://registry.npm.taobao.org/handlebars/download/handlebars-4.0.12.tgz#2c15c8a96d46da5e266700518ba8cb8d919d5bc5"
2458
-  integrity sha1-LBXIqW1G2l4mZwBRi6jLjZGdW8U=
2453
+  version "4.1.0"
2454
+  resolved "http://registry.npm.taobao.org/handlebars/download/handlebars-4.1.0.tgz#0d6a6f34ff1f63cecec8423aa4169827bf787c3a"
2455
+  integrity sha1-DWpvNP8fY87OyEI6pBaYJ794fDo=
2459
   dependencies:
2456
   dependencies:
2460
     async "^2.5.0"
2457
     async "^2.5.0"
2461
     optimist "^0.6.1"
2458
     optimist "^0.6.1"
2688
   resolved "http://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
2685
   resolved "http://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
2689
   integrity sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=
2686
   integrity sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=
2690
 
2687
 
2691
-ip-regex@^3.0.0:
2692
-  version "3.0.0"
2693
-  resolved "http://registry.npm.taobao.org/ip-regex/download/ip-regex-3.0.0.tgz#0a934694b4066558c46294244a23cc33116bf732"
2694
-  integrity sha1-CpNGlLQGZVjEYpQkSiPMMxFr9zI=
2688
+ip-regex@^2.1.0:
2689
+  version "2.1.0"
2690
+  resolved "http://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
2691
+  integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
2695
 
2692
 
2696
 is-accessor-descriptor@^0.1.6:
2693
 is-accessor-descriptor@^0.1.6:
2697
   version "0.1.6"
2694
   version "0.1.6"
2717
   resolved "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
2714
   resolved "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
2718
   integrity sha1-76ouqdqg16suoTqXsritUf776L4=
2715
   integrity sha1-76ouqdqg16suoTqXsritUf776L4=
2719
 
2716
 
2720
-is-builtin-module@^1.0.0:
2721
-  version "1.0.0"
2722
-  resolved "http://registry.npm.taobao.org/is-builtin-module/download/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
2723
-  integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74=
2724
-  dependencies:
2725
-    builtin-modules "^1.0.0"
2726
-
2727
 is-callable@^1.1.4:
2717
 is-callable@^1.1.4:
2728
   version "1.1.4"
2718
   version "1.1.4"
2729
   resolved "http://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
2719
   resolved "http://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
2925
   resolved "http://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
2915
   resolved "http://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
2926
   integrity sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=
2916
   integrity sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=
2927
 
2917
 
2918
+is-wsl@^1.1.0:
2919
+  version "1.1.0"
2920
+  resolved "http://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
2921
+  integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
2922
+
2928
 isarray@1.0.0, isarray@~1.0.0:
2923
 isarray@1.0.0, isarray@~1.0.0:
2929
   version "1.0.0"
2924
   version "1.0.0"
2930
   resolved "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
2925
   resolved "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
3001
   resolved "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0"
2996
   resolved "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0"
3002
   integrity sha1-zPftzQoLubj3Kf7rCTBHD5r2ZPA=
2997
   integrity sha1-zPftzQoLubj3Kf7rCTBHD5r2ZPA=
3003
 
2998
 
3004
-istanbul-lib-coverage@^2.0.1:
3005
-  version "2.0.1"
3006
-  resolved "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-2.0.1.tgz#2aee0e073ad8c5f6a0b00e0dfbf52b4667472eda"
3007
-  integrity sha1-Ku4OBzrYxfagsA4N+/UrRmdHLto=
3008
-
3009
 istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.3:
2999
 istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.3:
3010
   version "2.0.3"
3000
   version "2.0.3"
3011
   resolved "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-2.0.3.tgz#0b891e5ad42312c2b9488554f603795f9a2211ba"
3001
   resolved "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-2.0.3.tgz#0b891e5ad42312c2b9488554f603795f9a2211ba"
3038
     istanbul-lib-coverage "^1.2.1"
3028
     istanbul-lib-coverage "^1.2.1"
3039
     semver "^5.3.0"
3029
     semver "^5.3.0"
3040
 
3030
 
3041
-istanbul-lib-instrument@^3.0.0:
3042
-  version "3.0.0"
3043
-  resolved "http://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-3.0.0.tgz#b5f066b2a161f75788be17a9d556f40a0cf2afc9"
3044
-  integrity sha1-tfBmsqFh91eIvhep1Vb0Cgzyr8k=
3045
-  dependencies:
3046
-    "@babel/generator" "^7.0.0"
3047
-    "@babel/parser" "^7.0.0"
3048
-    "@babel/template" "^7.0.0"
3049
-    "@babel/traverse" "^7.0.0"
3050
-    "@babel/types" "^7.0.0"
3051
-    istanbul-lib-coverage "^2.0.1"
3052
-    semver "^5.5.0"
3053
-
3054
-istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.1.0:
3031
+istanbul-lib-instrument@^3.0.0, istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.1.0:
3055
   version "3.1.0"
3032
   version "3.1.0"
3056
   resolved "http://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-3.1.0.tgz#a2b5484a7d445f1f311e93190813fa56dfb62971"
3033
   resolved "http://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-3.1.0.tgz#a2b5484a7d445f1f311e93190813fa56dfb62971"
3057
   integrity sha1-orVISn1EXx8xHpMZCBP6Vt+2KXE=
3034
   integrity sha1-orVISn1EXx8xHpMZCBP6Vt+2KXE=
3177
     yargs "^11.0.0"
3154
     yargs "^11.0.0"
3178
 
3155
 
3179
 jest-cli@^24.0.0-alpha.6:
3156
 jest-cli@^24.0.0-alpha.6:
3180
-  version "24.0.0"
3181
-  resolved "http://registry.npm.taobao.org/jest-cli/download/jest-cli-24.0.0.tgz#691fd4f7bce2574c1865db6844a43b56e60ce2a4"
3182
-  integrity sha1-aR/U97ziV0wYZdtoRKQ7VuYM4qQ=
3157
+  version "24.1.0"
3158
+  resolved "http://registry.npm.taobao.org/jest-cli/download/jest-cli-24.1.0.tgz#f7cc98995f36e7210cce3cbb12974cbf60940843"
3159
+  integrity sha1-98yYmV825yEMzjy7EpdMv2CUCEM=
3183
   dependencies:
3160
   dependencies:
3184
     ansi-escapes "^3.0.0"
3161
     ansi-escapes "^3.0.0"
3185
     chalk "^2.0.1"
3162
     chalk "^2.0.1"
3193
     istanbul-lib-instrument "^3.0.1"
3170
     istanbul-lib-instrument "^3.0.1"
3194
     istanbul-lib-source-maps "^3.0.1"
3171
     istanbul-lib-source-maps "^3.0.1"
3195
     jest-changed-files "^24.0.0"
3172
     jest-changed-files "^24.0.0"
3196
-    jest-config "^24.0.0"
3173
+    jest-config "^24.1.0"
3197
     jest-environment-jsdom "^24.0.0"
3174
     jest-environment-jsdom "^24.0.0"
3198
     jest-get-type "^24.0.0"
3175
     jest-get-type "^24.0.0"
3199
     jest-haste-map "^24.0.0"
3176
     jest-haste-map "^24.0.0"
3200
     jest-message-util "^24.0.0"
3177
     jest-message-util "^24.0.0"
3201
     jest-regex-util "^24.0.0"
3178
     jest-regex-util "^24.0.0"
3202
-    jest-resolve-dependencies "^24.0.0"
3203
-    jest-runner "^24.0.0"
3204
-    jest-runtime "^24.0.0"
3205
-    jest-snapshot "^24.0.0"
3179
+    jest-resolve-dependencies "^24.1.0"
3180
+    jest-runner "^24.1.0"
3181
+    jest-runtime "^24.1.0"
3182
+    jest-snapshot "^24.1.0"
3206
     jest-util "^24.0.0"
3183
     jest-util "^24.0.0"
3207
     jest-validate "^24.0.0"
3184
     jest-validate "^24.0.0"
3208
     jest-watcher "^24.0.0"
3185
     jest-watcher "^24.0.0"
3240
     micromatch "^2.3.11"
3217
     micromatch "^2.3.11"
3241
     pretty-format "^23.6.0"
3218
     pretty-format "^23.6.0"
3242
 
3219
 
3243
-jest-config@^24.0.0:
3244
-  version "24.0.0"
3245
-  resolved "http://registry.npm.taobao.org/jest-config/download/jest-config-24.0.0.tgz#878abe03c060c74a0ec30d3cd5dd1897873e030e"
3246
-  integrity sha1-h4q+A8Bgx0oOww081d0Yl4c+Aw4=
3220
+jest-config@^24.1.0:
3221
+  version "24.1.0"
3222
+  resolved "http://registry.npm.taobao.org/jest-config/download/jest-config-24.1.0.tgz#6ea6881cfdd299bc86cc144ee36d937c97c3850c"
3223
+  integrity sha1-bqaIHP3SmbyGzBRO422TfJfDhQw=
3247
   dependencies:
3224
   dependencies:
3248
     "@babel/core" "^7.1.0"
3225
     "@babel/core" "^7.1.0"
3249
-    babel-jest "^24.0.0"
3226
+    babel-jest "^24.1.0"
3250
     chalk "^2.0.1"
3227
     chalk "^2.0.1"
3251
     glob "^7.1.1"
3228
     glob "^7.1.1"
3252
     jest-environment-jsdom "^24.0.0"
3229
     jest-environment-jsdom "^24.0.0"
3253
     jest-environment-node "^24.0.0"
3230
     jest-environment-node "^24.0.0"
3254
     jest-get-type "^24.0.0"
3231
     jest-get-type "^24.0.0"
3255
-    jest-jasmine2 "^24.0.0"
3232
+    jest-jasmine2 "^24.1.0"
3256
     jest-regex-util "^24.0.0"
3233
     jest-regex-util "^24.0.0"
3257
-    jest-resolve "^24.0.0"
3234
+    jest-resolve "^24.1.0"
3258
     jest-util "^24.0.0"
3235
     jest-util "^24.0.0"
3259
     jest-validate "^24.0.0"
3236
     jest-validate "^24.0.0"
3260
     micromatch "^3.1.10"
3237
     micromatch "^3.1.10"
3261
     pretty-format "^24.0.0"
3238
     pretty-format "^24.0.0"
3262
     realpath-native "^1.0.2"
3239
     realpath-native "^1.0.2"
3263
-    uuid "^3.3.2"
3264
 
3240
 
3265
 jest-diff@^23.6.0:
3241
 jest-diff@^23.6.0:
3266
   version "23.6.0"
3242
   version "23.6.0"
3417
     jest-util "^23.4.0"
3393
     jest-util "^23.4.0"
3418
     pretty-format "^23.6.0"
3394
     pretty-format "^23.6.0"
3419
 
3395
 
3420
-jest-jasmine2@^24.0.0:
3421
-  version "24.0.0"
3422
-  resolved "http://registry.npm.taobao.org/jest-jasmine2/download/jest-jasmine2-24.0.0.tgz#7d87be9d8b32d34ac5980ad646b7ae7f99e33a19"
3423
-  integrity sha1-fYe+nYsy00rFmArWRreuf5njOhk=
3396
+jest-jasmine2@^24.1.0:
3397
+  version "24.1.0"
3398
+  resolved "http://registry.npm.taobao.org/jest-jasmine2/download/jest-jasmine2-24.1.0.tgz#8377324b967037c440f0a549ee0bbd9912055db6"
3399
+  integrity sha1-g3cyS5ZwN8RA8KVJ7gu9mRIFXbY=
3424
   dependencies:
3400
   dependencies:
3425
     "@babel/traverse" "^7.1.0"
3401
     "@babel/traverse" "^7.1.0"
3426
     chalk "^2.0.1"
3402
     chalk "^2.0.1"
3427
     co "^4.6.0"
3403
     co "^4.6.0"
3428
-    expect "^24.0.0"
3404
+    expect "^24.1.0"
3429
     is-generator-fn "^2.0.0"
3405
     is-generator-fn "^2.0.0"
3430
     jest-each "^24.0.0"
3406
     jest-each "^24.0.0"
3431
     jest-matcher-utils "^24.0.0"
3407
     jest-matcher-utils "^24.0.0"
3432
     jest-message-util "^24.0.0"
3408
     jest-message-util "^24.0.0"
3433
-    jest-snapshot "^24.0.0"
3409
+    jest-snapshot "^24.1.0"
3434
     jest-util "^24.0.0"
3410
     jest-util "^24.0.0"
3435
     pretty-format "^24.0.0"
3411
     pretty-format "^24.0.0"
3412
+    throat "^4.0.0"
3436
 
3413
 
3437
 jest-junit@5.2.0:
3414
 jest-junit@5.2.0:
3438
   version "5.2.0"
3415
   version "5.2.0"
3528
     jest-regex-util "^23.3.0"
3505
     jest-regex-util "^23.3.0"
3529
     jest-snapshot "^23.6.0"
3506
     jest-snapshot "^23.6.0"
3530
 
3507
 
3531
-jest-resolve-dependencies@^24.0.0:
3532
-  version "24.0.0"
3533
-  resolved "http://registry.npm.taobao.org/jest-resolve-dependencies/download/jest-resolve-dependencies-24.0.0.tgz#86540611d660bdcaab8b87d069247d3832811d94"
3534
-  integrity sha1-hlQGEdZgvcqri4fQaSR9ODKBHZQ=
3508
+jest-resolve-dependencies@^24.1.0:
3509
+  version "24.1.0"
3510
+  resolved "http://registry.npm.taobao.org/jest-resolve-dependencies/download/jest-resolve-dependencies-24.1.0.tgz#78f738a2ec59ff4d00751d9da56f176e3f589f6c"
3511
+  integrity sha1-ePc4ouxZ/00AdR2dpW8Xbj9Yn2w=
3535
   dependencies:
3512
   dependencies:
3536
     jest-regex-util "^24.0.0"
3513
     jest-regex-util "^24.0.0"
3537
-    jest-snapshot "^24.0.0"
3514
+    jest-snapshot "^24.1.0"
3538
 
3515
 
3539
 jest-resolve@^23.6.0:
3516
 jest-resolve@^23.6.0:
3540
   version "23.6.0"
3517
   version "23.6.0"
3545
     chalk "^2.0.1"
3522
     chalk "^2.0.1"
3546
     realpath-native "^1.0.0"
3523
     realpath-native "^1.0.0"
3547
 
3524
 
3548
-jest-resolve@^24.0.0:
3549
-  version "24.0.0"
3550
-  resolved "http://registry.npm.taobao.org/jest-resolve/download/jest-resolve-24.0.0.tgz#0206cfe842324f8796b01f706f4075309bf7b405"
3551
-  integrity sha1-AgbP6EIyT4eWsB9wb0B1MJv3tAU=
3525
+jest-resolve@^24.1.0:
3526
+  version "24.1.0"
3527
+  resolved "http://registry.npm.taobao.org/jest-resolve/download/jest-resolve-24.1.0.tgz#42ff0169b0ea47bfdbd0c52a0067ca7d022c7688"
3528
+  integrity sha1-Qv8BabDqR7/b0MUqAGfKfQIsdog=
3552
   dependencies:
3529
   dependencies:
3553
     browser-resolve "^1.11.3"
3530
     browser-resolve "^1.11.3"
3554
     chalk "^2.0.1"
3531
     chalk "^2.0.1"
3573
     source-map-support "^0.5.6"
3550
     source-map-support "^0.5.6"
3574
     throat "^4.0.0"
3551
     throat "^4.0.0"
3575
 
3552
 
3576
-jest-runner@^24.0.0:
3577
-  version "24.0.0"
3578
-  resolved "http://registry.npm.taobao.org/jest-runner/download/jest-runner-24.0.0.tgz#00b280d52d23286111a8ed0362ed958283f7f0e3"
3579
-  integrity sha1-ALKA1S0jKGERqO0DYu2VgoP38OM=
3553
+jest-runner@^24.1.0:
3554
+  version "24.1.0"
3555
+  resolved "http://registry.npm.taobao.org/jest-runner/download/jest-runner-24.1.0.tgz#3686a2bb89ce62800da23d7fdc3da2c32792943b"
3556
+  integrity sha1-Noaiu4nOYoANoj1/3D2iwyeSlDs=
3580
   dependencies:
3557
   dependencies:
3558
+    chalk "^2.4.2"
3581
     exit "^0.1.2"
3559
     exit "^0.1.2"
3582
     graceful-fs "^4.1.15"
3560
     graceful-fs "^4.1.15"
3583
-    jest-config "^24.0.0"
3561
+    jest-config "^24.1.0"
3584
     jest-docblock "^24.0.0"
3562
     jest-docblock "^24.0.0"
3585
     jest-haste-map "^24.0.0"
3563
     jest-haste-map "^24.0.0"
3586
-    jest-jasmine2 "^24.0.0"
3564
+    jest-jasmine2 "^24.1.0"
3587
     jest-leak-detector "^24.0.0"
3565
     jest-leak-detector "^24.0.0"
3588
     jest-message-util "^24.0.0"
3566
     jest-message-util "^24.0.0"
3589
-    jest-runtime "^24.0.0"
3567
+    jest-runtime "^24.1.0"
3590
     jest-util "^24.0.0"
3568
     jest-util "^24.0.0"
3591
     jest-worker "^24.0.0"
3569
     jest-worker "^24.0.0"
3592
     source-map-support "^0.5.6"
3570
     source-map-support "^0.5.6"
3619
     write-file-atomic "^2.1.0"
3597
     write-file-atomic "^2.1.0"
3620
     yargs "^11.0.0"
3598
     yargs "^11.0.0"
3621
 
3599
 
3622
-jest-runtime@^24.0.0:
3623
-  version "24.0.0"
3624
-  resolved "http://registry.npm.taobao.org/jest-runtime/download/jest-runtime-24.0.0.tgz#bc80756f5458c2c8e4db86f44b687ff692026c13"
3625
-  integrity sha1-vIB1b1RYwsjk24b0S2h/9pICbBM=
3600
+jest-runtime@^24.1.0:
3601
+  version "24.1.0"
3602
+  resolved "http://registry.npm.taobao.org/jest-runtime/download/jest-runtime-24.1.0.tgz#7c157a2e776609e8cf552f956a5a19ec9c985214"
3603
+  integrity sha1-fBV6LndmCejPVS+ValoZ7JyYUhQ=
3626
   dependencies:
3604
   dependencies:
3627
     "@babel/core" "^7.1.0"
3605
     "@babel/core" "^7.1.0"
3628
     babel-plugin-istanbul "^5.1.0"
3606
     babel-plugin-istanbul "^5.1.0"
3632
     fast-json-stable-stringify "^2.0.0"
3610
     fast-json-stable-stringify "^2.0.0"
3633
     glob "^7.1.3"
3611
     glob "^7.1.3"
3634
     graceful-fs "^4.1.15"
3612
     graceful-fs "^4.1.15"
3635
-    jest-config "^24.0.0"
3613
+    jest-config "^24.1.0"
3636
     jest-haste-map "^24.0.0"
3614
     jest-haste-map "^24.0.0"
3637
     jest-message-util "^24.0.0"
3615
     jest-message-util "^24.0.0"
3638
     jest-regex-util "^24.0.0"
3616
     jest-regex-util "^24.0.0"
3639
-    jest-resolve "^24.0.0"
3640
-    jest-snapshot "^24.0.0"
3617
+    jest-resolve "^24.1.0"
3618
+    jest-snapshot "^24.1.0"
3641
     jest-util "^24.0.0"
3619
     jest-util "^24.0.0"
3642
     jest-validate "^24.0.0"
3620
     jest-validate "^24.0.0"
3643
     micromatch "^3.1.10"
3621
     micromatch "^3.1.10"
3644
     realpath-native "^1.0.0"
3622
     realpath-native "^1.0.0"
3645
     slash "^2.0.0"
3623
     slash "^2.0.0"
3646
-    strip-bom "3.0.0"
3647
-    write-file-atomic "^2.4.2"
3624
+    strip-bom "^3.0.0"
3625
+    write-file-atomic "2.4.1"
3648
     yargs "^12.0.2"
3626
     yargs "^12.0.2"
3649
 
3627
 
3650
 jest-serializer@24.0.0-alpha.6:
3628
 jest-serializer@24.0.0-alpha.6:
3678
     pretty-format "^23.6.0"
3656
     pretty-format "^23.6.0"
3679
     semver "^5.5.0"
3657
     semver "^5.5.0"
3680
 
3658
 
3681
-jest-snapshot@^24.0.0:
3682
-  version "24.0.0"
3683
-  resolved "http://registry.npm.taobao.org/jest-snapshot/download/jest-snapshot-24.0.0.tgz#fb447a753a3271660b3d89d068698014eb14c414"
3684
-  integrity sha1-+0R6dToycWYLPYnQaGmAFOsUxBQ=
3659
+jest-snapshot@^24.1.0:
3660
+  version "24.1.0"
3661
+  resolved "http://registry.npm.taobao.org/jest-snapshot/download/jest-snapshot-24.1.0.tgz#85e22f810357aa5994ab61f236617dc2205f2f5b"
3662
+  integrity sha1-heIvgQNXqlmUq2HyNmF9wiBfL1s=
3685
   dependencies:
3663
   dependencies:
3686
     "@babel/types" "^7.0.0"
3664
     "@babel/types" "^7.0.0"
3687
     chalk "^2.0.1"
3665
     chalk "^2.0.1"
3688
     jest-diff "^24.0.0"
3666
     jest-diff "^24.0.0"
3689
     jest-matcher-utils "^24.0.0"
3667
     jest-matcher-utils "^24.0.0"
3690
     jest-message-util "^24.0.0"
3668
     jest-message-util "^24.0.0"
3691
-    jest-resolve "^24.0.0"
3669
+    jest-resolve "^24.1.0"
3692
     mkdirp "^0.5.1"
3670
     mkdirp "^0.5.1"
3693
     natural-compare "^1.4.0"
3671
     natural-compare "^1.4.0"
3694
     pretty-format "^24.0.0"
3672
     pretty-format "^24.0.0"
3972
   resolved "http://registry.npm.taobao.org/kleur/download/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300"
3950
   resolved "http://registry.npm.taobao.org/kleur/download/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300"
3973
   integrity sha1-twT0lE2V4lXQOPDLBfuKYCxVowA=
3951
   integrity sha1-twT0lE2V4lXQOPDLBfuKYCxVowA=
3974
 
3952
 
3975
-kleur@^3.0.0:
3976
-  version "3.0.1"
3977
-  resolved "http://registry.npm.taobao.org/kleur/download/kleur-3.0.1.tgz#4f5b313f5fa315432a400f19a24db78d451ede62"
3978
-  integrity sha1-T1sxP1+jFUMqQA8Zok23jUUe3mI=
3953
+kleur@^3.0.2:
3954
+  version "3.0.2"
3955
+  resolved "http://registry.npm.taobao.org/kleur/download/kleur-3.0.2.tgz#83c7ec858a41098b613d5998a7b653962b504f68"
3956
+  integrity sha1-g8fshYpBCYthPVmYp7ZTlitQT2g=
3979
 
3957
 
3980
 lcid@^1.0.0:
3958
 lcid@^1.0.0:
3981
   version "1.0.0"
3959
   version "1.0.0"
4431
     snapdragon "^0.8.1"
4409
     snapdragon "^0.8.1"
4432
     to-regex "^3.0.2"
4410
     to-regex "^3.0.2"
4433
 
4411
 
4434
-"mime-db@>= 1.36.0 < 2", mime-db@~1.37.0:
4435
-  version "1.37.0"
4436
-  resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8"
4437
-  integrity sha1-C2oM5v2+lXbiXx8tL96IMNwK0Ng=
4412
+"mime-db@>= 1.36.0 < 2":
4413
+  version "1.38.0"
4414
+  resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad"
4415
+  integrity sha1-GiqrFtqesWe0nG5N8tnGjWPY4q0=
4438
 
4416
 
4439
 mime-db@~1.23.0:
4417
 mime-db@~1.23.0:
4440
   version "1.23.0"
4418
   version "1.23.0"
4441
   resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.23.0.tgz#a31b4070adaea27d732ea333740a64d0ec9a6659"
4419
   resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.23.0.tgz#a31b4070adaea27d732ea333740a64d0ec9a6659"
4442
   integrity sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=
4420
   integrity sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=
4443
 
4421
 
4422
+mime-db@~1.37.0:
4423
+  version "1.37.0"
4424
+  resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8"
4425
+  integrity sha1-C2oM5v2+lXbiXx8tL96IMNwK0Ng=
4426
+
4444
 mime-types@2.1.11:
4427
 mime-types@2.1.11:
4445
   version "2.1.11"
4428
   version "2.1.11"
4446
   resolved "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.11.tgz#c259c471bda808a85d6cd193b430a5fae4473b3c"
4429
   resolved "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.11.tgz#c259c471bda808a85d6cd193b430a5fae4473b3c"
4625
   integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
4608
   integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
4626
 
4609
 
4627
 node-notifier@^5.2.1:
4610
 node-notifier@^5.2.1:
4628
-  version "5.3.0"
4629
-  resolved "http://registry.npm.taobao.org/node-notifier/download/node-notifier-5.3.0.tgz#c77a4a7b84038733d5fb351aafd8a268bfe19a01"
4630
-  integrity sha1-x3pKe4QDhzPV+zUar9iiaL/hmgE=
4611
+  version "5.4.0"
4612
+  resolved "http://registry.npm.taobao.org/node-notifier/download/node-notifier-5.4.0.tgz#7b455fdce9f7de0c63538297354f3db468426e6a"
4613
+  integrity sha1-e0Vf3On33gxjU4KXNU89tGhCbmo=
4631
   dependencies:
4614
   dependencies:
4632
     growly "^1.3.0"
4615
     growly "^1.3.0"
4616
+    is-wsl "^1.1.0"
4633
     semver "^5.5.0"
4617
     semver "^5.5.0"
4634
     shellwords "^0.1.1"
4618
     shellwords "^0.1.1"
4635
     which "^1.3.0"
4619
     which "^1.3.0"
4659
     osenv "^0.1.4"
4643
     osenv "^0.1.4"
4660
 
4644
 
4661
 normalize-package-data@^2.3.2:
4645
 normalize-package-data@^2.3.2:
4662
-  version "2.4.2"
4663
-  resolved "http://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.4.2.tgz#6b2abd85774e51f7936f1395e45acb905dc849b2"
4664
-  integrity sha1-ayq9hXdOUfeTbxOV5FrLkF3ISbI=
4646
+  version "2.5.0"
4647
+  resolved "http://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
4648
+  integrity sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=
4665
   dependencies:
4649
   dependencies:
4666
     hosted-git-info "^2.1.4"
4650
     hosted-git-info "^2.1.4"
4667
-    is-builtin-module "^1.0.0"
4651
+    resolve "^1.10.0"
4668
     semver "2 || 3 || 4 || 5"
4652
     semver "2 || 3 || 4 || 5"
4669
     validate-npm-package-license "^3.0.1"
4653
     validate-npm-package-license "^3.0.1"
4670
 
4654
 
4676
     remove-trailing-separator "^1.0.1"
4660
     remove-trailing-separator "^1.0.1"
4677
 
4661
 
4678
 npm-bundled@^1.0.1:
4662
 npm-bundled@^1.0.1:
4679
-  version "1.0.5"
4680
-  resolved "http://registry.npm.taobao.org/npm-bundled/download/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979"
4681
-  integrity sha1-PBcyt7qTazoQMlrvYWRnwMy8yXk=
4663
+  version "1.0.6"
4664
+  resolved "http://registry.npm.taobao.org/npm-bundled/download/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd"
4665
+  integrity sha1-57qarc75YrthJI+RchzZMrP+a90=
4682
 
4666
 
4683
 npm-packlist@^1.1.6:
4667
 npm-packlist@^1.1.6:
4684
-  version "1.2.0"
4685
-  resolved "http://registry.npm.taobao.org/npm-packlist/download/npm-packlist-1.2.0.tgz#55a60e793e272f00862c7089274439a4cc31fc7f"
4686
-  integrity sha1-VaYOeT4nLwCGLHCJJ0Q5pMwx/H8=
4668
+  version "1.3.0"
4669
+  resolved "http://registry.npm.taobao.org/npm-packlist/download/npm-packlist-1.3.0.tgz#7f01e8e44408341379ca98cfd756e7b29bd2626c"
4670
+  integrity sha1-fwHo5EQINBN5ypjP11bnspvSYmw=
4687
   dependencies:
4671
   dependencies:
4688
     ignore-walk "^3.0.1"
4672
     ignore-walk "^3.0.1"
4689
     npm-bundled "^1.0.1"
4673
     npm-bundled "^1.0.1"
4725
   integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
4709
   integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
4726
 
4710
 
4727
 nwsapi@^2.0.7:
4711
 nwsapi@^2.0.7:
4728
-  version "2.0.9"
4729
-  resolved "http://registry.npm.taobao.org/nwsapi/download/nwsapi-2.0.9.tgz#77ac0cdfdcad52b6a1151a84e73254edc33ed016"
4730
-  integrity sha1-d6wM39ytUrahFRqE5zJU7cM+0BY=
4712
+  version "2.1.0"
4713
+  resolved "http://registry.npm.taobao.org/nwsapi/download/nwsapi-2.1.0.tgz#781065940aed90d9bb01ca5d0ce0fcf81c32712f"
4714
+  integrity sha1-eBBllArtkNm7AcpdDOD8+BwycS8=
4731
 
4715
 
4732
 oauth-sign@~0.9.0:
4716
 oauth-sign@~0.9.0:
4733
   version "0.9.0"
4717
   version "0.9.0"
5189
     sisteransi "^0.1.1"
5173
     sisteransi "^0.1.1"
5190
 
5174
 
5191
 prompts@^2.0.1:
5175
 prompts@^2.0.1:
5192
-  version "2.0.1"
5193
-  resolved "http://registry.npm.taobao.org/prompts/download/prompts-2.0.1.tgz#201b3718b4276fb407f037db48c0029d6465245c"
5194
-  integrity sha1-IBs3GLQnb7QH8DfbSMACnWRlJFw=
5176
+  version "2.0.2"
5177
+  resolved "http://registry.npm.taobao.org/prompts/download/prompts-2.0.2.tgz#094119b0b0a553ec652908b583205b9867630154"
5178
+  integrity sha1-CUEZsLClU+xlKQi1gyBbmGdjAVQ=
5195
   dependencies:
5179
   dependencies:
5196
-    kleur "^3.0.0"
5180
+    kleur "^3.0.2"
5197
     sisteransi "^1.0.0"
5181
     sisteransi "^1.0.0"
5198
 
5182
 
5199
 prop-types@^15.5.8, prop-types@^15.6.2:
5183
 prop-types@^15.5.8, prop-types@^15.6.2:
5200
-  version "15.6.2"
5201
-  resolved "http://registry.npm.taobao.org/prop-types/download/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
5202
-  integrity sha1-BdXKd7RFPphdYPx/+MhZCUpJcQI=
5184
+  version "15.7.1"
5185
+  resolved "http://registry.npm.taobao.org/prop-types/download/prop-types-15.7.1.tgz#2fa61e0a699d428b40320127733ee2931f05d9d1"
5186
+  integrity sha1-L6YeCmmdQotAMgEncz7ikx8F2dE=
5203
   dependencies:
5187
   dependencies:
5204
-    loose-envify "^1.3.1"
5205
     object-assign "^4.1.1"
5188
     object-assign "^4.1.1"
5189
+    react-is "^16.8.1"
5206
 
5190
 
5207
 pseudomap@^1.0.2:
5191
 pseudomap@^1.0.2:
5208
   version "1.0.2"
5192
   version "1.0.2"
5279
     shell-quote "^1.6.1"
5263
     shell-quote "^1.6.1"
5280
     ws "^3.3.1"
5264
     ws "^3.3.1"
5281
 
5265
 
5282
-react-is@^16.6.3:
5283
-  version "16.7.0"
5284
-  resolved "http://registry.npm.taobao.org/react-is/download/react-is-16.7.0.tgz#c1bd21c64f1f1364c6f70695ec02d69392f41bfa"
5285
-  integrity sha1-wb0hxk8fE2TG9waV7ALWk5L0G/o=
5266
+react-is@^16.6.3, react-is@^16.8.1:
5267
+  version "16.8.1"
5268
+  resolved "http://registry.npm.taobao.org/react-is/download/react-is-16.8.1.tgz#a80141e246eb894824fb4f2901c0c50ef31d4cdb"
5269
+  integrity sha1-qAFB4kbriUgk+08pAcDFDvMdTNs=
5286
 
5270
 
5287
 "react-native-agora@file:../..":
5271
 "react-native-agora@file:../..":
5288
   version "2.3.3"
5272
   version "2.3.3"
5621
   resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
5605
   resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
5622
   integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
5606
   integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
5623
 
5607
 
5624
-resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1:
5608
+resolve@^1.10.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1:
5625
   version "1.10.0"
5609
   version "1.10.0"
5626
   resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba"
5610
   resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba"
5627
   integrity sha1-O9qur0XMB/N1ZW39LlTtCBCxAbo=
5611
   integrity sha1-O9qur0XMB/N1ZW39LlTtCBCxAbo=
6199
     require-main-filename "^1.0.1"
6183
     require-main-filename "^1.0.1"
6200
 
6184
 
6201
 test-exclude@^5.0.0:
6185
 test-exclude@^5.0.0:
6202
-  version "5.0.0"
6203
-  resolved "http://registry.npm.taobao.org/test-exclude/download/test-exclude-5.0.0.tgz#cdce7cece785e0e829cd5c2b27baf18bc583cfb7"
6204
-  integrity sha1-zc587OeF4OgpzVwrJ7rxi8WDz7c=
6186
+  version "5.1.0"
6187
+  resolved "http://registry.npm.taobao.org/test-exclude/download/test-exclude-5.1.0.tgz#6ba6b25179d2d38724824661323b73e03c0c1de1"
6188
+  integrity sha1-a6ayUXnS04ckgkZhMjtz4DwMHeE=
6205
   dependencies:
6189
   dependencies:
6206
     arrify "^1.0.1"
6190
     arrify "^1.0.1"
6207
     minimatch "^3.0.4"
6191
     minimatch "^3.0.4"
6279
     safe-regex "^1.1.0"
6263
     safe-regex "^1.1.0"
6280
 
6264
 
6281
 tough-cookie@>=2.3.3:
6265
 tough-cookie@>=2.3.3:
6282
-  version "3.0.0"
6283
-  resolved "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-3.0.0.tgz#d2bceddebde633153ff20a52fa844a0dc71dacef"
6284
-  integrity sha1-0rzt3r3mMxU/8gpS+oRKDccdrO8=
6266
+  version "3.0.1"
6267
+  resolved "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2"
6268
+  integrity sha1-nfT1fnOcJpMKAYGEiH9K233Kc7I=
6285
   dependencies:
6269
   dependencies:
6286
-    ip-regex "^3.0.0"
6270
+    ip-regex "^2.1.0"
6287
     psl "^1.1.28"
6271
     psl "^1.1.28"
6288
     punycode "^2.1.1"
6272
     punycode "^2.1.1"
6289
 
6273
 
6587
   resolved "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
6571
   resolved "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
6588
   integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
6572
   integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
6589
 
6573
 
6574
+write-file-atomic@2.4.1:
6575
+  version "2.4.1"
6576
+  resolved "http://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529"
6577
+  integrity sha1-0LBUY8GIroBDlv1asqNwBir4dSk=
6578
+  dependencies:
6579
+    graceful-fs "^4.1.11"
6580
+    imurmurhash "^0.1.4"
6581
+    signal-exit "^3.0.2"
6582
+
6590
 write-file-atomic@^1.2.0:
6583
 write-file-atomic@^1.2.0:
6591
   version "1.3.4"
6584
   version "1.3.4"
6592
   resolved "http://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
6585
   resolved "http://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
6596
     imurmurhash "^0.1.4"
6589
     imurmurhash "^0.1.4"
6597
     slide "^1.1.5"
6590
     slide "^1.1.5"
6598
 
6591
 
6599
-write-file-atomic@^2.1.0, write-file-atomic@^2.4.2:
6592
+write-file-atomic@^2.1.0:
6600
   version "2.4.2"
6593
   version "2.4.2"
6601
   resolved "http://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9"
6594
   resolved "http://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9"
6602
   integrity sha1-pxgXBt+6F4VdIhFAqcBuFfzdh7k=
6595
   integrity sha1-pxgXBt+6F4VdIhFAqcBuFfzdh7k=

+ 101
- 15
src/RtcEngine.native.ts Voir le fichier

1
 import {
1
 import {
2
     NativeModules,
2
     NativeModules,
3
-    NativeAppEventEmitter,
3
+    NativeEventEmitter,
4
     EmitterSubscription
4
     EmitterSubscription
5
 } from 'react-native';
5
 } from 'react-native';
6
 
6
 
11
     String, Number
11
     String, Number
12
 } from "./types.d";
12
 } from "./types.d";
13
 
13
 
14
+
14
 const { Agora } = NativeModules;
15
 const { Agora } = NativeModules;
16
+const AgoraEventEmitter = new NativeEventEmitter(Agora);
15
 
17
 
16
 export default class RtcEngine {
18
 export default class RtcEngine {
17
 
19
 
18
-    private static listener: EmitterSubscription;
20
+    private static listeners: Array<EmitterSubscription>;
19
     static init(options: Option): void {
21
     static init(options: Option): void {
20
         this.removeEmitter();
22
         this.removeEmitter();
21
         Agora.init(options);
23
         Agora.init(options);
24
+        this.listeners = [];
22
     }
25
     }
23
 
26
 
24
-    static joinChannel(channelName: String, uid?: Number): void {
25
-        Agora.joinChannel(channelName, uid);
27
+    static joinChannel(channelName: String, uid?: Number, token?: String, info?: Object): void {
28
+        Agora.joinChannel({channelName, uid, token, info});
26
     }
29
     }
27
 
30
 
28
     static joinChannelWithToken(
31
     static joinChannelWithToken(
31
     }
34
     }
32
 
35
 
33
     static eventEmitter(eventScheduler: EventScheduler) {
36
     static eventEmitter(eventScheduler: EventScheduler) {
34
-        this.listener && this.listener.remove();
35
-        this.listener = NativeAppEventEmitter.addListener('agoraEvent', event => {
36
-            const functor = (eventScheduler as any)[event['type']];
37
-            functor && functor(event);
38
-        });
37
+        this.removeEmitter();
38
+        const events = [
39
+            "DidOccurWarning",
40
+            "DidOccurError",
41
+            "DidApiCallExecute",
42
+            "DidJoinChannel",
43
+            "DidRejoinChannel",
44
+            "DidLeaveChannel",
45
+            "LeaveChannel",
46
+            "DidClientRoleChanged",
47
+            "DidJoinedOfUid",
48
+            "DidOfflineOfUid",
49
+            "ConnectionChangedToState",
50
+            "ConnectionDidLost",
51
+            "TokenPrivilegeWillExpire",
52
+            "RequestToken",
53
+            
54
+            "DidMicrophoneEnabled",
55
+            "ReportAudioVolumeIndicationOfSpeakers",
56
+            "ActiveSpeaker",
57
+            "FirstLocalAudioFrame",
58
+            "FirstRemoteAudioFrameOfUid",
59
+            "VideoDidStop",
60
+            "FirstLocalVideoFrameWithSize",
61
+            "FirstRemoteVideoDecodedOfUid",
62
+            "FirstRemoteVideoFrameOfUid",
63
+            "DidAudioMuted",
64
+            "DidVideoMuted",
65
+            "DidVideoEnabled",
66
+            "DidLocalVideoEnabled",
67
+            "VideoSizeChangedOfUid",
68
+            "RemoteVideoStateChangedOfUid",
69
+            "DidLocalPublishFallbackToAudioOnly",
70
+            "DidRemoteSubscribeFallbackToAudioOnly",
71
+            
72
+            "DeviceTypeStateChanged",
73
+            "DidAudioRouteChanged",
74
+            "CameraDidReady",
75
+            "CameraFocusDidChangedToRect",
76
+            "CameraExposureDidChangedToRect",
77
+            
78
+            "ReportRtcStats",
79
+            "LastmileQuality",
80
+            "NetworkQuality",
81
+            "LocalVideoStats",
82
+            "RemoteVideoStats",
83
+            "RemoteAudioStats",
84
+            "AudioTransportStatsOfUid",
85
+            "VideoTransportStatsOfUid",
86
+            
87
+            "LocalAudioMixingDidFinish",
88
+            "RemoteAudioMixingDidStart",
89
+            "RemoteAudioMixingDidFinish",
90
+            "DidAudioEffectFinish",
91
+            
92
+            "StreamPublished",
93
+            "StreamUnpublish",
94
+            "TranscodingUpdated",
95
+            
96
+            "StreamInjectedStatus",
97
+            
98
+            "ReceiveStreamMessage",
99
+            "DidOccurStreamMessageError",
100
+            
101
+            "MediaEngineDidLoaded",
102
+            "MediaEngineDidStartCall",
103
+            
104
+            "ConnectionDidInterrupted",
105
+            "ConnectionDidBanned",
106
+            "AudioQualityOfUid"
107
+        ];
108
+        for (let event of events) {
109
+            this.listeners.push(
110
+                AgoraEventEmitter.addListener(event, msg => {
111
+                    const functor = (eventScheduler as any)[event];
112
+                    functor && functor(msg);
113
+                })
114
+            );
115
+        }
39
     }
116
     }
40
 
117
 
41
     static removeEmitter() {
118
     static removeEmitter() {
42
-        this.listener && this.listener.remove();
119
+        if (this.listeners && this.listeners.length > 0) {
120
+            for (let listener of this.listeners) {
121
+                listener.remove();
122
+            }
123
+        }
124
+        this.listeners = [];
43
     }
125
     }
44
 
126
 
45
     static enableLastmileTest() {
127
     static enableLastmileTest() {
51
     }
133
     }
52
 
134
 
53
     static leaveChannel() {
135
     static leaveChannel() {
54
-        Agora.leaveChannel();
136
+        return Agora.leaveChannel();
55
     }
137
     }
56
 
138
 
57
     static destroy() {
139
     static destroy() {
118
         Agora.muteRemoteAudioStream(uid, status);
200
         Agora.muteRemoteAudioStream(uid, status);
119
     }
201
     }
120
 
202
 
203
+    static muteAllRemoteAudioStreams(status: boolean) {
204
+        Agora.muteAllRemoteAudioStreams(status);
205
+    }
206
+
121
     static setCameraTorchOn(status: boolean) {
207
     static setCameraTorchOn(status: boolean) {
122
-        Agora.setCameraTorchOn(status);
208
+        return Agora.setCameraTorchOn(status);
123
     }
209
     }
124
 
210
 
125
     static setCameraAutoFocusFaceModeEnabled(status: boolean) {
211
     static setCameraAutoFocusFaceModeEnabled(status: boolean) {
142
         Agora.muteAllRemoteVideoStreams(status);
228
         Agora.muteAllRemoteVideoStreams(status);
143
     }
229
     }
144
 
230
 
145
-    static muteRemoteVideoStream(status: boolean) {
146
-        Agora.muteAllRemoteVideoStreams(status);
231
+    static muteRemoteVideoStream(uid: number, status: boolean) {
232
+        Agora.muteRemoteVideoStream(uid, status);
147
     }
233
     }
148
 
234
 
149
     static createDataStream(reliable: boolean, ordered: boolean, callback: Callback<void>) {
235
     static createDataStream(reliable: boolean, ordered: boolean, callback: Callback<void>) {
155
     }
241
     }
156
 
242
 
157
     static getSdkVersion(callback: Callback<void>) {
243
     static getSdkVersion(callback: Callback<void>) {
158
-        Agora.getSdkVersion(callback);
244
+        Agora.getSdkVersion().then(callback);
159
     }
245
     }
160
 };
246
 };

+ 81
- 11
src/types.d.ts Voir le fichier

15
   videoProfile: number
15
   videoProfile: number
16
   channelProfile: number,
16
   channelProfile: number,
17
   videoEncoderConfig: VideoEncoderConfig,
17
   videoEncoderConfig: VideoEncoderConfig,
18
-  clientRole: number
18
+  clientRole: number,
19
+  audioProfile: number,
20
+  audioScenario: number
19
 }
21
 }
20
 
22
 
21
 export interface PublisherConfig {
23
 export interface PublisherConfig {
90
 }
92
 }
91
 
93
 
92
 export interface EventScheduler {
94
 export interface EventScheduler {
93
-  onFirstRemoteVideoDecoded: Function,
94
-  onJoinChannelSuccess: Function,
95
-  onUserOffline: Function,
96
-  onUserJoined: Function,
97
-  onError: Function,
98
-  onWarning: Function,
99
-  onLeaveChannel: Function,
100
-  onAudioVolumeIndication: Function,
101
-  onStreamMessage: Function,
102
-  onStreamMessageError: Function
95
+  // onFirstRemoteVideoDecoded: Function,
96
+  // onJoinChannelSuccess: Function,
97
+  // onUserOffline: Function,
98
+  // onUserJoined: Function,
99
+  // onError: Function,
100
+  // onWarning: Function,
101
+  // onLeaveChannel: Function,
102
+  // onAudioVolumeIndication: Function,
103
+  // onStreamMessage: Function,
104
+  // onStreamMessageError: Function
105
+  DidOccurWarning: Function,
106
+  DidOccurError: Function,
107
+  DidApiCallExecute: Function,
108
+  DidJoinChannel: Function,
109
+  DidRejoinChannel: Function,
110
+  DidLeaveChannel: Function,
111
+  LeaveChannel: Function,
112
+  DidClientRoleChanged: Function,
113
+  DidJoinedOfUid: Function,
114
+  DidOfflineOfUid: Function,
115
+  ConnectionChangedToState: Function,
116
+  ConnectionDidLost: Function,
117
+  TokenPrivilegeWillExpire: Function,
118
+  RequestToken: Function,
119
+  
120
+  DidMicrophoneEnabled: Function,
121
+  ReportAudioVolumeIndicationOfSpeakers: Function,
122
+  ActiveSpeaker: Function,
123
+  FirstLocalAudioFrame: Function,
124
+  FirstRemoteAudioFrameOfUid: Function,
125
+  VideoDidStop: Function,
126
+  FirstLocalVideoFrameWithSize: Function,
127
+  FirstRemoteVideoDecodedOfUid: Function,
128
+  FirstRemoteVideoFrameOfUid: Function,
129
+  DidAudioMuted: Function,
130
+  DidVideoMuted: Function,
131
+  DidVideoEnabled: Function,
132
+  DidLocalVideoEnabled: Function,
133
+  VideoSizeChangedOfUid: Function,
134
+  RemoteVideoStateChangedOfUid: Function,
135
+  DidLocalPublishFallbackToAudioOnly: Function,
136
+  DidRemoteSubscribeFallbackToAudioOnly: Function,
137
+  
138
+  DeviceTypeStateChanged: Function,
139
+  DidAudioRouteChanged: Function,
140
+  CameraDidReady: Function,
141
+  CameraFocusDidChangedToRect: Function,
142
+  CameraExposureDidChangedToRect: Function,
143
+  
144
+  ReportRtcStats: Function,
145
+  LastmileQuality: Function,
146
+  NetworkQuality: Function,
147
+  LocalVideoStats: Function,
148
+  RemoteVideoStats: Function,
149
+  RemoteAudioStats: Function,
150
+  AudioTransportStatsOfUid: Function,
151
+  VideoTransportStatsOfUid: Function,
152
+  
153
+  LocalAudioMixingDidFinish: Function,
154
+  RemoteAudioMixingDidStart: Function,
155
+  RemoteAudioMixingDidFinish: Function,
156
+  DidAudioEffectFinish: Function,
157
+  
158
+  StreamPublished: Function,
159
+  StreamUnpublish: Function,
160
+  TranscodingUpdated: Function,
161
+  
162
+  StreamInjectedStatus: Function,
163
+  
164
+  ReceiveStreamMessage: Function,
165
+  DidOccurStreamMessageError: Function,
166
+  
167
+  MediaEngineDidLoaded: Function,
168
+  MediaEngineDidStartCall: Function,
169
+  
170
+  ConnectionDidInterrupted: Function,
171
+  ConnectionDidBanned: Function,
172
+  AudioQualityOfUi: Function
103
 }
173
 }
104
 
174
 
105
 export type Callback<T> = (err: any, data: any) => T;
175
 export type Callback<T> = (err: any, data: any) => T;