ソースを参照

integerate ios react-native demo

matrixbirds 5 年 前
コミット
47e46b8c08
共有22 個のファイルを変更した2110 個の追加842 個の削除を含む
  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. バイナリ
      ios/RCTAgora.xcodeproj/project.xcworkspace/xcuserdata/DB.xcuserdatad/UserInterfaceState.xcuserstate
  5. バイナリ
      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. バイナリ
      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 ファイルの表示

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

+ 7
- 0
ios/RCTAgora.xcodeproj/project.xcworkspace/contents.xcworkspacedata ファイルの表示

@@ -0,0 +1,7 @@
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 ファイルの表示

@@ -0,0 +1,8 @@
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>

バイナリ
ios/RCTAgora.xcodeproj/project.xcworkspace/xcuserdata/DB.xcuserdatad/UserInterfaceState.xcuserstate ファイルの表示


バイナリ
ios/RCTAgora.xcodeproj/project.xcworkspace/xcuserdata/ly.xcuserdatad/UserInterfaceState.xcuserstate ファイルの表示


+ 14
- 0
ios/RCTAgora.xcodeproj/xcuserdata/ly.xcuserdatad/xcschemes/xcschememanagement.plist ファイルの表示

@@ -0,0 +1,14 @@
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
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 1
- 5
react-native-agora.podspec ファイルの表示

@@ -82,11 +82,6 @@ Pod::Spec.new do |s|
82 82
   #  you can include multiple dependencies to ensure it works.
83 83
 
84 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 85
   s.subspec 'AgoraRtcCryptoLoader' do |sp|
91 86
     sp.source_files = './ios/RCTAgora/libs/AgoraRtcCryptoLoader.framework/**/*.{c,h,m,mm,S,cpp}'
92 87
     sp.vendored_libraries = 'libcrypto.a'
@@ -99,5 +94,6 @@ Pod::Spec.new do |s|
99 94
     ]
100 95
   }
101 96
   s.dependency "AgoraRtcEngine_iOS", "2.3.3"
97
+  s.dependency 'React'
102 98
 
103 99
 end

+ 13
- 9
samples/simpleDemo/App.js ファイルの表示

@@ -51,7 +51,7 @@ export default class App extends Component<Props> {
51 51
       videoProfile: 40,
52 52
       clientRole: 1,
53 53
       swapWidthAndHeight: true,
54
-      channelName: 'defaultChannel'
54
+      channelName: null
55 55
     };
56 56
   }
57 57
 
@@ -62,27 +62,26 @@ export default class App extends Component<Props> {
62 62
   }
63 63
 
64 64
   onCancel = (error) => {
65
-    console.log("[error]", error);
66 65
     this.setState({
67 66
       showLive: false,
68
-      error
67
+      error: JSON.stringify(error)
69 68
     })
70 69
   }
71 70
 
72 71
   render() {
73 72
     if (this.state.showLive) {
73
+      console.log('channelName', this.state.channelName);
74 74
       return (<AgoraRTCView
75
-        onCancel={this.onCancel}
76 75
         channelProfile={this.state.channelProfile}
76
+        channelName={this.state.channelName}
77 77
         videoProfile={this.state.videoProfile}
78 78
         clientRole={this.state.clientRole}
79
-        swapWidthAndHeight={this.state.swapWidthAndHeight}
80
-        channelName={this.state.channelName}
79
+        onCancel={this.onCancel}
81 80
       ></AgoraRTCView>);
82 81
     }
83 82
     return (
84 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 85
         <TextInput
87 86
           style={{height: 40}}
88 87
           keyboardType='numeric'
@@ -112,12 +111,17 @@ export default class App extends Component<Props> {
112 111
             let matched = text.match(/\d+/g) && text.match(/\d+/g)[0]
113 112
             if (matched) {
114 113
               this.setState({clientRole: +matched})
115
-            }          }
114
+            }
115
+          }
116 116
         } />
117 117
         <TextInput
118 118
           style={{height: 40}}
119 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 126
         <TouchableOpacity
123 127
           style={styles.button}

+ 56
- 22
samples/simpleDemo/components/agora.js ファイルの表示

@@ -1,7 +1,7 @@
1 1
 import React, {Component, PureComponent} from 'react';
2 2
 import {
3 3
   StyleSheet, Text, View, TouchableOpacity,
4
-  Image, Dimensions, Modal, Platform
4
+  Image, Dimensions, Modal, Platform, NativeModules
5 5
 } from 'react-native';
6 6
 
7 7
 import {RtcEngine, AgoraView} from 'react-native-agora';
@@ -10,6 +10,20 @@ import {
10 10
   isIphoneX, isIphoneXR
11 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 27
 const BtnEndCall = () => require('../assets/btn_endcall.png');
14 28
 const BtnMute = () => require('../assets/btn_mute.png');
15 29
 const BtnSpeaker = () => require('../assets/btn_speaker.png');
@@ -86,11 +100,10 @@ type Props = {
86 100
   channelName: String,
87 101
   videoProfile: Number,
88 102
   clientRole: Number,
89
-  swapWidthAndHeight: Boolean,
90 103
   onCancel: Function
91 104
 }
92 105
 
93
-export default class Agora extends Component<Props> {
106
+export default class AgoraComponent extends Component<Props> {
94 107
   state = {
95 108
     peerIds: [],
96 109
     joinSucceed: false,
@@ -109,9 +122,19 @@ export default class Agora extends Component<Props> {
109 122
       channelProfile: this.props.channelProfile,
110 123
       videoProfile: this.props.videoProfile,
111 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 138
     RtcEngine.init(config);
116 139
   }
117 140
 
@@ -124,28 +147,22 @@ export default class Agora extends Component<Props> {
124 147
     RtcEngine.joinChannel(this.props.channelName);
125 148
     RtcEngine.enableAudioVolumeIndication(500, 3);
126 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 155
         this.setState({
133 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 161
         // RtcEngine.setShowLocalVideo()
139 162
         RtcEngine.startPreview();
140 163
         this.setState({
141 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 166
         const {peerIds} = this.state;
150 167
         if (peerIds.indexOf(data.uid) !== -1) {
151 168
           this.setState({
@@ -153,19 +170,36 @@ export default class Agora extends Component<Props> {
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 189
         console.log('[RtcEngine] onError', data);
158 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 200
   componentWillUnmount () {
168
-    RtcEngine.removeEmitter()
201
+    RtcEngine.leaveChannel();
202
+    RtcEngine.destroy();
169 203
   }
170 204
 
171 205
   handleCancel = () => {

+ 3
- 1
samples/simpleDemo/ios/Podfile ファイルの表示

@@ -13,7 +13,9 @@ target 'simpleDemo' do
13 13
   #  inherit! :search_paths
14 14
   #  # Pods for testing
15 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 19
   #pod "React", path: react_native_path
18 20
   #%w(DoubleConversion Folly glog).each do |lib_name|
19 21
   #  pod lib_name, podspec: "#{react_native_path}/third-party-podspecs/#{lib_name}.podspec"

+ 19
- 7
samples/simpleDemo/ios/Podfile.lock ファイルの表示

@@ -1,29 +1,41 @@
1 1
 PODS:
2 2
   - AgoraRtcEngine_iOS (2.3.3)
3
+  - React (0.58.3):
4
+    - React/Core (= 0.58.3)
3 5
   - react-native-agora (2.3.3):
4 6
     - AgoraRtcEngine_iOS (= 2.3.3)
7
+    - React
5 8
     - react-native-agora/AgoraRtcCryptoLoader (= 2.3.3)
6
-    - react-native-agora/AgoraRtcEngineKit (= 2.3.3)
7 9
   - react-native-agora/AgoraRtcCryptoLoader (2.3.3):
8 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 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 21
 SPEC REPOS:
16 22
   https://github.com/cocoapods/specs.git:
17 23
     - AgoraRtcEngine_iOS
18 24
 
19 25
 EXTERNAL SOURCES:
26
+  React:
27
+    :path: "../node_modules/react-native"
20 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 33
 SPEC CHECKSUMS:
24 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 41
 COCOAPODS: 1.5.3

+ 130
- 159
samples/simpleDemo/ios/simpleDemo.xcodeproj/project.pbxproj ファイルの表示

@@ -13,6 +13,8 @@
13 13
 		00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; };
14 14
 		00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; };
15 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 18
 		0842E3912206D315003875AC /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E36A2206D315003875AC /* libc++.tbd */; };
17 19
 		0842E3932206D31B003875AC /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E3922206D31B003875AC /* libresolv.tbd */; };
18 20
 		0842E3952206D320003875AC /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E3942206D320003875AC /* AVFoundation.framework */; };
@@ -21,9 +23,6 @@
21 23
 		0842E39C2206D332003875AC /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E39A2206D331003875AC /* CoreMedia.framework */; };
22 24
 		0842E39D2206D332003875AC /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0842E39B2206D332003875AC /* CoreMotion.framework */; };
23 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 26
 		11D1A2F320CAFA9E000508D9 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
28 27
 		133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; };
29 28
 		139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; };
@@ -34,6 +33,7 @@
34 33
 		13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
35 34
 		140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
36 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 37
 		2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
38 38
 		2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
39 39
 		2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
@@ -47,11 +47,10 @@
47 47
 		2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D16E6891FA4F8E400B85C8A /* libReact.a */; };
48 48
 		2DCD954D1E0B4F2C00145EB5 /* simpleDemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* simpleDemoTests.m */; };
49 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 50
 		832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
52 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 54
 		ED297163215061F000B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED297162215061F000B7C4FE /* JavaScriptCore.framework */; };
56 55
 		ED2971652150620600B7C4FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED2971642150620600B7C4FE /* JavaScriptCore.framework */; };
57 56
 /* End PBXBuildFile section */
@@ -99,6 +98,13 @@
99 98
 			remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
100 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 108
 		0842E3362206D244003875AC /* PBXContainerItemProxy */ = {
103 109
 			isa = PBXContainerItemProxy;
104 110
 			containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
@@ -127,13 +133,6 @@
127 133
 			remoteGlobalIDString = ED296FEE214C9CF800B7C4FE;
128 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 136
 		139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = {
138 137
 			isa = PBXContainerItemProxy;
139 138
 			containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */;
@@ -349,8 +348,7 @@
349 348
 		00E356EE1AD99517003FC87E /* simpleDemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = simpleDemoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
350 349
 		00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
351 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 352
 		0842E36A2206D315003875AC /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
355 353
 		0842E3922206D31B003875AC /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; };
356 354
 		0842E3942206D320003875AC /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
@@ -362,7 +360,7 @@
362 360
 		0842E3A02206D34C003875AC /* AgoraRtcEngineKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AgoraRtcEngineKit.framework; path = Pods/AgoraRtcEngine_iOS/AgoraRtcEngineKit.framework; sourceTree = "<group>"; };
363 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 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 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 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 366
 		13B07F961A680F5B00A75B9A /* simpleDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = simpleDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -376,23 +374,23 @@
376 374
 		2D02E47B1E0B4A5D006451C7 /* simpleDemo-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "simpleDemo-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
377 375
 		2D02E4901E0B4A5D006451C7 /* simpleDemo-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "simpleDemo-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
378 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 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 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 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 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 389
 		ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
395 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 394
 /* End PBXFileReference section */
397 395
 
398 396
 /* Begin PBXFrameworksBuildPhase section */
@@ -401,6 +399,7 @@
401 399
 			buildActionMask = 2147483647;
402 400
 			files = (
403 401
 				140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */,
402
+				1EDE4E5AD6EB936298841520 /* libPods-simpleDemoTests.a in Frameworks */,
404 403
 			);
405 404
 			runOnlyForDeploymentPostprocessing = 0;
406 405
 		};
@@ -408,9 +407,7 @@
408 407
 			isa = PBXFrameworksBuildPhase;
409 408
 			buildActionMask = 2147483647;
410 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 411
 				0842E39F2206D338003875AC /* CoreTelephony.framework in Frameworks */,
415 412
 				0842E39C2206D332003875AC /* CoreMedia.framework in Frameworks */,
416 413
 				0842E39D2206D332003875AC /* CoreMotion.framework in Frameworks */,
@@ -432,7 +429,7 @@
432 429
 				832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */,
433 430
 				00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
434 431
 				139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
435
-				C02FA657FA0B4EB58C0BFD88 /* libRCTAgora.a in Frameworks */,
432
+				05194A9809AFD1FDF74709E7 /* libPods-simpleDemo.a in Frameworks */,
436 433
 			);
437 434
 			runOnlyForDeploymentPostprocessing = 0;
438 435
 		};
@@ -449,7 +446,7 @@
449 446
 				2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */,
450 447
 				2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */,
451 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 451
 			runOnlyForDeploymentPostprocessing = 0;
455 452
 		};
@@ -458,7 +455,7 @@
458 455
 			buildActionMask = 2147483647;
459 456
 			files = (
460 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 460
 			runOnlyForDeploymentPostprocessing = 0;
464 461
 		};
@@ -524,20 +521,19 @@
524 521
 			name = "Supporting Files";
525 522
 			sourceTree = "<group>";
526 523
 		};
527
-		0842E3102206D244003875AC /* Recovered References */ = {
524
+		0835F32122113DBB00D06B62 /* Products */ = {
528 525
 			isa = PBXGroup;
529 526
 			children = (
530
-				8B9F98204ACA40738ADB1B26 /* libRCTAgora.a */,
527
+				0835F32522113DBB00D06B62 /* libRCTAgora.a */,
531 528
 			);
532
-			name = "Recovered References";
529
+			name = Products;
533 530
 			sourceTree = "<group>";
534 531
 		};
535
-		0842E33E2206D244003875AC /* Products */ = {
532
+		0842E3102206D244003875AC /* Recovered References */ = {
536 533
 			isa = PBXGroup;
537 534
 			children = (
538
-				0842E3422206D245003875AC /* libRCTAgora.a */,
539 535
 			);
540
-			name = Products;
536
+			name = "Recovered References";
541 537
 			sourceTree = "<group>";
542 538
 		};
543 539
 		139105B71AF99BAD00B5F7CC /* Products */ = {
@@ -614,29 +610,14 @@
614 610
 				ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
615 611
 				ED2971642150620600B7C4FE /* JavaScriptCore.framework */,
616 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 618
 			name = Frameworks;
623 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 621
 		5E91572E1DD0AC6500FF2AA8 /* Products */ = {
641 622
 			isa = PBXGroup;
642 623
 			children = (
@@ -658,6 +639,7 @@
658 639
 		832341AE1AAA6A7D00B99B32 /* Libraries */ = {
659 640
 			isa = PBXGroup;
660 641
 			children = (
642
+				0835F32022113DBB00D06B62 /* RCTAgora.xcodeproj */,
661 643
 				5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */,
662 644
 				146833FF1AC3E56700842450 /* React.xcodeproj */,
663 645
 				00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */,
@@ -670,7 +652,6 @@
670 652
 				832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */,
671 653
 				00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
672 654
 				139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
673
-				CA9AD93325024B3384E0F566 /* RCTAgora.xcodeproj */,
674 655
 			);
675 656
 			name = Libraries;
676 657
 			sourceTree = "<group>";
@@ -693,7 +674,7 @@
693 674
 				83CBBA001A601CBA00E9B192 /* Products */,
694 675
 				2D16E6871FA4F8E400B85C8A /* Frameworks */,
695 676
 				0842E3102206D244003875AC /* Recovered References */,
696
-				4703D98D5D154C759488B421 /* Pods */,
677
+				92B2639AF6824F9FB78D2D98 /* Pods */,
697 678
 			);
698 679
 			indentWidth = 2;
699 680
 			sourceTree = "<group>";
@@ -711,6 +692,21 @@
711 692
 			name = Products;
712 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 710
 		ADBDB9201DFEBF0600ED6528 /* Products */ = {
715 711
 			isa = PBXGroup;
716 712
 			children = (
@@ -727,7 +723,7 @@
727 723
 			isa = PBXNativeTarget;
728 724
 			buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "simpleDemoTests" */;
729 725
 			buildPhases = (
730
-				3FFC5D425E3DF3194460D800 /* [CP] Check Pods Manifest.lock */,
726
+				80B4FF9FD140311F9367E567 /* [CP] Check Pods Manifest.lock */,
731 727
 				00E356EA1AD99517003FC87E /* Sources */,
732 728
 				00E356EB1AD99517003FC87E /* Frameworks */,
733 729
 				00E356EC1AD99517003FC87E /* Resources */,
@@ -746,7 +742,7 @@
746 742
 			isa = PBXNativeTarget;
747 743
 			buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "simpleDemo" */;
748 744
 			buildPhases = (
749
-				8A8AC2B3E04BA4DFC465A578 /* [CP] Check Pods Manifest.lock */,
745
+				6199F491670B1F294BE7D6F9 /* [CP] Check Pods Manifest.lock */,
750 746
 				13B07F871A680F5B00A75B9A /* Sources */,
751 747
 				13B07F8C1A680F5B00A75B9A /* Frameworks */,
752 748
 				13B07F8E1A680F5B00A75B9A /* Resources */,
@@ -765,7 +761,7 @@
765 761
 			isa = PBXNativeTarget;
766 762
 			buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "simpleDemo-tvOS" */;
767 763
 			buildPhases = (
768
-				D54C70C54B42A6AFA965C0B1 /* [CP] Check Pods Manifest.lock */,
764
+				6D121135C9FF54DFB7ACAC38 /* [CP] Check Pods Manifest.lock */,
769 765
 				2D02E4771E0B4A5D006451C7 /* Sources */,
770 766
 				2D02E4781E0B4A5D006451C7 /* Frameworks */,
771 767
 				2D02E4791E0B4A5D006451C7 /* Resources */,
@@ -784,7 +780,7 @@
784 780
 			isa = PBXNativeTarget;
785 781
 			buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "simpleDemo-tvOSTests" */;
786 782
 			buildPhases = (
787
-				90EB8623CEFC3A44104B7505 /* [CP] Check Pods Manifest.lock */,
783
+				18B73F289B3D5EACD1288561 /* [CP] Check Pods Manifest.lock */,
788 784
 				2D02E48C1E0B4A5D006451C7 /* Sources */,
789 785
 				2D02E48D1E0B4A5D006451C7 /* Frameworks */,
790 786
 				2D02E48E1E0B4A5D006451C7 /* Resources */,
@@ -810,8 +806,17 @@
810 806
 				TargetAttributes = {
811 807
 					00E356ED1AD99517003FC87E = {
812 808
 						CreatedOnToolsVersion = 6.2;
809
+						DevelopmentTeam = 56968F5P8G;
813 810
 						TestTargetID = 13B07F861A680F5B00A75B9A;
814 811
 					};
812
+					13B07F861A680F5B00A75B9A = {
813
+						DevelopmentTeam = 56968F5P8G;
814
+						SystemCapabilities = {
815
+							com.apple.BackgroundModes = {
816
+								enabled = 1;
817
+							};
818
+						};
819
+					};
815 820
 					2D02E47A1E0B4A5D006451C7 = {
816 821
 						CreatedOnToolsVersion = 8.2.1;
817 822
 						ProvisioningStyle = Automatic;
@@ -840,8 +845,8 @@
840 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 852
 					ProductGroup = 5E91572E1DD0AC6500FF2AA8 /* Products */;
@@ -934,6 +939,13 @@
934 939
 			remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */;
935 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 949
 		0842E3372206D244003875AC /* libjsi.a */ = {
938 950
 			isa = PBXReferenceProxy;
939 951
 			fileType = archive.ar;
@@ -962,13 +974,6 @@
962 974
 			remoteRef = 0842E33C2206D244003875AC /* PBXContainerItemProxy */;
963 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 977
 		139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = {
973 978
 			isa = PBXReferenceProxy;
974 979
 			fileType = archive.ar;
@@ -1214,45 +1219,45 @@
1214 1219
 			);
1215 1220
 			runOnlyForDeploymentPostprocessing = 0;
1216 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 1225
 			isa = PBXShellScriptBuildPhase;
1221 1226
 			buildActionMask = 2147483647;
1222 1227
 			files = (
1223 1228
 			);
1229
+			inputFileListPaths = (
1230
+			);
1224 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 1238
 			outputPaths = (
1239
+				"$(DERIVED_FILE_DIR)/Pods-simpleDemo-tvOSTests-checkManifestLockResult.txt",
1228 1240
 			);
1229 1241
 			runOnlyForDeploymentPostprocessing = 0;
1230 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 1247
 			isa = PBXShellScriptBuildPhase;
1235 1248
 			buildActionMask = 2147483647;
1236 1249
 			files = (
1237 1250
 			);
1238
-			inputFileListPaths = (
1239
-			);
1240 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 1254
 			outputPaths = (
1248
-				"$(DERIVED_FILE_DIR)/Pods-simpleDemoTests-checkManifestLockResult.txt",
1249 1255
 			);
1250 1256
 			runOnlyForDeploymentPostprocessing = 0;
1251 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 1261
 			isa = PBXShellScriptBuildPhase;
1257 1262
 			buildActionMask = 2147483647;
1258 1263
 			files = (
@@ -1274,7 +1279,7 @@
1274 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 1280
 			showEnvVarsInLog = 0;
1276 1281
 		};
1277
-		90EB8623CEFC3A44104B7505 /* [CP] Check Pods Manifest.lock */ = {
1282
+		6D121135C9FF54DFB7ACAC38 /* [CP] Check Pods Manifest.lock */ = {
1278 1283
 			isa = PBXShellScriptBuildPhase;
1279 1284
 			buildActionMask = 2147483647;
1280 1285
 			files = (
@@ -1289,14 +1294,14 @@
1289 1294
 			outputFileListPaths = (
1290 1295
 			);
1291 1296
 			outputPaths = (
1292
-				"$(DERIVED_FILE_DIR)/Pods-simpleDemo-tvOSTests-checkManifestLockResult.txt",
1297
+				"$(DERIVED_FILE_DIR)/Pods-simpleDemo-tvOS-checkManifestLockResult.txt",
1293 1298
 			);
1294 1299
 			runOnlyForDeploymentPostprocessing = 0;
1295 1300
 			shellPath = /bin/sh;
1296 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 1302
 			showEnvVarsInLog = 0;
1298 1303
 		};
1299
-		D54C70C54B42A6AFA965C0B1 /* [CP] Check Pods Manifest.lock */ = {
1304
+		80B4FF9FD140311F9367E567 /* [CP] Check Pods Manifest.lock */ = {
1300 1305
 			isa = PBXShellScriptBuildPhase;
1301 1306
 			buildActionMask = 2147483647;
1302 1307
 			files = (
@@ -1311,7 +1316,7 @@
1311 1316
 			outputFileListPaths = (
1312 1317
 			);
1313 1318
 			outputPaths = (
1314
-				"$(DERIVED_FILE_DIR)/Pods-simpleDemo-tvOS-checkManifestLockResult.txt",
1319
+				"$(DERIVED_FILE_DIR)/Pods-simpleDemoTests-checkManifestLockResult.txt",
1315 1320
 			);
1316 1321
 			runOnlyForDeploymentPostprocessing = 0;
1317 1322
 			shellPath = /bin/sh;
@@ -1385,24 +1390,19 @@
1385 1390
 /* Begin XCBuildConfiguration section */
1386 1391
 		00E356F61AD99517003FC87E /* Debug */ = {
1387 1392
 			isa = XCBuildConfiguration;
1388
-			baseConfigurationReference = 8DD8116E964676CE1B43C594 /* Pods-simpleDemoTests.debug.xcconfig */;
1393
+			baseConfigurationReference = 0A0E55F5895DC7A7CD825A1B /* Pods-simpleDemoTests.debug.xcconfig */;
1389 1394
 			buildSettings = {
1390 1395
 				BUNDLE_LOADER = "$(TEST_HOST)";
1396
+				DEVELOPMENT_TEAM = 56968F5P8G;
1391 1397
 				GCC_PREPROCESSOR_DEFINITIONS = (
1392 1398
 					"DEBUG=1",
1393 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 1402
 				INFOPLIST_FILE = simpleDemoTests/Info.plist;
1400 1403
 				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
1401 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 1406
 				OTHER_LDFLAGS = (
1407 1407
 					"-ObjC",
1408 1408
 					"-lc++",
@@ -1415,21 +1415,16 @@
1415 1415
 		};
1416 1416
 		00E356F71AD99517003FC87E /* Release */ = {
1417 1417
 			isa = XCBuildConfiguration;
1418
-			baseConfigurationReference = 5B69BB0F0278983EB91EFB36 /* Pods-simpleDemoTests.release.xcconfig */;
1418
+			baseConfigurationReference = B4BEA34A2BE6170D8015E6E6 /* Pods-simpleDemoTests.release.xcconfig */;
1419 1419
 			buildSettings = {
1420 1420
 				BUNDLE_LOADER = "$(TEST_HOST)";
1421 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 1424
 				INFOPLIST_FILE = simpleDemoTests/Info.plist;
1427 1425
 				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
1428 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 1428
 				OTHER_LDFLAGS = (
1434 1429
 					"-ObjC",
1435 1430
 					"-lc++",
@@ -1442,32 +1437,32 @@
1442 1437
 		};
1443 1438
 		13B07F941A680F5B00A75B9A /* Debug */ = {
1444 1439
 			isa = XCBuildConfiguration;
1445
-			baseConfigurationReference = A5782448EE30AD496E22F402 /* Pods-simpleDemo.debug.xcconfig */;
1440
+			baseConfigurationReference = C246F6B5A5B225491EE41834 /* Pods-simpleDemo.debug.xcconfig */;
1446 1441
 			buildSettings = {
1447 1442
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1448 1443
 				CURRENT_PROJECT_VERSION = 1;
1449 1444
 				DEAD_CODE_STRIPPING = NO;
1445
+				DEVELOPMENT_TEAM = 56968F5P8G;
1450 1446
 				FRAMEWORK_SEARCH_PATHS = (
1451 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 1450
 				HEADER_SEARCH_PATHS = (
1456 1451
 					"$(inherited)",
1457
-					"$(SRCROOT)/../node_modules/react-native-agora/ios/RCTAgora/libs/**",
1452
+					"$(SRCROOT)/../node_modules/react-native-agora/ios/**",
1458 1453
 				);
1459 1454
 				INFOPLIST_FILE = simpleDemo/Info.plist;
1460 1455
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1461 1456
 				LIBRARY_SEARCH_PATHS = (
1462 1457
 					"$(inherited)",
1463
-					"$(SRCROOT)/../node_modules/react-native-agora/ios/RCTAgora/libs",
1458
+					"$(SRCROOT)/../node_modules/react-native-agora/ios/**",
1464 1459
 				);
1465 1460
 				OTHER_LDFLAGS = (
1466 1461
 					"$(inherited)",
1467 1462
 					"-ObjC",
1468 1463
 					"-lc++",
1469 1464
 				);
1470
-				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
1465
+				PRODUCT_BUNDLE_IDENTIFIER = tori.mori.mobi;
1471 1466
 				PRODUCT_NAME = simpleDemo;
1472 1467
 				VERSIONING_SYSTEM = "apple-generic";
1473 1468
 			};
@@ -1475,31 +1470,31 @@
1475 1470
 		};
1476 1471
 		13B07F951A680F5B00A75B9A /* Release */ = {
1477 1472
 			isa = XCBuildConfiguration;
1478
-			baseConfigurationReference = 8C859670831DE00C89A5E486 /* Pods-simpleDemo.release.xcconfig */;
1473
+			baseConfigurationReference = BA1D76D22058F0FE11245706 /* Pods-simpleDemo.release.xcconfig */;
1479 1474
 			buildSettings = {
1480 1475
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1481 1476
 				CURRENT_PROJECT_VERSION = 1;
1477
+				DEVELOPMENT_TEAM = 56968F5P8G;
1482 1478
 				FRAMEWORK_SEARCH_PATHS = (
1483 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 1482
 				HEADER_SEARCH_PATHS = (
1488 1483
 					"$(inherited)",
1489
-					"$(SRCROOT)/../node_modules/react-native-agora/ios/RCTAgora/libs/**",
1484
+					"$(SRCROOT)/../node_modules/react-native-agora/ios/**",
1490 1485
 				);
1491 1486
 				INFOPLIST_FILE = simpleDemo/Info.plist;
1492 1487
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1493 1488
 				LIBRARY_SEARCH_PATHS = (
1494 1489
 					"$(inherited)",
1495
-					"$(SRCROOT)/../node_modules/react-native-agora/ios/RCTAgora/libs",
1490
+					"$(SRCROOT)/../node_modules/react-native-agora/ios/**",
1496 1491
 				);
1497 1492
 				OTHER_LDFLAGS = (
1498 1493
 					"$(inherited)",
1499 1494
 					"-ObjC",
1500 1495
 					"-lc++",
1501 1496
 				);
1502
-				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
1497
+				PRODUCT_BUNDLE_IDENTIFIER = tori.mori.mobi;
1503 1498
 				PRODUCT_NAME = simpleDemo;
1504 1499
 				VERSIONING_SYSTEM = "apple-generic";
1505 1500
 			};
@@ -1507,7 +1502,7 @@
1507 1502
 		};
1508 1503
 		2D02E4971E0B4A5E006451C7 /* Debug */ = {
1509 1504
 			isa = XCBuildConfiguration;
1510
-			baseConfigurationReference = 0DB04D9AEAA74EF6607A82A9 /* Pods-simpleDemo-tvOS.debug.xcconfig */;
1505
+			baseConfigurationReference = F5A5F433C9A120BCBAB88C30 /* Pods-simpleDemo-tvOS.debug.xcconfig */;
1511 1506
 			buildSettings = {
1512 1507
 				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
1513 1508
 				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -1518,16 +1513,10 @@
1518 1513
 				DEBUG_INFORMATION_FORMAT = dwarf;
1519 1514
 				ENABLE_TESTABILITY = YES;
1520 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 1517
 				INFOPLIST_FILE = "simpleDemo-tvOS/Info.plist";
1526 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 1520
 				OTHER_LDFLAGS = (
1532 1521
 					"-ObjC",
1533 1522
 					"-lc++",
@@ -1542,7 +1531,7 @@
1542 1531
 		};
1543 1532
 		2D02E4981E0B4A5E006451C7 /* Release */ = {
1544 1533
 			isa = XCBuildConfiguration;
1545
-			baseConfigurationReference = C8B44CB320F35679C035C147 /* Pods-simpleDemo-tvOS.release.xcconfig */;
1534
+			baseConfigurationReference = B1F8F74BA7E4A893B45EBA14 /* Pods-simpleDemo-tvOS.release.xcconfig */;
1546 1535
 			buildSettings = {
1547 1536
 				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
1548 1537
 				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -1553,16 +1542,10 @@
1553 1542
 				COPY_PHASE_STRIP = NO;
1554 1543
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
1555 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 1546
 				INFOPLIST_FILE = "simpleDemo-tvOS/Info.plist";
1561 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 1549
 				OTHER_LDFLAGS = (
1567 1550
 					"-ObjC",
1568 1551
 					"-lc++",
@@ -1577,7 +1560,7 @@
1577 1560
 		};
1578 1561
 		2D02E4991E0B4A5E006451C7 /* Debug */ = {
1579 1562
 			isa = XCBuildConfiguration;
1580
-			baseConfigurationReference = B835BA3CB4E5C940B624A18B /* Pods-simpleDemo-tvOSTests.debug.xcconfig */;
1563
+			baseConfigurationReference = FE09FB8163CC564FE6E1A0D1 /* Pods-simpleDemo-tvOSTests.debug.xcconfig */;
1581 1564
 			buildSettings = {
1582 1565
 				BUNDLE_LOADER = "$(TEST_HOST)";
1583 1566
 				CLANG_ANALYZER_NONNULL = YES;
@@ -1587,16 +1570,10 @@
1587 1570
 				DEBUG_INFORMATION_FORMAT = dwarf;
1588 1571
 				ENABLE_TESTABILITY = YES;
1589 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 1574
 				INFOPLIST_FILE = "simpleDemo-tvOSTests/Info.plist";
1595 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 1577
 				OTHER_LDFLAGS = (
1601 1578
 					"-ObjC",
1602 1579
 					"-lc++",
@@ -1611,7 +1588,7 @@
1611 1588
 		};
1612 1589
 		2D02E49A1E0B4A5E006451C7 /* Release */ = {
1613 1590
 			isa = XCBuildConfiguration;
1614
-			baseConfigurationReference = 70A91D90042C89CC6EF0E8CD /* Pods-simpleDemo-tvOSTests.release.xcconfig */;
1591
+			baseConfigurationReference = C6621048A1D76D31934A4971 /* Pods-simpleDemo-tvOSTests.release.xcconfig */;
1615 1592
 			buildSettings = {
1616 1593
 				BUNDLE_LOADER = "$(TEST_HOST)";
1617 1594
 				CLANG_ANALYZER_NONNULL = YES;
@@ -1621,16 +1598,10 @@
1621 1598
 				COPY_PHASE_STRIP = NO;
1622 1599
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
1623 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 1602
 				INFOPLIST_FILE = "simpleDemo-tvOSTests/Info.plist";
1629 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 1605
 				OTHER_LDFLAGS = (
1635 1606
 					"-ObjC",
1636 1607
 					"-lc++",

バイナリ
samples/simpleDemo/ios/simpleDemo.xcodeproj/project.xcworkspace/xcuserdata/ly.xcuserdatad/UserInterfaceState.xcuserstate ファイルの表示


+ 1
- 1
samples/simpleDemo/ios/simpleDemo.xcodeproj/xcshareddata/xcschemes/simpleDemo-tvOS.xcscheme ファイルの表示

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

+ 1
- 1
samples/simpleDemo/ios/simpleDemo.xcodeproj/xcshareddata/xcschemes/simpleDemo.xcscheme ファイルの表示

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

+ 15
- 0
samples/simpleDemo/ios/simpleDemo/Images.xcassets/AppIcon.appiconset/Contents.json ファイルの表示

@@ -1,5 +1,15 @@
1 1
 {
2 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 14
       "idiom" : "iphone",
5 15
       "size" : "29x29",
@@ -29,6 +39,11 @@
29 39
       "idiom" : "iphone",
30 40
       "size" : "60x60",
31 41
       "scale" : "3x"
42
+    },
43
+    {
44
+      "idiom" : "ios-marketing",
45
+      "size" : "1024x1024",
46
+      "scale" : "1x"
32 47
     }
33 48
   ],
34 49
   "info" : {

+ 21
- 16
samples/simpleDemo/ios/simpleDemo/Info.plist ファイルの表示

@@ -24,8 +24,25 @@
24 24
 	<string>1</string>
25 25
 	<key>LSRequiresIPhoneOS</key>
26 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 40
 	<key>NSLocationWhenInUseUsageDescription</key>
28 41
 	<string></string>
42
+	<key>UIBackgroundModes</key>
43
+	<array>
44
+		<string>audio</string>
45
+	</array>
29 46
 	<key>UILaunchStoryboardName</key>
30 47
 	<string>LaunchScreen</string>
31 48
 	<key>UIRequiredDeviceCapabilities</key>
@@ -40,21 +57,9 @@
40 57
 	</array>
41 58
 	<key>UIViewControllerBasedStatusBarAppearance</key>
42 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 64
 </dict>
60 65
 </plist>

+ 1
- 1
samples/simpleDemo/utils.js ファイルの表示

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

+ 182
- 189
samples/simpleDemo/yarn.lock ファイルの表示

@@ -30,11 +30,11 @@
30 30
     source-map "^0.5.0"
31 31
 
32 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 36
   dependencies:
37
-    "@babel/types" "^7.3.0"
37
+    "@babel/types" "^7.3.2"
38 38
     jsesc "^2.5.1"
39 39
     lodash "^4.17.10"
40 40
     source-map "^0.5.0"
@@ -73,9 +73,9 @@
73 73
     "@babel/types" "^7.0.0"
74 74
 
75 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 79
   dependencies:
80 80
     "@babel/helper-function-name" "^7.1.0"
81 81
     "@babel/helper-member-expression-to-functions" "^7.0.0"
@@ -233,9 +233,9 @@
233 233
     js-tokens "^4.0.0"
234 234
 
235 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 240
 "@babel/plugin-external-helpers@^7.0.0":
241 241
   version "7.2.0"
@@ -269,9 +269,9 @@
269 269
     "@babel/plugin-syntax-nullish-coalescing-operator" "^7.2.0"
270 270
 
271 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 275
   dependencies:
276 276
     "@babel/helper-plugin-utils" "^7.0.0"
277 277
     "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
@@ -415,9 +415,9 @@
415 415
     "@babel/helper-plugin-utils" "^7.0.0"
416 416
 
417 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 421
   dependencies:
422 422
     "@babel/helper-plugin-utils" "^7.0.0"
423 423
 
@@ -578,9 +578,9 @@
578 578
     "@babel/helper-plugin-utils" "^7.0.0"
579 579
 
580 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 584
   dependencies:
585 585
     "@babel/helper-plugin-utils" "^7.0.0"
586 586
     "@babel/plugin-syntax-typescript" "^7.2.0"
@@ -638,10 +638,10 @@
638 638
     globals "^11.1.0"
639 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 645
   dependencies:
646 646
     esutils "^2.0.2"
647 647
     lodash "^4.17.10"
@@ -689,14 +689,14 @@ acorn@^5.5.3:
689 689
   integrity sha1-Z6ojG/iBKXS4UjWpZ3Hra9B+onk=
690 690
 
691 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 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 700
   dependencies:
701 701
     fast-deep-equal "^2.0.1"
702 702
     fast-json-stable-stringify "^2.0.0"
@@ -1018,13 +1018,15 @@ babel-jest@23.6.0, babel-jest@^23.6.0:
1018 1018
     babel-plugin-istanbul "^4.1.6"
1019 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 1025
   dependencies:
1026 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 1031
 babel-messages@^6.23.0:
1030 1032
   version "6.23.0"
@@ -1057,10 +1059,10 @@ babel-plugin-jest-hoist@^23.2.0:
1057 1059
   resolved "http://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167"
1058 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 1067
 babel-plugin-syntax-object-rest-spread@^6.13.0:
1066 1068
   version "6.13.0"
@@ -1113,13 +1115,13 @@ babel-preset-jest@^23.2.0:
1113 1115
     babel-plugin-jest-hoist "^23.2.0"
1114 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 1122
   dependencies:
1121 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 1126
 babel-register@^6.26.0:
1125 1127
   version "6.26.0"
@@ -1306,11 +1308,6 @@ buffer-from@^1.0.0:
1306 1308
   resolved "http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
1307 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 1311
 bytes@3.0.0:
1315 1312
   version "3.0.0"
1316 1313
   resolved "http://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
@@ -1388,7 +1385,7 @@ chalk@^1.1.1, chalk@^1.1.3:
1388 1385
     strip-ansi "^3.0.0"
1389 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 1389
   version "2.4.2"
1393 1390
   resolved "http://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
1394 1391
   integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=
@@ -1597,9 +1594,9 @@ core-js@^1.0.0:
1597 1594
   integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=
1598 1595
 
1599 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 1601
 core-util-is@1.0.2, core-util-is@~1.0.0:
1605 1602
   version "1.0.2"
@@ -1646,9 +1643,9 @@ cross-spawn@^6.0.0:
1646 1643
     which "^1.2.9"
1647 1644
 
1648 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 1650
 cssstyle@^1.0.0:
1654 1651
   version "1.1.1"
@@ -2028,10 +2025,10 @@ expect@^23.6.0:
2028 2025
     jest-message-util "^23.4.0"
2029 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 2032
   dependencies:
2036 2033
     ansi-styles "^3.2.0"
2037 2034
     jest-get-type "^24.0.0"
@@ -2453,9 +2450,9 @@ growly@^1.3.0:
2453 2450
   integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
2454 2451
 
2455 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 2456
   dependencies:
2460 2457
     async "^2.5.0"
2461 2458
     optimist "^0.6.1"
@@ -2688,10 +2685,10 @@ invert-kv@^2.0.0:
2688 2685
   resolved "http://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
2689 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 2693
 is-accessor-descriptor@^0.1.6:
2697 2694
   version "0.1.6"
@@ -2717,13 +2714,6 @@ is-buffer@^1.1.5:
2717 2714
   resolved "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
2718 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 2717
 is-callable@^1.1.4:
2728 2718
   version "1.1.4"
2729 2719
   resolved "http://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
@@ -2925,6 +2915,11 @@ is-windows@^1.0.2:
2925 2915
   resolved "http://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
2926 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 2923
 isarray@1.0.0, isarray@~1.0.0:
2929 2924
   version "1.0.0"
2930 2925
   resolved "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
@@ -3001,11 +2996,6 @@ istanbul-lib-coverage@^1.2.0, istanbul-lib-coverage@^1.2.1:
3001 2996
   resolved "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0"
3002 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 2999
 istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.3:
3010 3000
   version "2.0.3"
3011 3001
   resolved "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-2.0.3.tgz#0b891e5ad42312c2b9488554f603795f9a2211ba"
@@ -3038,20 +3028,7 @@ istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2:
3038 3028
     istanbul-lib-coverage "^1.2.1"
3039 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 3032
   version "3.1.0"
3056 3033
   resolved "http://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-3.1.0.tgz#a2b5484a7d445f1f311e93190813fa56dfb62971"
3057 3034
   integrity sha1-orVISn1EXx8xHpMZCBP6Vt+2KXE=
@@ -3177,9 +3154,9 @@ jest-cli@^23.6.0:
3177 3154
     yargs "^11.0.0"
3178 3155
 
3179 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 3160
   dependencies:
3184 3161
     ansi-escapes "^3.0.0"
3185 3162
     chalk "^2.0.1"
@@ -3193,16 +3170,16 @@ jest-cli@^24.0.0-alpha.6:
3193 3170
     istanbul-lib-instrument "^3.0.1"
3194 3171
     istanbul-lib-source-maps "^3.0.1"
3195 3172
     jest-changed-files "^24.0.0"
3196
-    jest-config "^24.0.0"
3173
+    jest-config "^24.1.0"
3197 3174
     jest-environment-jsdom "^24.0.0"
3198 3175
     jest-get-type "^24.0.0"
3199 3176
     jest-haste-map "^24.0.0"
3200 3177
     jest-message-util "^24.0.0"
3201 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 3183
     jest-util "^24.0.0"
3207 3184
     jest-validate "^24.0.0"
3208 3185
     jest-watcher "^24.0.0"
@@ -3240,27 +3217,26 @@ jest-config@^23.6.0:
3240 3217
     micromatch "^2.3.11"
3241 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 3224
   dependencies:
3248 3225
     "@babel/core" "^7.1.0"
3249
-    babel-jest "^24.0.0"
3226
+    babel-jest "^24.1.0"
3250 3227
     chalk "^2.0.1"
3251 3228
     glob "^7.1.1"
3252 3229
     jest-environment-jsdom "^24.0.0"
3253 3230
     jest-environment-node "^24.0.0"
3254 3231
     jest-get-type "^24.0.0"
3255
-    jest-jasmine2 "^24.0.0"
3232
+    jest-jasmine2 "^24.1.0"
3256 3233
     jest-regex-util "^24.0.0"
3257
-    jest-resolve "^24.0.0"
3234
+    jest-resolve "^24.1.0"
3258 3235
     jest-util "^24.0.0"
3259 3236
     jest-validate "^24.0.0"
3260 3237
     micromatch "^3.1.10"
3261 3238
     pretty-format "^24.0.0"
3262 3239
     realpath-native "^1.0.2"
3263
-    uuid "^3.3.2"
3264 3240
 
3265 3241
 jest-diff@^23.6.0:
3266 3242
   version "23.6.0"
@@ -3417,22 +3393,23 @@ jest-jasmine2@^23.6.0:
3417 3393
     jest-util "^23.4.0"
3418 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 3400
   dependencies:
3425 3401
     "@babel/traverse" "^7.1.0"
3426 3402
     chalk "^2.0.1"
3427 3403
     co "^4.6.0"
3428
-    expect "^24.0.0"
3404
+    expect "^24.1.0"
3429 3405
     is-generator-fn "^2.0.0"
3430 3406
     jest-each "^24.0.0"
3431 3407
     jest-matcher-utils "^24.0.0"
3432 3408
     jest-message-util "^24.0.0"
3433
-    jest-snapshot "^24.0.0"
3409
+    jest-snapshot "^24.1.0"
3434 3410
     jest-util "^24.0.0"
3435 3411
     pretty-format "^24.0.0"
3412
+    throat "^4.0.0"
3436 3413
 
3437 3414
 jest-junit@5.2.0:
3438 3415
   version "5.2.0"
@@ -3528,13 +3505,13 @@ jest-resolve-dependencies@^23.6.0:
3528 3505
     jest-regex-util "^23.3.0"
3529 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 3512
   dependencies:
3536 3513
     jest-regex-util "^24.0.0"
3537
-    jest-snapshot "^24.0.0"
3514
+    jest-snapshot "^24.1.0"
3538 3515
 
3539 3516
 jest-resolve@^23.6.0:
3540 3517
   version "23.6.0"
@@ -3545,10 +3522,10 @@ jest-resolve@^23.6.0:
3545 3522
     chalk "^2.0.1"
3546 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 3529
   dependencies:
3553 3530
     browser-resolve "^1.11.3"
3554 3531
     chalk "^2.0.1"
@@ -3573,20 +3550,21 @@ jest-runner@^23.6.0:
3573 3550
     source-map-support "^0.5.6"
3574 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 3557
   dependencies:
3558
+    chalk "^2.4.2"
3581 3559
     exit "^0.1.2"
3582 3560
     graceful-fs "^4.1.15"
3583
-    jest-config "^24.0.0"
3561
+    jest-config "^24.1.0"
3584 3562
     jest-docblock "^24.0.0"
3585 3563
     jest-haste-map "^24.0.0"
3586
-    jest-jasmine2 "^24.0.0"
3564
+    jest-jasmine2 "^24.1.0"
3587 3565
     jest-leak-detector "^24.0.0"
3588 3566
     jest-message-util "^24.0.0"
3589
-    jest-runtime "^24.0.0"
3567
+    jest-runtime "^24.1.0"
3590 3568
     jest-util "^24.0.0"
3591 3569
     jest-worker "^24.0.0"
3592 3570
     source-map-support "^0.5.6"
@@ -3619,10 +3597,10 @@ jest-runtime@^23.6.0:
3619 3597
     write-file-atomic "^2.1.0"
3620 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 3604
   dependencies:
3627 3605
     "@babel/core" "^7.1.0"
3628 3606
     babel-plugin-istanbul "^5.1.0"
@@ -3632,19 +3610,19 @@ jest-runtime@^24.0.0:
3632 3610
     fast-json-stable-stringify "^2.0.0"
3633 3611
     glob "^7.1.3"
3634 3612
     graceful-fs "^4.1.15"
3635
-    jest-config "^24.0.0"
3613
+    jest-config "^24.1.0"
3636 3614
     jest-haste-map "^24.0.0"
3637 3615
     jest-message-util "^24.0.0"
3638 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 3619
     jest-util "^24.0.0"
3642 3620
     jest-validate "^24.0.0"
3643 3621
     micromatch "^3.1.10"
3644 3622
     realpath-native "^1.0.0"
3645 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 3626
     yargs "^12.0.2"
3649 3627
 
3650 3628
 jest-serializer@24.0.0-alpha.6:
@@ -3678,17 +3656,17 @@ jest-snapshot@^23.6.0:
3678 3656
     pretty-format "^23.6.0"
3679 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 3663
   dependencies:
3686 3664
     "@babel/types" "^7.0.0"
3687 3665
     chalk "^2.0.1"
3688 3666
     jest-diff "^24.0.0"
3689 3667
     jest-matcher-utils "^24.0.0"
3690 3668
     jest-message-util "^24.0.0"
3691
-    jest-resolve "^24.0.0"
3669
+    jest-resolve "^24.1.0"
3692 3670
     mkdirp "^0.5.1"
3693 3671
     natural-compare "^1.4.0"
3694 3672
     pretty-format "^24.0.0"
@@ -3972,10 +3950,10 @@ kleur@^2.0.1:
3972 3950
   resolved "http://registry.npm.taobao.org/kleur/download/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300"
3973 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 3958
 lcid@^1.0.0:
3981 3959
   version "1.0.0"
@@ -4431,16 +4409,21 @@ micromatch@^3.1.10, micromatch@^3.1.4:
4431 4409
     snapdragon "^0.8.1"
4432 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 4417
 mime-db@~1.23.0:
4440 4418
   version "1.23.0"
4441 4419
   resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.23.0.tgz#a31b4070adaea27d732ea333740a64d0ec9a6659"
4442 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 4427
 mime-types@2.1.11:
4445 4428
   version "2.1.11"
4446 4429
   resolved "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.11.tgz#c259c471bda808a85d6cd193b430a5fae4473b3c"
@@ -4625,11 +4608,12 @@ node-modules-regexp@^1.0.0:
4625 4608
   integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
4626 4609
 
4627 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 4614
   dependencies:
4632 4615
     growly "^1.3.0"
4616
+    is-wsl "^1.1.0"
4633 4617
     semver "^5.5.0"
4634 4618
     shellwords "^0.1.1"
4635 4619
     which "^1.3.0"
@@ -4659,12 +4643,12 @@ nopt@^4.0.1:
4659 4643
     osenv "^0.1.4"
4660 4644
 
4661 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 4649
   dependencies:
4666 4650
     hosted-git-info "^2.1.4"
4667
-    is-builtin-module "^1.0.0"
4651
+    resolve "^1.10.0"
4668 4652
     semver "2 || 3 || 4 || 5"
4669 4653
     validate-npm-package-license "^3.0.1"
4670 4654
 
@@ -4676,14 +4660,14 @@ normalize-path@^2.0.1, normalize-path@^2.1.1:
4676 4660
     remove-trailing-separator "^1.0.1"
4677 4661
 
4678 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 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 4671
   dependencies:
4688 4672
     ignore-walk "^3.0.1"
4689 4673
     npm-bundled "^1.0.1"
@@ -4725,9 +4709,9 @@ number-is-nan@^1.0.0:
4725 4709
   integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
4726 4710
 
4727 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 4716
 oauth-sign@~0.9.0:
4733 4717
   version "0.9.0"
@@ -5189,20 +5173,20 @@ prompts@^0.1.9:
5189 5173
     sisteransi "^0.1.1"
5190 5174
 
5191 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 5179
   dependencies:
5196
-    kleur "^3.0.0"
5180
+    kleur "^3.0.2"
5197 5181
     sisteransi "^1.0.0"
5198 5182
 
5199 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 5187
   dependencies:
5204
-    loose-envify "^1.3.1"
5205 5188
     object-assign "^4.1.1"
5189
+    react-is "^16.8.1"
5206 5190
 
5207 5191
 pseudomap@^1.0.2:
5208 5192
   version "1.0.2"
@@ -5279,10 +5263,10 @@ react-devtools-core@^3.4.2:
5279 5263
     shell-quote "^1.6.1"
5280 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 5271
 "react-native-agora@file:../..":
5288 5272
   version "2.3.3"
@@ -5621,7 +5605,7 @@ resolve@1.1.7:
5621 5605
   resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
5622 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 5609
   version "1.10.0"
5626 5610
   resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba"
5627 5611
   integrity sha1-O9qur0XMB/N1ZW39LlTtCBCxAbo=
@@ -6199,9 +6183,9 @@ test-exclude@^4.2.1:
6199 6183
     require-main-filename "^1.0.1"
6200 6184
 
6201 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 6189
   dependencies:
6206 6190
     arrify "^1.0.1"
6207 6191
     minimatch "^3.0.4"
@@ -6279,11 +6263,11 @@ to-regex@^3.0.1, to-regex@^3.0.2:
6279 6263
     safe-regex "^1.1.0"
6280 6264
 
6281 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 6269
   dependencies:
6286
-    ip-regex "^3.0.0"
6270
+    ip-regex "^2.1.0"
6287 6271
     psl "^1.1.28"
6288 6272
     punycode "^2.1.1"
6289 6273
 
@@ -6587,6 +6571,15 @@ wrappy@1:
6587 6571
   resolved "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
6588 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 6583
 write-file-atomic@^1.2.0:
6591 6584
   version "1.3.4"
6592 6585
   resolved "http://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
@@ -6596,7 +6589,7 @@ write-file-atomic@^1.2.0:
6596 6589
     imurmurhash "^0.1.4"
6597 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 6593
   version "2.4.2"
6601 6594
   resolved "http://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9"
6602 6595
   integrity sha1-pxgXBt+6F4VdIhFAqcBuFfzdh7k=

+ 101
- 15
src/RtcEngine.native.ts ファイルの表示

@@ -1,6 +1,6 @@
1 1
 import {
2 2
     NativeModules,
3
-    NativeAppEventEmitter,
3
+    NativeEventEmitter,
4 4
     EmitterSubscription
5 5
 } from 'react-native';
6 6
 
@@ -11,18 +11,21 @@ import {
11 11
     String, Number
12 12
 } from "./types.d";
13 13
 
14
+
14 15
 const { Agora } = NativeModules;
16
+const AgoraEventEmitter = new NativeEventEmitter(Agora);
15 17
 
16 18
 export default class RtcEngine {
17 19
 
18
-    private static listener: EmitterSubscription;
20
+    private static listeners: Array<EmitterSubscription>;
19 21
     static init(options: Option): void {
20 22
         this.removeEmitter();
21 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 31
     static joinChannelWithToken(
@@ -31,15 +34,94 @@ export default class RtcEngine {
31 34
     }
32 35
 
33 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 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 127
     static enableLastmileTest() {
@@ -51,7 +133,7 @@ export default class RtcEngine {
51 133
     }
52 134
 
53 135
     static leaveChannel() {
54
-        Agora.leaveChannel();
136
+        return Agora.leaveChannel();
55 137
     }
56 138
 
57 139
     static destroy() {
@@ -118,8 +200,12 @@ export default class RtcEngine {
118 200
         Agora.muteRemoteAudioStream(uid, status);
119 201
     }
120 202
 
203
+    static muteAllRemoteAudioStreams(status: boolean) {
204
+        Agora.muteAllRemoteAudioStreams(status);
205
+    }
206
+
121 207
     static setCameraTorchOn(status: boolean) {
122
-        Agora.setCameraTorchOn(status);
208
+        return Agora.setCameraTorchOn(status);
123 209
     }
124 210
 
125 211
     static setCameraAutoFocusFaceModeEnabled(status: boolean) {
@@ -142,8 +228,8 @@ export default class RtcEngine {
142 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 235
     static createDataStream(reliable: boolean, ordered: boolean, callback: Callback<void>) {
@@ -155,6 +241,6 @@ export default class RtcEngine {
155 241
     }
156 242
 
157 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 ファイルの表示

@@ -15,7 +15,9 @@ export interface Option {
15 15
   videoProfile: number
16 16
   channelProfile: number,
17 17
   videoEncoderConfig: VideoEncoderConfig,
18
-  clientRole: number
18
+  clientRole: number,
19
+  audioProfile: number,
20
+  audioScenario: number
19 21
 }
20 22
 
21 23
 export interface PublisherConfig {
@@ -90,16 +92,84 @@ export interface VideoOption {
90 92
 }
91 93
 
92 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 175
 export type Callback<T> = (err: any, data: any) => T;