Browse Source

Update example to 0.50

Mathieu Acthernoene 7 years ago
parent
commit
7d868238da

+ 1
- 1
.npmignore View File

1
-example
1
+example/

+ 9
- 6
example/.flowconfig View File

12
 ; For RN Apps installed via npm, "Libraries" folder is inside
12
 ; For RN Apps installed via npm, "Libraries" folder is inside
13
 ; "node_modules/react-native" but in the source repo it is in the root
13
 ; "node_modules/react-native" but in the source repo it is in the root
14
 .*/Libraries/react-native/React.js
14
 .*/Libraries/react-native/React.js
15
-.*/Libraries/react-native/ReactNative.js
15
+
16
+; Ignore polyfills
17
+.*/Libraries/polyfills/.*
16
 
18
 
17
 [include]
19
 [include]
18
 
20
 
19
 [libs]
21
 [libs]
20
 node_modules/react-native/Libraries/react-native/react-native-interface.js
22
 node_modules/react-native/Libraries/react-native/react-native-interface.js
21
-node_modules/react-native/flow
22
-flow/
23
+node_modules/react-native/flow/
23
 
24
 
24
 [options]
25
 [options]
25
 emoji=true
26
 emoji=true
32
 
33
 
33
 suppress_type=$FlowIssue
34
 suppress_type=$FlowIssue
34
 suppress_type=$FlowFixMe
35
 suppress_type=$FlowFixMe
36
+suppress_type=$FlowFixMeProps
37
+suppress_type=$FlowFixMeState
35
 suppress_type=$FixMe
38
 suppress_type=$FixMe
36
 
39
 
37
-suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(4[0-9]\\|[1-3][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
38
-suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(4[0-9]\\|[1-3][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
40
+suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(5[0-6]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
41
+suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(5[0-6]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
39
 suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
42
 suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
40
 suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
43
 suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
41
 
44
 
42
 unsafe.enable_getters_and_setters=true
45
 unsafe.enable_getters_and_setters=true
43
 
46
 
44
 [version]
47
 [version]
45
-^0.49.1
48
+^0.56.0

+ 4
- 4
example/.gitignore View File

46
 # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
46
 # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
47
 # screenshots whenever they are needed.
47
 # screenshots whenever they are needed.
48
 # For more information about the recommended setup visit:
48
 # For more information about the recommended setup visit:
49
-# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md
49
+# https://docs.fastlane.tools/best-practices/source-control/
50
 
50
 
51
-fastlane/report.xml
52
-fastlane/Preview.html
53
-fastlane/screenshots
51
+*/fastlane/report.xml
52
+*/fastlane/Preview.html
53
+*/fastlane/screenshots

example/Example.js → example/App.js View File

1
-/**
2
- * Sample React Native App
3
- * https://github.com/facebook/react-native
4
- * @flow
5
- */
1
+// @flow
6
 
2
 
7
 import React, { Component } from 'react'
3
 import React, { Component } from 'react'
8
 import {
4
 import {
17
 
13
 
18
 import Permissions from 'react-native-permissions'
14
 import Permissions from 'react-native-permissions'
19
 
15
 
20
-export default class Example extends Component {
16
+export default class App extends Component {
21
   state = {
17
   state = {
22
     types: [],
18
     types: [],
23
     status: {},
19
     status: {},
29
 
25
 
30
     this.setState({ types, canOpenSettings })
26
     this.setState({ types, canOpenSettings })
31
     this._updatePermissions(types)
27
     this._updatePermissions(types)
32
-    AppState.addEventListener('change', this._handleAppStateChange.bind(this))
28
+    AppState.addEventListener('change', this._handleAppStateChange)
33
   }
29
   }
34
 
30
 
35
   componentWillUnmount() {
31
   componentWillUnmount() {
36
-    AppState.removeEventListener(
37
-      'change',
38
-      this._handleAppStateChange.bind(this),
39
-    )
32
+    AppState.removeEventListener('change', this._handleAppStateChange)
40
   }
33
   }
41
 
34
 
42
   //update permissions when app comes back from settings
35
   //update permissions when app comes back from settings
43
-  _handleAppStateChange(appState) {
36
+  _handleAppStateChange = appState => {
44
     if (appState == 'active') {
37
     if (appState == 'active') {
45
       this._updatePermissions(this.state.types)
38
       this._updatePermissions(this.state.types)
46
     }
39
     }
47
   }
40
   }
48
 
41
 
49
-  _openSettings() {
50
-    return Permissions.openSettings().then(() => alert('back to app!!'))
51
-  }
42
+  _openSettings = () =>
43
+    Permissions.openSettings().then(() => alert('back to app!!'))
52
 
44
 
53
-  _updatePermissions(types) {
45
+  _updatePermissions = types => {
54
     Permissions.checkMultiple(types)
46
     Permissions.checkMultiple(types)
55
       .then(status => {
47
       .then(status => {
56
         if (this.state.isAlways) {
48
         if (this.state.isAlways) {
64
       .then(status => this.setState({ status }))
56
       .then(status => this.setState({ status }))
65
   }
57
   }
66
 
58
 
67
-  _requestPermission(permission) {
59
+  _requestPermission = permission => {
68
     var options
60
     var options
69
 
61
 
70
     if (permission == 'location') {
62
     if (permission == 'location') {
81
           if (this.state.canOpenSettings)
73
           if (this.state.canOpenSettings)
82
             buttons.push({
74
             buttons.push({
83
               text: 'Open Settings',
75
               text: 'Open Settings',
84
-              onPress: this._openSettings.bind(this),
76
+              onPress: this._openSettings,
85
             })
77
             })
86
 
78
 
87
           Alert.alert(
79
           Alert.alert(
94
       .catch(e => console.warn(e))
86
       .catch(e => console.warn(e))
95
   }
87
   }
96
 
88
 
97
-  _onLocationSwitchChange() {
89
+  _onLocationSwitchChange = () => {
98
     this.setState({ isAlways: !this.state.isAlways })
90
     this.setState({ isAlways: !this.state.isAlways })
99
     this._updatePermissions(this.state.types)
91
     this._updatePermissions(this.state.types)
100
   }
92
   }
106
           <TouchableHighlight
98
           <TouchableHighlight
107
             style={[styles.button, styles[this.state.status[p]]]}
99
             style={[styles.button, styles[this.state.status[p]]]}
108
             key={p}
100
             key={p}
109
-            onPress={this._requestPermission.bind(this, p)}
101
+            onPress={() => this._requestPermission(p)}
110
           >
102
           >
111
             <View>
103
             <View>
112
               <Text style={styles.text}>
104
               <Text style={styles.text}>
121
         <View style={styles.footer}>
113
         <View style={styles.footer}>
122
           <TouchableHighlight
114
           <TouchableHighlight
123
             style={styles['footer_' + Platform.OS]}
115
             style={styles['footer_' + Platform.OS]}
124
-            onPress={this._onLocationSwitchChange.bind(this)}
116
+            onPress={this._onLocationSwitchChange}
125
           >
117
           >
126
             <Text style={styles.text}>Toggle location type</Text>
118
             <Text style={styles.text}>Toggle location type</Text>
127
           </TouchableHighlight>
119
           </TouchableHighlight>
128
 
120
 
129
           {this.state.canOpenSettings && (
121
           {this.state.canOpenSettings && (
130
-            <TouchableHighlight onPress={this._openSettings.bind(this)}>
122
+            <TouchableHighlight onPress={this._openSettings}>
131
               <Text style={styles.text}>Open settings</Text>
123
               <Text style={styles.text}>Open settings</Text>
132
             </TouchableHighlight>
124
             </TouchableHighlight>
133
           )}
125
           )}

+ 5
- 1
example/android/app/build.gradle View File

72
  * ]
72
  * ]
73
  */
73
  */
74
 
74
 
75
+project.ext.react = [
76
+    entryFile: "index.js"
77
+]
78
+
75
 apply from: "../../node_modules/react-native/react.gradle"
79
 apply from: "../../node_modules/react-native/react.gradle"
76
 
80
 
77
 /**
81
 /**
95
 
99
 
96
     defaultConfig {
100
     defaultConfig {
97
         applicationId "com.example"
101
         applicationId "com.example"
98
-        minSdkVersion 21
102
+        minSdkVersion 16
99
         targetSdkVersion 23
103
         targetSdkVersion 23
100
         versionCode 1
104
         versionCode 1
101
         versionName "1.0"
105
         versionName "1.0"

+ 4
- 0
example/android/app/src/main/AndroidManifest.xml View File

15
     <uses-permission android:name="android.permission.READ_SMS"/>
15
     <uses-permission android:name="android.permission.READ_SMS"/>
16
     <uses-permission android:name="android.permission.RECEIVE_SMS"/>
16
     <uses-permission android:name="android.permission.RECEIVE_SMS"/>
17
 
17
 
18
+    <uses-sdk
19
+        android:minSdkVersion="16"
20
+        android:targetSdkVersion="23" />
21
+
18
     <application
22
     <application
19
       android:name=".MainApplication"
23
       android:name=".MainApplication"
20
       android:allowBackup="true"
24
       android:allowBackup="true"

+ 5
- 0
example/android/app/src/main/java/com/example/MainApplication.java View File

25
           new MainReactPackage()
25
           new MainReactPackage()
26
       );
26
       );
27
     }
27
     }
28
+
29
+    @Override
30
+    protected String getJSMainModuleName() {
31
+      return "index";
32
+    }
28
   };
33
   };
29
 
34
 
30
   @Override
35
   @Override

+ 0
- 1
example/android/app/src/main/res/values/strings.xml View File

1
 <resources>
1
 <resources>
2
-
3
     <string name="app_name">Example</string>
2
     <string name="app_name">Example</string>
4
 </resources>
3
 </resources>

+ 1
- 0
example/android/build.gradle View File

6
     }
6
     }
7
     dependencies {
7
     dependencies {
8
         classpath 'com.android.tools.build:gradle:2.2.3'
8
         classpath 'com.android.tools.build:gradle:2.2.3'
9
+
9
         // NOTE: Do not place your application dependencies here; they belong
10
         // NOTE: Do not place your application dependencies here; they belong
10
         // in the individual module build.gradle files
11
         // in the individual module build.gradle files
11
     }
12
     }

+ 1
- 2
example/android/gradle/wrapper/gradle-wrapper.properties View File

1
-#Fri Feb 03 16:27:32 CET 2017
2
 distributionBase=GRADLE_USER_HOME
1
 distributionBase=GRADLE_USER_HOME
3
 distributionPath=wrapper/dists
2
 distributionPath=wrapper/dists
4
 zipStoreBase=GRADLE_USER_HOME
3
 zipStoreBase=GRADLE_USER_HOME
5
 zipStorePath=wrapper/dists
4
 zipStorePath=wrapper/dists
6
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
5
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

+ 4
- 0
example/app.json View File

1
+{
2
+  "name": "Example",
3
+  "displayName": "Example"
4
+}

+ 0
- 12
example/index.android.js View File

1
-/**
2
- * Sample React Native App
3
- * https://github.com/facebook/react-native
4
- * @flow
5
- */
6
-
7
-import React, { Component } from 'react'
8
-import { AppRegistry } from 'react-native'
9
-
10
-import Example from './Example'
11
-
12
-AppRegistry.registerComponent('Example', () => Example)

+ 0
- 12
example/index.ios.js View File

1
-/**
2
- * Sample React Native App
3
- * https://github.com/facebook/react-native
4
- * @flow
5
- */
6
-
7
-import React, { Component } from 'react'
8
-import { AppRegistry } from 'react-native'
9
-
10
-import Example from './Example'
11
-
12
-AppRegistry.registerComponent('Example', () => Example)

+ 4
- 0
example/index.js View File

1
+import { AppRegistry } from 'react-native'
2
+import App from './App'
3
+
4
+AppRegistry.registerComponent('Example', () => App)

+ 121
- 34
example/ios/Example.xcodeproj/project.pbxproj View File

25
 		2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
25
 		2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
26
 		2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
26
 		2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
27
 		2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
27
 		2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
28
-		2D02E4C21E0B4AEC006451C7 /* libRCTAnimation-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */; };
28
+		2D02E4C21E0B4AEC006451C7 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
29
 		2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */; };
29
 		2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */; };
30
 		2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */; };
30
 		2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */; };
31
 		2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */; };
31
 		2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */; };
32
 		2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */; };
32
 		2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */; };
33
 		2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */; };
33
 		2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */; };
34
 		2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; };
34
 		2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; };
35
-		2D02E4C91E0B4AEC006451C7 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; };
35
+		2D02E4C91E0B4AEC006451C7 /* libReact-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact-tvOS.a */; };
36
 		2DCD954D1E0B4F2C00145EB5 /* ExampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* ExampleTests.m */; };
36
 		2DCD954D1E0B4F2C00145EB5 /* ExampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* ExampleTests.m */; };
37
 		5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
37
 		5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
38
-		6D05A8F55CC4482AACFFC932 /* libReactNativePermissions.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DF4131A2930454297EF564B /* libReactNativePermissions.a */; };
38
+		66F16C091FC608C600E71FEB /* libReactNativePermissions.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 66F16C071FC608A900E71FEB /* libReactNativePermissions.a */; };
39
 		832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
39
 		832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
40
 		ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; };
40
 		ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; };
41
 /* End PBXBuildFile section */
41
 /* End PBXBuildFile section */
216
 			remoteGlobalIDString = 2D2A28201D9B03D100D4039D;
216
 			remoteGlobalIDString = 2D2A28201D9B03D100D4039D;
217
 			remoteInfo = "RCTAnimation-tvOS";
217
 			remoteInfo = "RCTAnimation-tvOS";
218
 		};
218
 		};
219
+		66F16BED1FC608A800E71FEB /* PBXContainerItemProxy */ = {
220
+			isa = PBXContainerItemProxy;
221
+			containerPortal = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */;
222
+			proxyType = 2;
223
+			remoteGlobalIDString = ADD01A681E09402E00F6D226;
224
+			remoteInfo = "RCTBlob-tvOS";
225
+		};
226
+		66F16BFF1FC608A800E71FEB /* PBXContainerItemProxy */ = {
227
+			isa = PBXContainerItemProxy;
228
+			containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */;
229
+			proxyType = 2;
230
+			remoteGlobalIDString = 3DBE0D001F3B181A0099AA32;
231
+			remoteInfo = fishhook;
232
+		};
233
+		66F16C011FC608A800E71FEB /* PBXContainerItemProxy */ = {
234
+			isa = PBXContainerItemProxy;
235
+			containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */;
236
+			proxyType = 2;
237
+			remoteGlobalIDString = 3DBE0D0D1F3B181C0099AA32;
238
+			remoteInfo = "fishhook-tvOS";
239
+		};
240
+		66F16C061FC608A900E71FEB /* PBXContainerItemProxy */ = {
241
+			isa = PBXContainerItemProxy;
242
+			containerPortal = 0D173517D64E4E0C9D1491B9 /* ReactNativePermissions.xcodeproj */;
243
+			proxyType = 2;
244
+			remoteGlobalIDString = 9D23B34F1C767B80008B4819;
245
+			remoteInfo = ReactNativePermissions;
246
+		};
219
 		78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = {
247
 		78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = {
220
 			isa = PBXContainerItemProxy;
248
 			isa = PBXContainerItemProxy;
221
 			containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */;
249
 			containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */;
249
 		00E356EE1AD99517003FC87E /* ExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
277
 		00E356EE1AD99517003FC87E /* ExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
250
 		00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
278
 		00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
251
 		00E356F21AD99517003FC87E /* ExampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ExampleTests.m; sourceTree = "<group>"; };
279
 		00E356F21AD99517003FC87E /* ExampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ExampleTests.m; sourceTree = "<group>"; };
280
+		0D173517D64E4E0C9D1491B9 /* ReactNativePermissions.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = ReactNativePermissions.xcodeproj; path = "../node_modules/react-native-permissions/ReactNativePermissions.xcodeproj"; sourceTree = "<group>"; };
252
 		139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = "<group>"; };
281
 		139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = "<group>"; };
253
 		139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = "<group>"; };
282
 		139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = "<group>"; };
254
 		13B07F961A680F5B00A75B9A /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
283
 		13B07F961A680F5B00A75B9A /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
259
 		13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Example/Info.plist; sourceTree = "<group>"; };
288
 		13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Example/Info.plist; sourceTree = "<group>"; };
260
 		13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Example/main.m; sourceTree = "<group>"; };
289
 		13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Example/main.m; sourceTree = "<group>"; };
261
 		146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; };
290
 		146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; };
262
-		1CB53DB705894AAA8CB22783 /* ReactNativePermissions.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = ReactNativePermissions.xcodeproj; path = "../node_modules/react-native-permissions/ReactNativePermissions.xcodeproj"; sourceTree = "<group>"; };
263
 		2D02E47B1E0B4A5D006451C7 /* Example-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Example-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
291
 		2D02E47B1E0B4A5D006451C7 /* Example-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Example-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
264
 		2D02E4901E0B4A5D006451C7 /* Example-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Example-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
292
 		2D02E4901E0B4A5D006451C7 /* Example-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Example-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
265
-		5DF4131A2930454297EF564B /* libReactNativePermissions.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libReactNativePermissions.a; sourceTree = "<group>"; };
266
 		5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; };
293
 		5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; };
267
 		78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
294
 		78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
268
 		832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };
295
 		832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };
295
 				832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */,
322
 				832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */,
296
 				00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
323
 				00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
297
 				139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
324
 				139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
298
-				6D05A8F55CC4482AACFFC932 /* libReactNativePermissions.a in Frameworks */,
325
+				66F16C091FC608C600E71FEB /* libReactNativePermissions.a in Frameworks */,
299
 			);
326
 			);
300
 			runOnlyForDeploymentPostprocessing = 0;
327
 			runOnlyForDeploymentPostprocessing = 0;
301
 		};
328
 		};
303
 			isa = PBXFrameworksBuildPhase;
330
 			isa = PBXFrameworksBuildPhase;
304
 			buildActionMask = 2147483647;
331
 			buildActionMask = 2147483647;
305
 			files = (
332
 			files = (
306
-				2D02E4C91E0B4AEC006451C7 /* libReact.a in Frameworks */,
307
-				2D02E4C21E0B4AEC006451C7 /* libRCTAnimation-tvOS.a in Frameworks */,
333
+				2D02E4C91E0B4AEC006451C7 /* libReact-tvOS.a in Frameworks */,
334
+				2D02E4C21E0B4AEC006451C7 /* libRCTAnimation.a in Frameworks */,
308
 				2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */,
335
 				2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */,
309
 				2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */,
336
 				2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */,
310
 				2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */,
337
 				2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */,
397
 			children = (
424
 			children = (
398
 				139FDEF41B06529B00C62182 /* libRCTWebSocket.a */,
425
 				139FDEF41B06529B00C62182 /* libRCTWebSocket.a */,
399
 				3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */,
426
 				3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */,
427
+				66F16C001FC608A800E71FEB /* libfishhook.a */,
428
+				66F16C021FC608A800E71FEB /* libfishhook-tvOS.a */,
400
 			);
429
 			);
401
 			name = Products;
430
 			name = Products;
402
 			sourceTree = "<group>";
431
 			sourceTree = "<group>";
419
 			isa = PBXGroup;
448
 			isa = PBXGroup;
420
 			children = (
449
 			children = (
421
 				146834041AC3E56700842450 /* libReact.a */,
450
 				146834041AC3E56700842450 /* libReact.a */,
422
-				3DAD3EA31DF850E9000B6D8A /* libReact.a */,
423
 				3DAD3EA51DF850E9000B6D8A /* libyoga.a */,
451
 				3DAD3EA51DF850E9000B6D8A /* libyoga.a */,
424
 				3DAD3EA71DF850E9000B6D8A /* libyoga.a */,
452
 				3DAD3EA71DF850E9000B6D8A /* libyoga.a */,
425
 				3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */,
453
 				3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */,
435
 			isa = PBXGroup;
463
 			isa = PBXGroup;
436
 			children = (
464
 			children = (
437
 				5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */,
465
 				5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */,
438
-				5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */,
466
+				5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */,
467
+			);
468
+			name = Products;
469
+			sourceTree = "<group>";
470
+		};
471
+		66F16C031FC608A800E71FEB /* Products */ = {
472
+			isa = PBXGroup;
473
+			children = (
474
+				66F16C071FC608A900E71FEB /* libReactNativePermissions.a */,
439
 			);
475
 			);
440
 			name = Products;
476
 			name = Products;
441
 			sourceTree = "<group>";
477
 			sourceTree = "<group>";
442
 		};
478
 		};
479
+		66F16C081FC608C600E71FEB /* Frameworks */ = {
480
+			isa = PBXGroup;
481
+			children = (
482
+			);
483
+			name = Frameworks;
484
+			sourceTree = "<group>";
485
+		};
443
 		78C398B11ACF4ADC00677621 /* Products */ = {
486
 		78C398B11ACF4ADC00677621 /* Products */ = {
444
 			isa = PBXGroup;
487
 			isa = PBXGroup;
445
 			children = (
488
 			children = (
464
 				832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */,
507
 				832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */,
465
 				00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
508
 				00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
466
 				139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
509
 				139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
467
-				1CB53DB705894AAA8CB22783 /* ReactNativePermissions.xcodeproj */,
510
+				0D173517D64E4E0C9D1491B9 /* ReactNativePermissions.xcodeproj */,
468
 			);
511
 			);
469
 			name = Libraries;
512
 			name = Libraries;
470
 			sourceTree = "<group>";
513
 			sourceTree = "<group>";
485
 				832341AE1AAA6A7D00B99B32 /* Libraries */,
528
 				832341AE1AAA6A7D00B99B32 /* Libraries */,
486
 				00E356EF1AD99517003FC87E /* ExampleTests */,
529
 				00E356EF1AD99517003FC87E /* ExampleTests */,
487
 				83CBBA001A601CBA00E9B192 /* Products */,
530
 				83CBBA001A601CBA00E9B192 /* Products */,
531
+				66F16C081FC608C600E71FEB /* Frameworks */,
488
 			);
532
 			);
489
 			indentWidth = 2;
533
 			indentWidth = 2;
490
 			sourceTree = "<group>";
534
 			sourceTree = "<group>";
506
 			isa = PBXGroup;
550
 			isa = PBXGroup;
507
 			children = (
551
 			children = (
508
 				ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */,
552
 				ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */,
553
+				66F16BEE1FC608A800E71FEB /* libRCTBlob-tvOS.a */,
509
 			);
554
 			);
510
 			name = Products;
555
 			name = Products;
511
 			sourceTree = "<group>";
556
 			sourceTree = "<group>";
591
 		83CBB9F71A601CBA00E9B192 /* Project object */ = {
636
 		83CBB9F71A601CBA00E9B192 /* Project object */ = {
592
 			isa = PBXProject;
637
 			isa = PBXProject;
593
 			attributes = {
638
 			attributes = {
594
-				LastUpgradeCheck = 820;
639
+				LastUpgradeCheck = 610;
595
 				ORGANIZATIONNAME = Facebook;
640
 				ORGANIZATIONNAME = Facebook;
596
 				TargetAttributes = {
641
 				TargetAttributes = {
597
 					00E356ED1AD99517003FC87E = {
642
 					00E356ED1AD99517003FC87E = {
598
 						CreatedOnToolsVersion = 6.2;
643
 						CreatedOnToolsVersion = 6.2;
599
-						DevelopmentTeam = 66SW7BQ2SM;
644
+						DevelopmentTeam = 745449BDR9;
600
 						TestTargetID = 13B07F861A680F5B00A75B9A;
645
 						TestTargetID = 13B07F861A680F5B00A75B9A;
601
 					};
646
 					};
602
 					13B07F861A680F5B00A75B9A = {
647
 					13B07F861A680F5B00A75B9A = {
603
-						DevelopmentTeam = 66SW7BQ2SM;
648
+						DevelopmentTeam = 745449BDR9;
604
 						SystemCapabilities = {
649
 						SystemCapabilities = {
605
 							com.apple.BackgroundModes = {
650
 							com.apple.BackgroundModes = {
606
 								enabled = 1;
651
 								enabled = 1;
679
 					ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */;
724
 					ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */;
680
 				},
725
 				},
681
 				{
726
 				{
682
-					ProductGroup = 9D140C9F1F068EB400146F6C /* Products */;
683
-					ProjectRef = 1CB53DB705894AAA8CB22783 /* ReactNativePermissions.xcodeproj */;
727
+					ProductGroup = 66F16C031FC608A800E71FEB /* Products */;
728
+					ProjectRef = 0D173517D64E4E0C9D1491B9 /* ReactNativePermissions.xcodeproj */;
684
 				},
729
 				},
685
 			);
730
 			);
686
 			projectRoot = "";
731
 			projectRoot = "";
848
 			remoteRef = 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */;
893
 			remoteRef = 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */;
849
 			sourceTree = BUILT_PRODUCTS_DIR;
894
 			sourceTree = BUILT_PRODUCTS_DIR;
850
 		};
895
 		};
851
-		5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */ = {
896
+		5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */ = {
852
 			isa = PBXReferenceProxy;
897
 			isa = PBXReferenceProxy;
853
 			fileType = archive.ar;
898
 			fileType = archive.ar;
854
-			path = "libRCTAnimation-tvOS.a";
899
+			path = libRCTAnimation.a;
855
 			remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */;
900
 			remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */;
856
 			sourceTree = BUILT_PRODUCTS_DIR;
901
 			sourceTree = BUILT_PRODUCTS_DIR;
857
 		};
902
 		};
903
+		66F16BEE1FC608A800E71FEB /* libRCTBlob-tvOS.a */ = {
904
+			isa = PBXReferenceProxy;
905
+			fileType = archive.ar;
906
+			path = "libRCTBlob-tvOS.a";
907
+			remoteRef = 66F16BED1FC608A800E71FEB /* PBXContainerItemProxy */;
908
+			sourceTree = BUILT_PRODUCTS_DIR;
909
+		};
910
+		66F16C001FC608A800E71FEB /* libfishhook.a */ = {
911
+			isa = PBXReferenceProxy;
912
+			fileType = archive.ar;
913
+			path = libfishhook.a;
914
+			remoteRef = 66F16BFF1FC608A800E71FEB /* PBXContainerItemProxy */;
915
+			sourceTree = BUILT_PRODUCTS_DIR;
916
+		};
917
+		66F16C021FC608A800E71FEB /* libfishhook-tvOS.a */ = {
918
+			isa = PBXReferenceProxy;
919
+			fileType = archive.ar;
920
+			path = "libfishhook-tvOS.a";
921
+			remoteRef = 66F16C011FC608A800E71FEB /* PBXContainerItemProxy */;
922
+			sourceTree = BUILT_PRODUCTS_DIR;
923
+		};
924
+		66F16C071FC608A900E71FEB /* libReactNativePermissions.a */ = {
925
+			isa = PBXReferenceProxy;
926
+			fileType = archive.ar;
927
+			path = libReactNativePermissions.a;
928
+			remoteRef = 66F16C061FC608A900E71FEB /* PBXContainerItemProxy */;
929
+			sourceTree = BUILT_PRODUCTS_DIR;
930
+		};
858
 		78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = {
931
 		78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = {
859
 			isa = PBXReferenceProxy;
932
 			isa = PBXReferenceProxy;
860
 			fileType = archive.ar;
933
 			fileType = archive.ar;
1010
 			isa = XCBuildConfiguration;
1083
 			isa = XCBuildConfiguration;
1011
 			buildSettings = {
1084
 			buildSettings = {
1012
 				BUNDLE_LOADER = "$(TEST_HOST)";
1085
 				BUNDLE_LOADER = "$(TEST_HOST)";
1013
-				DEVELOPMENT_TEAM = 66SW7BQ2SM;
1086
+				DEVELOPMENT_TEAM = 745449BDR9;
1014
 				GCC_PREPROCESSOR_DEFINITIONS = (
1087
 				GCC_PREPROCESSOR_DEFINITIONS = (
1015
 					"DEBUG=1",
1088
 					"DEBUG=1",
1016
 					"$(inherited)",
1089
 					"$(inherited)",
1017
 				);
1090
 				);
1091
+				HEADER_SEARCH_PATHS = (
1092
+					"$(inherited)",
1093
+					"$(SRCROOT)/../node_modules/react-native-permissions",
1094
+				);
1018
 				INFOPLIST_FILE = ExampleTests/Info.plist;
1095
 				INFOPLIST_FILE = ExampleTests/Info.plist;
1019
 				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1096
 				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1020
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1097
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1021
 				LIBRARY_SEARCH_PATHS = (
1098
 				LIBRARY_SEARCH_PATHS = (
1022
 					"$(inherited)",
1099
 					"$(inherited)",
1023
 					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1100
 					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1024
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1025
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1026
 				);
1101
 				);
1027
 				OTHER_LDFLAGS = (
1102
 				OTHER_LDFLAGS = (
1028
 					"-ObjC",
1103
 					"-ObjC",
1038
 			buildSettings = {
1113
 			buildSettings = {
1039
 				BUNDLE_LOADER = "$(TEST_HOST)";
1114
 				BUNDLE_LOADER = "$(TEST_HOST)";
1040
 				COPY_PHASE_STRIP = NO;
1115
 				COPY_PHASE_STRIP = NO;
1041
-				DEVELOPMENT_TEAM = 66SW7BQ2SM;
1116
+				DEVELOPMENT_TEAM = 745449BDR9;
1117
+				HEADER_SEARCH_PATHS = (
1118
+					"$(inherited)",
1119
+					"$(SRCROOT)/../node_modules/react-native-permissions",
1120
+				);
1042
 				INFOPLIST_FILE = ExampleTests/Info.plist;
1121
 				INFOPLIST_FILE = ExampleTests/Info.plist;
1043
 				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1122
 				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1044
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1123
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1045
 				LIBRARY_SEARCH_PATHS = (
1124
 				LIBRARY_SEARCH_PATHS = (
1046
 					"$(inherited)",
1125
 					"$(inherited)",
1047
 					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1126
 					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1048
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1049
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1050
 				);
1127
 				);
1051
 				OTHER_LDFLAGS = (
1128
 				OTHER_LDFLAGS = (
1052
 					"-ObjC",
1129
 					"-ObjC",
1063
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1140
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1064
 				CURRENT_PROJECT_VERSION = 1;
1141
 				CURRENT_PROJECT_VERSION = 1;
1065
 				DEAD_CODE_STRIPPING = NO;
1142
 				DEAD_CODE_STRIPPING = NO;
1066
-				DEVELOPMENT_TEAM = 66SW7BQ2SM;
1143
+				DEVELOPMENT_TEAM = 745449BDR9;
1144
+				HEADER_SEARCH_PATHS = (
1145
+					"$(inherited)",
1146
+					"$(SRCROOT)/../node_modules/react-native-permissions",
1147
+				);
1067
 				INFOPLIST_FILE = Example/Info.plist;
1148
 				INFOPLIST_FILE = Example/Info.plist;
1068
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1149
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1069
 				OTHER_LDFLAGS = (
1150
 				OTHER_LDFLAGS = (
1071
 					"-ObjC",
1152
 					"-ObjC",
1072
 					"-lc++",
1153
 					"-lc++",
1073
 				);
1154
 				);
1155
+				PRODUCT_BUNDLE_IDENTIFIER = com.react.permissions;
1074
 				PRODUCT_NAME = Example;
1156
 				PRODUCT_NAME = Example;
1075
 				VERSIONING_SYSTEM = "apple-generic";
1157
 				VERSIONING_SYSTEM = "apple-generic";
1076
 			};
1158
 			};
1081
 			buildSettings = {
1163
 			buildSettings = {
1082
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1164
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1083
 				CURRENT_PROJECT_VERSION = 1;
1165
 				CURRENT_PROJECT_VERSION = 1;
1084
-				DEVELOPMENT_TEAM = 66SW7BQ2SM;
1166
+				DEVELOPMENT_TEAM = 745449BDR9;
1167
+				HEADER_SEARCH_PATHS = (
1168
+					"$(inherited)",
1169
+					"$(SRCROOT)/../node_modules/react-native-permissions",
1170
+				);
1085
 				INFOPLIST_FILE = Example/Info.plist;
1171
 				INFOPLIST_FILE = Example/Info.plist;
1086
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1172
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1087
 				OTHER_LDFLAGS = (
1173
 				OTHER_LDFLAGS = (
1089
 					"-ObjC",
1175
 					"-ObjC",
1090
 					"-lc++",
1176
 					"-lc++",
1091
 				);
1177
 				);
1178
+				PRODUCT_BUNDLE_IDENTIFIER = com.react.permissions;
1092
 				PRODUCT_NAME = Example;
1179
 				PRODUCT_NAME = Example;
1093
 				VERSIONING_SYSTEM = "apple-generic";
1180
 				VERSIONING_SYSTEM = "apple-generic";
1094
 			};
1181
 			};
1106
 				DEBUG_INFORMATION_FORMAT = dwarf;
1193
 				DEBUG_INFORMATION_FORMAT = dwarf;
1107
 				ENABLE_TESTABILITY = YES;
1194
 				ENABLE_TESTABILITY = YES;
1108
 				GCC_NO_COMMON_BLOCKS = YES;
1195
 				GCC_NO_COMMON_BLOCKS = YES;
1196
+				HEADER_SEARCH_PATHS = (
1197
+					"$(inherited)",
1198
+					"$(SRCROOT)/../node_modules/react-native-permissions/**",
1199
+				);
1109
 				INFOPLIST_FILE = "Example-tvOS/Info.plist";
1200
 				INFOPLIST_FILE = "Example-tvOS/Info.plist";
1110
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1201
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1111
 				LIBRARY_SEARCH_PATHS = (
1202
 				LIBRARY_SEARCH_PATHS = (
1112
 					"$(inherited)",
1203
 					"$(inherited)",
1113
 					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1204
 					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1114
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1115
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1116
 				);
1205
 				);
1117
 				OTHER_LDFLAGS = (
1206
 				OTHER_LDFLAGS = (
1118
 					"-ObjC",
1207
 					"-ObjC",
1138
 				COPY_PHASE_STRIP = NO;
1227
 				COPY_PHASE_STRIP = NO;
1139
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
1228
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
1140
 				GCC_NO_COMMON_BLOCKS = YES;
1229
 				GCC_NO_COMMON_BLOCKS = YES;
1230
+				HEADER_SEARCH_PATHS = (
1231
+					"$(inherited)",
1232
+					"$(SRCROOT)/../node_modules/react-native-permissions/**",
1233
+				);
1141
 				INFOPLIST_FILE = "Example-tvOS/Info.plist";
1234
 				INFOPLIST_FILE = "Example-tvOS/Info.plist";
1142
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1235
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1143
 				LIBRARY_SEARCH_PATHS = (
1236
 				LIBRARY_SEARCH_PATHS = (
1144
 					"$(inherited)",
1237
 					"$(inherited)",
1145
 					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1238
 					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1146
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1147
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1148
 				);
1239
 				);
1149
 				OTHER_LDFLAGS = (
1240
 				OTHER_LDFLAGS = (
1150
 					"-ObjC",
1241
 					"-ObjC",
1174
 				LIBRARY_SEARCH_PATHS = (
1265
 				LIBRARY_SEARCH_PATHS = (
1175
 					"$(inherited)",
1266
 					"$(inherited)",
1176
 					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1267
 					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1177
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1178
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1179
 				);
1268
 				);
1180
 				PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.Example-tvOSTests";
1269
 				PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.Example-tvOSTests";
1181
 				PRODUCT_NAME = "$(TARGET_NAME)";
1270
 				PRODUCT_NAME = "$(TARGET_NAME)";
1201
 				LIBRARY_SEARCH_PATHS = (
1290
 				LIBRARY_SEARCH_PATHS = (
1202
 					"$(inherited)",
1291
 					"$(inherited)",
1203
 					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1292
 					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1204
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1205
-					"\"$(SRCROOT)/$(TARGET_NAME)\"",
1206
 				);
1293
 				);
1207
 				PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.Example-tvOSTests";
1294
 				PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.Example-tvOSTests";
1208
 				PRODUCT_NAME = "$(TARGET_NAME)";
1295
 				PRODUCT_NAME = "$(TARGET_NAME)";

+ 1
- 1
example/ios/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme View File

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

+ 1
- 1
example/ios/Example/AppDelegate.m View File

18
 {
18
 {
19
   NSURL *jsCodeLocation;
19
   NSURL *jsCodeLocation;
20
 
20
 
21
-  jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
21
+  jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
22
 
22
 
23
   RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
23
   RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
24
                                                       moduleName:@"Example"
24
                                                       moduleName:@"Example"

+ 6
- 0
example/ios/Example/Images.xcassets/Contents.json View File

1
+{
2
+  "info": {
3
+    "version": 1,
4
+    "author": "xcode"
5
+  }
6
+}

+ 5
- 1
example/ios/Example/Info.plist View File

4
 <dict>
4
 <dict>
5
 	<key>CFBundleDevelopmentRegion</key>
5
 	<key>CFBundleDevelopmentRegion</key>
6
 	<string>en</string>
6
 	<string>en</string>
7
+	<key>CFBundleDisplayName</key>
8
+	<string>Example</string>
7
 	<key>CFBundleExecutable</key>
9
 	<key>CFBundleExecutable</key>
8
 	<string>$(EXECUTABLE_NAME)</string>
10
 	<string>$(EXECUTABLE_NAME)</string>
9
 	<key>CFBundleIdentifier</key>
11
 	<key>CFBundleIdentifier</key>
10
-	<string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string>
12
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
13
+	<key>CFBundleInfoDictionaryVersion</key>
14
+	<string>6.0</string>
11
 	<key>CFBundleName</key>
15
 	<key>CFBundleName</key>
12
 	<string>$(PRODUCT_NAME)</string>
16
 	<string>$(PRODUCT_NAME)</string>
13
 	<key>CFBundlePackageType</key>
17
 	<key>CFBundlePackageType</key>

+ 7
- 7
example/package.json View File

3
   "version": "0.0.1",
3
   "version": "0.0.1",
4
   "private": true,
4
   "private": true,
5
   "scripts": {
5
   "scripts": {
6
-    "start": "react-native start",
6
+    "start": "node node_modules/react-native/local-cli/cli.js start",
7
     "test": "jest"
7
     "test": "jest"
8
   },
8
   },
9
   "dependencies": {
9
   "dependencies": {
10
-    "react": "^16.0.0-alpha.12",
11
-    "react-native": "^0.48.4",
10
+    "react": "16.0.0",
11
+    "react-native": "0.50.3",
12
     "react-native-permissions": "../"
12
     "react-native-permissions": "../"
13
   },
13
   },
14
   "devDependencies": {
14
   "devDependencies": {
15
-    "babel-jest": "18.0.0",
16
-    "babel-preset-react-native": "1.9.1",
17
-    "jest": "18.1.0",
18
-    "react-test-renderer": "15.4.2"
15
+    "babel-jest": "21.2.0",
16
+    "babel-preset-react-native": "4.0.0",
17
+    "jest": "21.2.1",
18
+    "react-test-renderer": "16.0.0"
19
   },
19
   },
20
   "jest": {
20
   "jest": {
21
     "preset": "react-native"
21
     "preset": "react-native"