Commit a8835af95d1401453b2f4423a9304d55adea7edc
0 parents
init
Showing
66 changed files
with
7011 additions
and
0 deletions
Too many changes to show.
To preserve performance only 58 of 66 files are displayed.
.gitignore
0 → 100644
1 | +++ a/.gitignore | |
1 | +# OSX | |
2 | +# | |
3 | +.DS_Store | |
4 | + | |
5 | +# Xcode | |
6 | +# | |
7 | +build/ | |
8 | +*.pbxuser | |
9 | +!default.pbxuser | |
10 | +*.mode1v3 | |
11 | +!default.mode1v3 | |
12 | +*.mode2v3 | |
13 | +!default.mode2v3 | |
14 | +*.perspectivev3 | |
15 | +!default.perspectivev3 | |
16 | +xcuserdata | |
17 | +*.xccheckout | |
18 | +*.moved-aside | |
19 | +DerivedData | |
20 | +*.hmap | |
21 | +*.ipa | |
22 | +*.xcuserstate | |
23 | +project.xcworkspace | |
24 | + | |
25 | +# node.js | |
26 | +# | |
27 | +node_modules/ | |
28 | +npm-debug.log | |
29 | +*.iml | ... | ... |
LICENSE.md
0 → 100644
1 | +++ a/LICENSE.md | |
1 | +## ISC License | |
2 | + | |
3 | +Copyright 2017 React Native Orientation | |
4 | + | |
5 | +Permission to use, copy, modify, and/or distribute this software for any purpose with or | |
6 | +without fee is hereby granted, provided that the above copyright notice and this permission | |
7 | +notice appear in all copies. | |
8 | + | |
9 | +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS | |
10 | +SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL | |
11 | +THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
12 | +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, | |
13 | +NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE | |
14 | +OF THIS SOFTWARE. | ... | ... |
README.md
0 → 100644
1 | +++ a/README.md | |
1 | +## React Native Orientation | |
2 | +Listen to device orientation changes in React Native applications and programmatically set preferred orientation on a per screen basis. Works on both Android and iOS. | |
3 | + | |
4 | +## Installing | |
5 | + | |
6 | +``` | |
7 | +npm install @cqfw/react-native-orientation --save | |
8 | +``` | |
9 | + | |
10 | +## Linking Native Dependencies | |
11 | + | |
12 | +### Automatic Linking | |
13 | + | |
14 | +``` | |
15 | +react-native link @cqfw/react-native-orientation | |
16 | +``` | |
17 | + | |
18 | +Please note that you **still need to manually configure** a couple files even when using automatic linking. Please see the ['Configuration'](#configuration) section below. You will also **need to restart your simulator** before the package will work properly. | |
19 | + | |
20 | +### Configuration | |
21 | + | |
22 | +**iOS** | |
23 | + | |
24 | +Add the following to your project's `AppDelegate.m`: | |
25 | + | |
26 | +```objc | |
27 | +#import "Orientation.h" // <--- import | |
28 | + | |
29 | +@implementation AppDelegate | |
30 | + | |
31 | + // ... | |
32 | + | |
33 | +- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { | |
34 | + return [Orientation getOrientation]; | |
35 | +} | |
36 | + | |
37 | + | |
38 | +@end | |
39 | +``` | |
40 | + | |
41 | +**Android** | |
42 | + | |
43 | +Implement `onConfigurationChanged` method in `MainActivity.java` | |
44 | + | |
45 | +```java | |
46 | + import android.content.Intent; // <--- import | |
47 | + import android.content.res.Configuration; // <--- import | |
48 | + | |
49 | + public class MainActivity extends ReactActivity { | |
50 | + ...... | |
51 | + @Override | |
52 | + public void onConfigurationChanged(Configuration newConfig) { | |
53 | + super.onConfigurationChanged(newConfig); | |
54 | + Intent intent = new Intent("onConfigurationChanged"); | |
55 | + intent.putExtra("newConfig", newConfig); | |
56 | + this.sendBroadcast(intent); | |
57 | + } | |
58 | + | |
59 | + ...... | |
60 | + | |
61 | + } | |
62 | +``` | |
63 | + | |
64 | +## Usage | |
65 | + | |
66 | +To use the `@cqfw/react-native-orientation` package in your codebase, you should use the Orientation module: | |
67 | +```javascript | |
68 | +import Orientation from '@cqfw/react-native-orientation'; | |
69 | +``` | |
70 | + | |
71 | +```javascript | |
72 | +export default class AppScreen extends Component { | |
73 | + // ... | |
74 | + | |
75 | + componentWillMount() { | |
76 | + // The getOrientation method is async. It happens sometimes that | |
77 | + // you need the orientation at the moment the JS runtime starts running on device. | |
78 | + // `getInitialOrientation` returns directly because its a constant set at the | |
79 | + // beginning of the JS runtime. | |
80 | + | |
81 | + const initial = Orientation.getInitialOrientation(); | |
82 | + if (initial === 'PORTRAIT') { | |
83 | + // do something | |
84 | + } else { | |
85 | + // do something else | |
86 | + } | |
87 | + }, | |
88 | + | |
89 | + componentDidMount() { | |
90 | + // this locks the view to Portrait Mode | |
91 | + Orientation.lockToPortrait(); | |
92 | + | |
93 | + // this locks the view to Landscape Mode | |
94 | + // Orientation.lockToLandscape(); | |
95 | + | |
96 | + // this unlocks any previous locks to all Orientations | |
97 | + // Orientation.unlockAllOrientations(); | |
98 | + | |
99 | + Orientation.addOrientationListener(this._orientationDidChange); | |
100 | + }, | |
101 | + | |
102 | + _orientationDidChange = (orientation) => { | |
103 | + if (orientation === 'LANDSCAPE') { | |
104 | + // do something with landscape layout | |
105 | + } else { | |
106 | + // do something with portrait layout | |
107 | + } | |
108 | + }, | |
109 | + | |
110 | + componentWillUnmount() { | |
111 | + Orientation.getOrientation((err, orientation) => { | |
112 | + console.log(`Current Device Orientation: ${orientation}`); | |
113 | + }); | |
114 | + | |
115 | + | |
116 | + // Remember to remove listener | |
117 | + Orientation.removeOrientationListener(this._orientationDidChange); | |
118 | + } | |
119 | + | |
120 | + render() { | |
121 | + // ... | |
122 | + | |
123 | + return ( | |
124 | + // ... | |
125 | + ) | |
126 | + } | |
127 | +} | |
128 | +``` | |
129 | + | |
130 | +## Orientation Events | |
131 | + | |
132 | +```javascript | |
133 | +addOrientationListener((orientation) => {}); | |
134 | +``` | |
135 | + | |
136 | +`orientation` will return one of the following values: | |
137 | +- `LANDSCAPE` | |
138 | +- `PORTRAIT` | |
139 | +- `PORTRAITUPSIDEDOWN` | |
140 | +- `UNKNOWN` | |
141 | + | |
142 | +```javascript | |
143 | +removeOrientationListener((orientation) => {}); | |
144 | +``` | |
145 | + | |
146 | +```javascript | |
147 | +addSpecificOrientationListener((specificOrientation) => {}); | |
148 | +``` | |
149 | + | |
150 | +`specificOrientation` will return one of the following values: | |
151 | +- `LANDSCAPE-LEFT` | |
152 | +- `LANDSCAPE-RIGHT` | |
153 | +- `PORTRAIT` | |
154 | +- `PORTRAITUPSIDEDOWN` | |
155 | +- `UNKNOWN` | |
156 | + | |
157 | +```javascript | |
158 | +removeSpecificOrientationListener((specificOrientation) => {}); | |
159 | +``` | |
160 | + | |
161 | +## API | |
162 | + | |
163 | +- `lockToPortrait()` | |
164 | +- `lockToLandscape()` | |
165 | +- `lockToLandscapeLeft()` | |
166 | +- `lockToLandscapeRight()` | |
167 | +- `unlockAllOrientations()` | |
168 | +- `getOrientation((err, orientation) => {})` | |
169 | +- `getSpecificOrientation((err, specificOrientation) => {})` | ... | ... |
android/.gradle/7.4.2/checksums/checksums.lock
0 → 100644
No preview for this file type
android/.gradle/7.4.2/fileChanges/last-build.bin
0 → 100644
No preview for this file type
android/.gradle/7.4.2/fileHashes/fileHashes.lock
0 → 100644
No preview for this file type
android/.gradle/7.4.2/gc.properties
0 → 100644
1 | +++ a/android/.gradle/7.4.2/gc.properties | ... | ... |
android/.gradle/vcs-1/gc.properties
0 → 100644
1 | +++ a/android/.gradle/vcs-1/gc.properties | ... | ... |
android/build.gradle
0 → 100644
1 | +++ a/android/build.gradle | |
1 | +apply plugin: 'com.android.library' | |
2 | + | |
3 | +android { | |
4 | + compileSdkVersion 28 | |
5 | + buildToolsVersion "28.0.3" | |
6 | + | |
7 | + defaultConfig { | |
8 | + minSdkVersion 16 | |
9 | + targetSdkVersion 28 | |
10 | + versionCode 1 | |
11 | + versionName "1.0" | |
12 | + ndk { | |
13 | + abiFilters "armeabi-v7a", "x86" | |
14 | + } | |
15 | + } | |
16 | +} | |
17 | + | |
18 | +dependencies { | |
19 | + api "com.facebook.react:react-native:+" | |
20 | +} | ... | ... |
android/src/main/AndroidManifest.xml
0 → 100644
android/src/main/java/com/github/yamill/orientation/OrientationModule.java
0 → 100644
1 | +++ a/android/src/main/java/com/github/yamill/orientation/OrientationModule.java | |
1 | +package com.github.yamill.orientation; | |
2 | + | |
3 | +import android.app.Activity; | |
4 | +import android.content.BroadcastReceiver; | |
5 | +import android.content.Context; | |
6 | +import android.content.Intent; | |
7 | +import android.content.IntentFilter; | |
8 | +import android.content.pm.ActivityInfo; | |
9 | +import android.content.res.Configuration; | |
10 | +import android.util.Log; | |
11 | + | |
12 | +import com.facebook.common.logging.FLog; | |
13 | +import com.facebook.react.bridge.Arguments; | |
14 | +import com.facebook.react.bridge.Callback; | |
15 | +import com.facebook.react.bridge.LifecycleEventListener; | |
16 | +import com.facebook.react.bridge.ReactApplicationContext; | |
17 | +import com.facebook.react.bridge.ReactContextBaseJavaModule; | |
18 | +import com.facebook.react.bridge.ReactMethod; | |
19 | +import com.facebook.react.bridge.WritableMap; | |
20 | +import com.facebook.react.common.ReactConstants; | |
21 | +import com.facebook.react.modules.core.DeviceEventManagerModule; | |
22 | + | |
23 | +import java.util.HashMap; | |
24 | +import java.util.Map; | |
25 | + | |
26 | +import javax.annotation.Nullable; | |
27 | + | |
28 | +public class OrientationModule extends ReactContextBaseJavaModule implements LifecycleEventListener{ | |
29 | + final BroadcastReceiver receiver; | |
30 | + | |
31 | + public OrientationModule(ReactApplicationContext reactContext) { | |
32 | + super(reactContext); | |
33 | + final ReactApplicationContext ctx = reactContext; | |
34 | + | |
35 | + receiver = new BroadcastReceiver() { | |
36 | + @Override | |
37 | + public void onReceive(Context context, Intent intent) { | |
38 | + Configuration newConfig = intent.getParcelableExtra("newConfig"); | |
39 | + Log.d("receiver", String.valueOf(newConfig.orientation)); | |
40 | + | |
41 | + String orientationValue = newConfig.orientation == 1 ? "PORTRAIT" : "LANDSCAPE"; | |
42 | + | |
43 | + WritableMap params = Arguments.createMap(); | |
44 | + params.putString("orientation", orientationValue); | |
45 | + if (ctx.hasActiveCatalystInstance()) { | |
46 | + ctx | |
47 | + .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class) | |
48 | + .emit("orientationDidChange", params); | |
49 | + } | |
50 | + } | |
51 | + }; | |
52 | + ctx.addLifecycleEventListener(this); | |
53 | + } | |
54 | + | |
55 | + @Override | |
56 | + public String getName() { | |
57 | + return "Orientation"; | |
58 | + } | |
59 | + | |
60 | + @ReactMethod | |
61 | + public void getOrientation(Callback callback) { | |
62 | + final int orientationInt = getReactApplicationContext().getResources().getConfiguration().orientation; | |
63 | + | |
64 | + String orientation = this.getOrientationString(orientationInt); | |
65 | + | |
66 | + if (orientation == "null") { | |
67 | + callback.invoke(orientationInt, null); | |
68 | + } else { | |
69 | + callback.invoke(null, orientation); | |
70 | + } | |
71 | + } | |
72 | + | |
73 | + @ReactMethod | |
74 | + public void lockToPortrait() { | |
75 | + final Activity activity = getCurrentActivity(); | |
76 | + if (activity == null) { | |
77 | + return; | |
78 | + } | |
79 | + activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); | |
80 | + } | |
81 | + | |
82 | + @ReactMethod | |
83 | + public void lockToLandscape() { | |
84 | + final Activity activity = getCurrentActivity(); | |
85 | + if (activity == null) { | |
86 | + return; | |
87 | + } | |
88 | + activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); | |
89 | + } | |
90 | + | |
91 | + @ReactMethod | |
92 | + public void lockToLandscapeLeft() { | |
93 | + final Activity activity = getCurrentActivity(); | |
94 | + if (activity == null) { | |
95 | + return; | |
96 | + } | |
97 | + activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); | |
98 | + } | |
99 | + | |
100 | + @ReactMethod | |
101 | + public void lockToLandscapeRight() { | |
102 | + final Activity activity = getCurrentActivity(); | |
103 | + if (activity == null) { | |
104 | + return; | |
105 | + } | |
106 | + activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE); | |
107 | + } | |
108 | + | |
109 | + @ReactMethod | |
110 | + public void unlockAllOrientations() { | |
111 | + final Activity activity = getCurrentActivity(); | |
112 | + if (activity == null) { | |
113 | + return; | |
114 | + } | |
115 | + activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); | |
116 | + } | |
117 | + | |
118 | + @Override | |
119 | + public @Nullable Map<String, Object> getConstants() { | |
120 | + HashMap<String, Object> constants = new HashMap<String, Object>(); | |
121 | + int orientationInt = getReactApplicationContext().getResources().getConfiguration().orientation; | |
122 | + | |
123 | + String orientation = this.getOrientationString(orientationInt); | |
124 | + if (orientation == "null") { | |
125 | + constants.put("initialOrientation", null); | |
126 | + } else { | |
127 | + constants.put("initialOrientation", orientation); | |
128 | + } | |
129 | + | |
130 | + return constants; | |
131 | + } | |
132 | + | |
133 | + private String getOrientationString(int orientation) { | |
134 | + if (orientation == Configuration.ORIENTATION_LANDSCAPE) { | |
135 | + return "LANDSCAPE"; | |
136 | + } else if (orientation == Configuration.ORIENTATION_PORTRAIT) { | |
137 | + return "PORTRAIT"; | |
138 | + } else if (orientation == Configuration.ORIENTATION_UNDEFINED) { | |
139 | + return "UNKNOWN"; | |
140 | + } else { | |
141 | + return "null"; | |
142 | + } | |
143 | + } | |
144 | + | |
145 | + @Override | |
146 | + public void onHostResume() { | |
147 | + final Activity activity = getCurrentActivity(); | |
148 | + | |
149 | + if (activity == null) { | |
150 | + FLog.e(ReactConstants.TAG, "no activity to register receiver"); | |
151 | + return; | |
152 | + } | |
153 | + activity.registerReceiver(receiver, new IntentFilter("onConfigurationChanged")); | |
154 | + } | |
155 | + @Override | |
156 | + public void onHostPause() { | |
157 | + final Activity activity = getCurrentActivity(); | |
158 | + if (activity == null) return; | |
159 | + try | |
160 | + { | |
161 | + activity.unregisterReceiver(receiver); | |
162 | + } | |
163 | + catch (java.lang.IllegalArgumentException e) { | |
164 | + FLog.e(ReactConstants.TAG, "receiver already unregistered", e); | |
165 | + } | |
166 | + } | |
167 | + | |
168 | + @Override | |
169 | + public void onHostDestroy() { | |
170 | + | |
171 | + } | |
172 | + } | ... | ... |
android/src/main/java/com/github/yamill/orientation/OrientationPackage.java
0 → 100644
1 | +++ a/android/src/main/java/com/github/yamill/orientation/OrientationPackage.java | |
1 | +package com.github.yamill.orientation; | |
2 | + | |
3 | +import com.facebook.react.ReactPackage; | |
4 | +import com.facebook.react.bridge.JavaScriptModule; | |
5 | +import com.facebook.react.bridge.NativeModule; | |
6 | +import com.facebook.react.bridge.ReactApplicationContext; | |
7 | +import com.facebook.react.uimanager.ViewManager; | |
8 | + | |
9 | +import java.util.Arrays; | |
10 | +import java.util.Collections; | |
11 | +import java.util.List; | |
12 | + | |
13 | +public class OrientationPackage implements ReactPackage { | |
14 | + | |
15 | + public OrientationPackage() { | |
16 | + } | |
17 | + | |
18 | + @Override | |
19 | + public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) { | |
20 | + return Arrays.<NativeModule>asList( | |
21 | + new OrientationModule(reactContext) | |
22 | + ); | |
23 | + } | |
24 | + | |
25 | + // Deprecated RN 0.47 | |
26 | + public List<Class<? extends JavaScriptModule>> createJSModules() { | |
27 | + return Collections.emptyList(); | |
28 | + } | |
29 | + | |
30 | + @Override | |
31 | + public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) { | |
32 | + return Arrays.asList(); | |
33 | + } | |
34 | +} | |
35 | + | |
36 | + | ... | ... |
demo/.babelrc
0 → 100644
demo/.buckconfig
0 → 100644
demo/.flowconfig
0 → 100644
1 | +++ a/demo/.flowconfig | |
1 | +[ignore] | |
2 | +; We fork some components by platform | |
3 | +.*/*[.]android.js | |
4 | + | |
5 | +; Ignore "BUCK" generated dirs | |
6 | +<PROJECT_ROOT>/\.buckd/ | |
7 | + | |
8 | +; Ignore unexpected extra "@providesModule" | |
9 | +.*/node_modules/.*/node_modules/fbjs/.* | |
10 | + | |
11 | +; Ignore duplicate module providers | |
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 | |
14 | +.*/Libraries/react-native/React.js | |
15 | +.*/Libraries/react-native/ReactNative.js | |
16 | + | |
17 | +[include] | |
18 | + | |
19 | +[libs] | |
20 | +node_modules/react-native/Libraries/react-native/react-native-interface.js | |
21 | +node_modules/react-native/flow | |
22 | +flow/ | |
23 | + | |
24 | +[options] | |
25 | +emoji=true | |
26 | + | |
27 | +module.system=haste | |
28 | + | |
29 | +experimental.strict_type_args=true | |
30 | + | |
31 | +munge_underscores=true | |
32 | + | |
33 | +module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub' | |
34 | + | |
35 | +suppress_type=$FlowIssue | |
36 | +suppress_type=$FlowFixMe | |
37 | +suppress_type=$FixMe | |
38 | + | |
39 | +suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(4[0-5]\\|[1-3][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) | |
40 | +suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(4[0-5]\\|[1-3][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ | |
41 | +suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy | |
42 | +suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError | |
43 | + | |
44 | +unsafe.enable_getters_and_setters=true | |
45 | + | |
46 | +[version] | |
47 | +^0.45.0 | ... | ... |
demo/.gitattributes
0 → 100644
demo/.gitignore
0 → 100644
1 | +++ a/demo/.gitignore | |
1 | +# OSX | |
2 | +# | |
3 | +.DS_Store | |
4 | + | |
5 | +# Xcode | |
6 | +# | |
7 | +build/ | |
8 | +*.pbxuser | |
9 | +!default.pbxuser | |
10 | +*.mode1v3 | |
11 | +!default.mode1v3 | |
12 | +*.mode2v3 | |
13 | +!default.mode2v3 | |
14 | +*.perspectivev3 | |
15 | +!default.perspectivev3 | |
16 | +xcuserdata | |
17 | +*.xccheckout | |
18 | +*.moved-aside | |
19 | +DerivedData | |
20 | +*.hmap | |
21 | +*.ipa | |
22 | +*.xcuserstate | |
23 | +project.xcworkspace | |
24 | + | |
25 | +# Android/IntelliJ | |
26 | +# | |
27 | +build/ | |
28 | +.idea | |
29 | +.gradle | |
30 | +local.properties | |
31 | +*.iml | |
32 | + | |
33 | +# node.js | |
34 | +# | |
35 | +node_modules/ | |
36 | +npm-debug.log | |
37 | +yarn-error.log | |
38 | + | |
39 | +# BUCK | |
40 | +buck-out/ | |
41 | +\.buckd/ | |
42 | +*.keystore | |
43 | + | |
44 | +# fastlane | |
45 | +# | |
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. | |
48 | +# For more information about the recommended setup visit: | |
49 | +# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md | |
50 | + | |
51 | +fastlane/report.xml | |
52 | +fastlane/Preview.html | |
53 | +fastlane/screenshots | ... | ... |
demo/.watchmanconfig
0 → 100644
demo/__tests__/index.android.js
0 → 100644
1 | +++ a/demo/__tests__/index.android.js | |
1 | +import 'react-native'; | |
2 | +import React from 'react'; | |
3 | +import Index from '../index.android.js'; | |
4 | + | |
5 | +// Note: test renderer must be required after react-native. | |
6 | +import renderer from 'react-test-renderer'; | |
7 | + | |
8 | +it('renders correctly', () => { | |
9 | + const tree = renderer.create( | |
10 | + <Index /> | |
11 | + ); | |
12 | +}); | ... | ... |
demo/__tests__/index.ios.js
0 → 100644
1 | +++ a/demo/__tests__/index.ios.js | |
1 | +import 'react-native'; | |
2 | +import React from 'react'; | |
3 | +import Index from '../index.ios.js'; | |
4 | + | |
5 | +// Note: test renderer must be required after react-native. | |
6 | +import renderer from 'react-test-renderer'; | |
7 | + | |
8 | +it('renders correctly', () => { | |
9 | + const tree = renderer.create( | |
10 | + <Index /> | |
11 | + ); | |
12 | +}); | ... | ... |
demo/android/app/BUCK
0 → 100644
1 | +++ a/demo/android/app/BUCK | |
1 | +# To learn about Buck see [Docs](https://buckbuild.com/). | |
2 | +# To run your application with Buck: | |
3 | +# - install Buck | |
4 | +# - `npm start` - to start the packager | |
5 | +# - `cd android` | |
6 | +# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` | |
7 | +# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck | |
8 | +# - `buck install -r android/app` - compile, install and run application | |
9 | +# | |
10 | + | |
11 | +lib_deps = [] | |
12 | + | |
13 | +for jarfile in glob(['libs/*.jar']): | |
14 | + name = 'jars__' + jarfile[jarfile.rindex('/') + 1: jarfile.rindex('.jar')] | |
15 | + lib_deps.append(':' + name) | |
16 | + prebuilt_jar( | |
17 | + name = name, | |
18 | + binary_jar = jarfile, | |
19 | + ) | |
20 | + | |
21 | +for aarfile in glob(['libs/*.aar']): | |
22 | + name = 'aars__' + aarfile[aarfile.rindex('/') + 1: aarfile.rindex('.aar')] | |
23 | + lib_deps.append(':' + name) | |
24 | + android_prebuilt_aar( | |
25 | + name = name, | |
26 | + aar = aarfile, | |
27 | + ) | |
28 | + | |
29 | +android_library( | |
30 | + name = "all-libs", | |
31 | + exported_deps = lib_deps, | |
32 | +) | |
33 | + | |
34 | +android_library( | |
35 | + name = "app-code", | |
36 | + srcs = glob([ | |
37 | + "src/main/java/**/*.java", | |
38 | + ]), | |
39 | + deps = [ | |
40 | + ":all-libs", | |
41 | + ":build_config", | |
42 | + ":res", | |
43 | + ], | |
44 | +) | |
45 | + | |
46 | +android_build_config( | |
47 | + name = "build_config", | |
48 | + package = "com.demo", | |
49 | +) | |
50 | + | |
51 | +android_resource( | |
52 | + name = "res", | |
53 | + package = "com.demo", | |
54 | + res = "src/main/res", | |
55 | +) | |
56 | + | |
57 | +android_binary( | |
58 | + name = "app", | |
59 | + keystore = "//android/keystores:debug", | |
60 | + manifest = "src/main/AndroidManifest.xml", | |
61 | + package_type = "debug", | |
62 | + deps = [ | |
63 | + ":app-code", | |
64 | + ], | |
65 | +) | ... | ... |
demo/android/app/build.gradle
0 → 100644
1 | +++ a/demo/android/app/build.gradle | |
1 | +apply plugin: "com.android.application" | |
2 | + | |
3 | +import com.android.build.OutputFile | |
4 | + | |
5 | +/** | |
6 | + * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets | |
7 | + * and bundleReleaseJsAndAssets). | |
8 | + * These basically call `react-native bundle` with the correct arguments during the Android build | |
9 | + * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the | |
10 | + * bundle directly from the development server. Below you can see all the possible configurations | |
11 | + * and their defaults. If you decide to add a configuration block, make sure to add it before the | |
12 | + * `apply from: "../../node_modules/react-native/react.gradle"` line. | |
13 | + * | |
14 | + * project.ext.react = [ | |
15 | + * // the name of the generated asset file containing your JS bundle | |
16 | + * bundleAssetName: "index.android.bundle", | |
17 | + * | |
18 | + * // the entry file for bundle generation | |
19 | + * entryFile: "index.android.js", | |
20 | + * | |
21 | + * // whether to bundle JS and assets in debug mode | |
22 | + * bundleInDebug: false, | |
23 | + * | |
24 | + * // whether to bundle JS and assets in release mode | |
25 | + * bundleInRelease: true, | |
26 | + * | |
27 | + * // whether to bundle JS and assets in another build variant (if configured). | |
28 | + * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants | |
29 | + * // The configuration property can be in the following formats | |
30 | + * // 'bundleIn${productFlavor}${buildType}' | |
31 | + * // 'bundleIn${buildType}' | |
32 | + * // bundleInFreeDebug: true, | |
33 | + * // bundleInPaidRelease: true, | |
34 | + * // bundleInBeta: true, | |
35 | + * | |
36 | + * // whether to disable dev mode in custom build variants (by default only disabled in release) | |
37 | + * // for example: to disable dev mode in the staging build type (if configured) | |
38 | + * devDisabledInStaging: true, | |
39 | + * // The configuration property can be in the following formats | |
40 | + * // 'devDisabledIn${productFlavor}${buildType}' | |
41 | + * // 'devDisabledIn${buildType}' | |
42 | + * | |
43 | + * // the root of your project, i.e. where "package.json" lives | |
44 | + * root: "../../", | |
45 | + * | |
46 | + * // where to put the JS bundle asset in debug mode | |
47 | + * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", | |
48 | + * | |
49 | + * // where to put the JS bundle asset in release mode | |
50 | + * jsBundleDirRelease: "$buildDir/intermediates/assets/release", | |
51 | + * | |
52 | + * // where to put drawable resources / React Native assets, e.g. the ones you use via | |
53 | + * // require('./image.png')), in debug mode | |
54 | + * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", | |
55 | + * | |
56 | + * // where to put drawable resources / React Native assets, e.g. the ones you use via | |
57 | + * // require('./image.png')), in release mode | |
58 | + * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", | |
59 | + * | |
60 | + * // by default the gradle tasks are skipped if none of the JS files or assets change; this means | |
61 | + * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to | |
62 | + * // date; if you have any other folders that you want to ignore for performance reasons (gradle | |
63 | + * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ | |
64 | + * // for example, you might want to remove it from here. | |
65 | + * inputExcludes: ["android/**", "ios/**"], | |
66 | + * | |
67 | + * // override which node gets called and with what additional arguments | |
68 | + * nodeExecutableAndArgs: ["node"], | |
69 | + * | |
70 | + * // supply additional arguments to the packager | |
71 | + * extraPackagerArgs: [] | |
72 | + * ] | |
73 | + */ | |
74 | + | |
75 | +apply from: "../../node_modules/react-native/react.gradle" | |
76 | + | |
77 | +/** | |
78 | + * Set this to true to create two separate APKs instead of one: | |
79 | + * - An APK that only works on ARM devices | |
80 | + * - An APK that only works on x86 devices | |
81 | + * The advantage is the size of the APK is reduced by about 4MB. | |
82 | + * Upload all the APKs to the Play Store and people will download | |
83 | + * the correct one based on the CPU architecture of their device. | |
84 | + */ | |
85 | +def enableSeparateBuildPerCPUArchitecture = false | |
86 | + | |
87 | +/** | |
88 | + * Run Proguard to shrink the Java bytecode in release builds. | |
89 | + */ | |
90 | +def enableProguardInReleaseBuilds = false | |
91 | + | |
92 | +android { | |
93 | + compileSdkVersion 23 | |
94 | + buildToolsVersion "23.0.1" | |
95 | + | |
96 | + defaultConfig { | |
97 | + applicationId "com.demo" | |
98 | + minSdkVersion 16 | |
99 | + targetSdkVersion 22 | |
100 | + versionCode 1 | |
101 | + versionName "1.0" | |
102 | + ndk { | |
103 | + abiFilters "armeabi-v7a", "x86" | |
104 | + } | |
105 | + } | |
106 | + splits { | |
107 | + abi { | |
108 | + reset() | |
109 | + enable enableSeparateBuildPerCPUArchitecture | |
110 | + universalApk false // If true, also generate a universal APK | |
111 | + include "armeabi-v7a", "x86" | |
112 | + } | |
113 | + } | |
114 | + buildTypes { | |
115 | + release { | |
116 | + minifyEnabled enableProguardInReleaseBuilds | |
117 | + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" | |
118 | + } | |
119 | + } | |
120 | + // applicationVariants are e.g. debug, release | |
121 | + applicationVariants.all { variant -> | |
122 | + variant.outputs.each { output -> | |
123 | + // For each separate APK per architecture, set a unique version code as described here: | |
124 | + // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits | |
125 | + def versionCodes = ["armeabi-v7a":1, "x86":2] | |
126 | + def abi = output.getFilter(OutputFile.ABI) | |
127 | + if (abi != null) { // null for the universal-debug, universal-release variants | |
128 | + output.versionCodeOverride = | |
129 | + versionCodes.get(abi) * 1048576 + defaultConfig.versionCode | |
130 | + } | |
131 | + } | |
132 | + } | |
133 | +} | |
134 | + | |
135 | +dependencies { | |
136 | + compile project(':react-native-orientation') | |
137 | + compile fileTree(dir: "libs", include: ["*.jar"]) | |
138 | + compile "com.android.support:appcompat-v7:23.0.1" | |
139 | + compile "com.facebook.react:react-native:+" // From node_modules | |
140 | +} | |
141 | + | |
142 | +// Run this once to be able to run the application with BUCK | |
143 | +// puts all compile dependencies into folder libs for BUCK to use | |
144 | +task copyDownloadableDepsToLibs(type: Copy) { | |
145 | + from configurations.compile | |
146 | + into 'libs' | |
147 | +} | ... | ... |
demo/android/app/proguard-rules.pro
0 → 100644
1 | +++ a/demo/android/app/proguard-rules.pro | |
1 | +# Add project specific ProGuard rules here. | |
2 | +# By default, the flags in this file are appended to flags specified | |
3 | +# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt | |
4 | +# You can edit the include path and order by changing the proguardFiles | |
5 | +# directive in build.gradle. | |
6 | +# | |
7 | +# For more details, see | |
8 | +# http://developer.android.com/guide/developing/tools/proguard.html | |
9 | + | |
10 | +# Add any project specific keep options here: | |
11 | + | |
12 | +# If your project uses WebView with JS, uncomment the following | |
13 | +# and specify the fully qualified class name to the JavaScript interface | |
14 | +# class: | |
15 | +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { | |
16 | +# public *; | |
17 | +#} | |
18 | + | |
19 | +# Disabling obfuscation is useful if you collect stack traces from production crashes | |
20 | +# (unless you are using a system that supports de-obfuscate the stack traces). | |
21 | +-dontobfuscate | |
22 | + | |
23 | +# React Native | |
24 | + | |
25 | +# Keep our interfaces so they can be used by other ProGuard rules. | |
26 | +# See http://sourceforge.net/p/proguard/bugs/466/ | |
27 | +-keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip | |
28 | +-keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters | |
29 | +-keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip | |
30 | + | |
31 | +# Do not strip any method/class that is annotated with @DoNotStrip | |
32 | +-keep @com.facebook.proguard.annotations.DoNotStrip class * | |
33 | +-keep @com.facebook.common.internal.DoNotStrip class * | |
34 | +-keepclassmembers class * { | |
35 | + @com.facebook.proguard.annotations.DoNotStrip *; | |
36 | + @com.facebook.common.internal.DoNotStrip *; | |
37 | +} | |
38 | + | |
39 | +-keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * { | |
40 | + void set*(***); | |
41 | + *** get*(); | |
42 | +} | |
43 | + | |
44 | +-keep class * extends com.facebook.react.bridge.JavaScriptModule { *; } | |
45 | +-keep class * extends com.facebook.react.bridge.NativeModule { *; } | |
46 | +-keepclassmembers,includedescriptorclasses class * { native <methods>; } | |
47 | +-keepclassmembers class * { @com.facebook.react.uimanager.UIProp <fields>; } | |
48 | +-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp <methods>; } | |
49 | +-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup <methods>; } | |
50 | + | |
51 | +-dontwarn com.facebook.react.** | |
52 | + | |
53 | +# TextLayoutBuilder uses a non-public Android constructor within StaticLayout. | |
54 | +# See libs/proxy/src/main/java/com/facebook/fbui/textlayoutbuilder/proxy for details. | |
55 | +-dontwarn android.text.StaticLayout | |
56 | + | |
57 | +# okhttp | |
58 | + | |
59 | +-keepattributes Signature | |
60 | +-keepattributes *Annotation* | |
61 | +-keep class okhttp3.** { *; } | |
62 | +-keep interface okhttp3.** { *; } | |
63 | +-dontwarn okhttp3.** | |
64 | + | |
65 | +# okio | |
66 | + | |
67 | +-keep class sun.misc.Unsafe { *; } | |
68 | +-dontwarn java.nio.file.* | |
69 | +-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement | |
70 | +-dontwarn okio.** | ... | ... |
demo/android/app/src/main/AndroidManifest.xml
0 → 100644
1 | +++ a/demo/android/app/src/main/AndroidManifest.xml | |
1 | +<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
2 | + package="com.demo" | |
3 | + android:versionCode="1" | |
4 | + android:versionName="1.0"> | |
5 | + | |
6 | + <uses-permission android:name="android.permission.INTERNET" /> | |
7 | + <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> | |
8 | + | |
9 | + <uses-sdk | |
10 | + android:minSdkVersion="16" | |
11 | + android:targetSdkVersion="22" /> | |
12 | + | |
13 | + <application | |
14 | + android:name=".MainApplication" | |
15 | + android:allowBackup="true" | |
16 | + android:label="@string/app_name" | |
17 | + android:icon="@mipmap/ic_launcher" | |
18 | + android:theme="@style/AppTheme"> | |
19 | + <activity | |
20 | + android:name=".MainActivity" | |
21 | + android:label="@string/app_name" | |
22 | + android:configChanges="keyboard|keyboardHidden|orientation|screenSize" | |
23 | + android:windowSoftInputMode="adjustResize"> | |
24 | + <intent-filter> | |
25 | + <action android:name="android.intent.action.MAIN" /> | |
26 | + <category android:name="android.intent.category.LAUNCHER" /> | |
27 | + </intent-filter> | |
28 | + </activity> | |
29 | + <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> | |
30 | + </application> | |
31 | + | |
32 | +</manifest> | ... | ... |
demo/android/app/src/main/java/com/demo/MainActivity.java
0 → 100644
1 | +++ a/demo/android/app/src/main/java/com/demo/MainActivity.java | |
1 | +package com.demo; | |
2 | + | |
3 | +import com.facebook.react.ReactActivity; | |
4 | + | |
5 | +import android.content.Intent; | |
6 | +import android.content.res.Configuration; | |
7 | + | |
8 | +public class MainActivity extends ReactActivity { | |
9 | + | |
10 | + @Override | |
11 | + public void onConfigurationChanged(Configuration newConfig) { | |
12 | + super.onConfigurationChanged(newConfig); | |
13 | + Intent intent = new Intent("onConfigurationChanged"); | |
14 | + intent.putExtra("newConfig", newConfig); | |
15 | + this.sendBroadcast(intent); | |
16 | + } | |
17 | + | |
18 | + /** | |
19 | + * Returns the name of the main component registered from JavaScript. | |
20 | + * This is used to schedule rendering of the component. | |
21 | + */ | |
22 | + protected String getMainComponentName() { | |
23 | + return "demo"; | |
24 | + } | |
25 | +} | ... | ... |
demo/android/app/src/main/java/com/demo/MainApplication.java
0 → 100644
1 | +++ a/demo/android/app/src/main/java/com/demo/MainApplication.java | |
1 | +package com.demo; | |
2 | + | |
3 | +import android.app.Application; | |
4 | + | |
5 | +import com.facebook.react.ReactApplication; | |
6 | +import com.github.yamill.orientation.OrientationPackage; | |
7 | +import com.facebook.react.ReactNativeHost; | |
8 | +import com.facebook.react.ReactPackage; | |
9 | +import com.facebook.react.shell.MainReactPackage; | |
10 | +import com.facebook.soloader.SoLoader; | |
11 | + | |
12 | +import java.util.Arrays; | |
13 | +import java.util.List; | |
14 | + | |
15 | +public class MainApplication extends Application implements ReactApplication { | |
16 | + | |
17 | + private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { | |
18 | + @Override | |
19 | + public boolean getUseDeveloperSupport() { | |
20 | + return BuildConfig.DEBUG; | |
21 | + } | |
22 | + | |
23 | + @Override | |
24 | + protected List<ReactPackage> getPackages() { | |
25 | + return Arrays.<ReactPackage>asList( | |
26 | + new MainReactPackage(), | |
27 | + new OrientationPackage() | |
28 | + ); | |
29 | + } | |
30 | + }; | |
31 | + | |
32 | + @Override | |
33 | + public ReactNativeHost getReactNativeHost() { | |
34 | + return mReactNativeHost; | |
35 | + } | |
36 | + | |
37 | + @Override | |
38 | + public void onCreate() { | |
39 | + super.onCreate(); | |
40 | + SoLoader.init(this, /* native exopackage */ false); | |
41 | + } | |
42 | +} | ... | ... |
demo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
0 → 100644
3.34 KB
demo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
0 → 100644
2.15 KB
demo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
0 → 100644
4.73 KB
demo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
0 → 100644
7.54 KB
demo/android/app/src/main/res/values/strings.xml
0 → 100644
demo/android/app/src/main/res/values/styles.xml
0 → 100644
demo/android/build.gradle
0 → 100644
1 | +++ a/demo/android/build.gradle | |
1 | +// Top-level build file where you can add configuration options common to all sub-projects/modules. | |
2 | + | |
3 | +buildscript { | |
4 | + repositories { | |
5 | + jcenter() | |
6 | + } | |
7 | + dependencies { | |
8 | + classpath 'com.android.tools.build:gradle:2.2.3' | |
9 | + | |
10 | + // NOTE: Do not place your application dependencies here; they belong | |
11 | + // in the individual module build.gradle files | |
12 | + } | |
13 | +} | |
14 | + | |
15 | +allprojects { | |
16 | + repositories { | |
17 | + mavenLocal() | |
18 | + jcenter() | |
19 | + maven { | |
20 | + // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm | |
21 | + url "$rootDir/../node_modules/react-native/android" | |
22 | + } | |
23 | + } | |
24 | +} | ... | ... |
demo/android/gradle.properties
0 → 100644
1 | +++ a/demo/android/gradle.properties | |
1 | +# Project-wide Gradle settings. | |
2 | + | |
3 | +# IDE (e.g. Android Studio) users: | |
4 | +# Gradle settings configured through the IDE *will override* | |
5 | +# any settings specified in this file. | |
6 | + | |
7 | +# For more details on how to configure your build environment visit | |
8 | +# http://www.gradle.org/docs/current/userguide/build_environment.html | |
9 | + | |
10 | +# Specifies the JVM arguments used for the daemon process. | |
11 | +# The setting is particularly useful for tweaking memory settings. | |
12 | +# Default value: -Xmx10248m -XX:MaxPermSize=256m | |
13 | +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 | |
14 | + | |
15 | +# When configured, Gradle will run in incubating parallel mode. | |
16 | +# This option should only be used with decoupled projects. More details, visit | |
17 | +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects | |
18 | +# org.gradle.parallel=true | |
19 | + | |
20 | +android.useDeprecatedNdk=true | ... | ... |
demo/android/gradle/wrapper/gradle-wrapper.jar
0 → 100644
No preview for this file type
demo/android/gradle/wrapper/gradle-wrapper.properties
0 → 100644
demo/android/gradlew
0 → 100755
1 | +++ a/demo/android/gradlew | |
1 | +#!/usr/bin/env bash | |
2 | + | |
3 | +############################################################################## | |
4 | +## | |
5 | +## Gradle start up script for UN*X | |
6 | +## | |
7 | +############################################################################## | |
8 | + | |
9 | +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. | |
10 | +DEFAULT_JVM_OPTS="" | |
11 | + | |
12 | +APP_NAME="Gradle" | |
13 | +APP_BASE_NAME=`basename "$0"` | |
14 | + | |
15 | +# Use the maximum available, or set MAX_FD != -1 to use that value. | |
16 | +MAX_FD="maximum" | |
17 | + | |
18 | +warn ( ) { | |
19 | + echo "$*" | |
20 | +} | |
21 | + | |
22 | +die ( ) { | |
23 | + echo | |
24 | + echo "$*" | |
25 | + echo | |
26 | + exit 1 | |
27 | +} | |
28 | + | |
29 | +# OS specific support (must be 'true' or 'false'). | |
30 | +cygwin=false | |
31 | +msys=false | |
32 | +darwin=false | |
33 | +case "`uname`" in | |
34 | + CYGWIN* ) | |
35 | + cygwin=true | |
36 | + ;; | |
37 | + Darwin* ) | |
38 | + darwin=true | |
39 | + ;; | |
40 | + MINGW* ) | |
41 | + msys=true | |
42 | + ;; | |
43 | +esac | |
44 | + | |
45 | +# For Cygwin, ensure paths are in UNIX format before anything is touched. | |
46 | +if $cygwin ; then | |
47 | + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` | |
48 | +fi | |
49 | + | |
50 | +# Attempt to set APP_HOME | |
51 | +# Resolve links: $0 may be a link | |
52 | +PRG="$0" | |
53 | +# Need this for relative symlinks. | |
54 | +while [ -h "$PRG" ] ; do | |
55 | + ls=`ls -ld "$PRG"` | |
56 | + link=`expr "$ls" : '.*-> \(.*\)$'` | |
57 | + if expr "$link" : '/.*' > /dev/null; then | |
58 | + PRG="$link" | |
59 | + else | |
60 | + PRG=`dirname "$PRG"`"/$link" | |
61 | + fi | |
62 | +done | |
63 | +SAVED="`pwd`" | |
64 | +cd "`dirname \"$PRG\"`/" >&- | |
65 | +APP_HOME="`pwd -P`" | |
66 | +cd "$SAVED" >&- | |
67 | + | |
68 | +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar | |
69 | + | |
70 | +# Determine the Java command to use to start the JVM. | |
71 | +if [ -n "$JAVA_HOME" ] ; then | |
72 | + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then | |
73 | + # IBM's JDK on AIX uses strange locations for the executables | |
74 | + JAVACMD="$JAVA_HOME/jre/sh/java" | |
75 | + else | |
76 | + JAVACMD="$JAVA_HOME/bin/java" | |
77 | + fi | |
78 | + if [ ! -x "$JAVACMD" ] ; then | |
79 | + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME | |
80 | + | |
81 | +Please set the JAVA_HOME variable in your environment to match the | |
82 | +location of your Java installation." | |
83 | + fi | |
84 | +else | |
85 | + JAVACMD="java" | |
86 | + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. | |
87 | + | |
88 | +Please set the JAVA_HOME variable in your environment to match the | |
89 | +location of your Java installation." | |
90 | +fi | |
91 | + | |
92 | +# Increase the maximum file descriptors if we can. | |
93 | +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then | |
94 | + MAX_FD_LIMIT=`ulimit -H -n` | |
95 | + if [ $? -eq 0 ] ; then | |
96 | + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then | |
97 | + MAX_FD="$MAX_FD_LIMIT" | |
98 | + fi | |
99 | + ulimit -n $MAX_FD | |
100 | + if [ $? -ne 0 ] ; then | |
101 | + warn "Could not set maximum file descriptor limit: $MAX_FD" | |
102 | + fi | |
103 | + else | |
104 | + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" | |
105 | + fi | |
106 | +fi | |
107 | + | |
108 | +# For Darwin, add options to specify how the application appears in the dock | |
109 | +if $darwin; then | |
110 | + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" | |
111 | +fi | |
112 | + | |
113 | +# For Cygwin, switch paths to Windows format before running java | |
114 | +if $cygwin ; then | |
115 | + APP_HOME=`cygpath --path --mixed "$APP_HOME"` | |
116 | + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` | |
117 | + | |
118 | + # We build the pattern for arguments to be converted via cygpath | |
119 | + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` | |
120 | + SEP="" | |
121 | + for dir in $ROOTDIRSRAW ; do | |
122 | + ROOTDIRS="$ROOTDIRS$SEP$dir" | |
123 | + SEP="|" | |
124 | + done | |
125 | + OURCYGPATTERN="(^($ROOTDIRS))" | |
126 | + # Add a user-defined pattern to the cygpath arguments | |
127 | + if [ "$GRADLE_CYGPATTERN" != "" ] ; then | |
128 | + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" | |
129 | + fi | |
130 | + # Now convert the arguments - kludge to limit ourselves to /bin/sh | |
131 | + i=0 | |
132 | + for arg in "$@" ; do | |
133 | + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` | |
134 | + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option | |
135 | + | |
136 | + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition | |
137 | + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` | |
138 | + else | |
139 | + eval `echo args$i`="\"$arg\"" | |
140 | + fi | |
141 | + i=$((i+1)) | |
142 | + done | |
143 | + case $i in | |
144 | + (0) set -- ;; | |
145 | + (1) set -- "$args0" ;; | |
146 | + (2) set -- "$args0" "$args1" ;; | |
147 | + (3) set -- "$args0" "$args1" "$args2" ;; | |
148 | + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; | |
149 | + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; | |
150 | + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; | |
151 | + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; | |
152 | + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; | |
153 | + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; | |
154 | + esac | |
155 | +fi | |
156 | + | |
157 | +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules | |
158 | +function splitJvmOpts() { | |
159 | + JVM_OPTS=("$@") | |
160 | +} | |
161 | +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS | |
162 | +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" | |
163 | + | |
164 | +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" | ... | ... |
demo/android/gradlew.bat
0 → 100644
1 | +++ a/demo/android/gradlew.bat | |
1 | +@if "%DEBUG%" == "" @echo off | |
2 | +@rem ########################################################################## | |
3 | +@rem | |
4 | +@rem Gradle startup script for Windows | |
5 | +@rem | |
6 | +@rem ########################################################################## | |
7 | + | |
8 | +@rem Set local scope for the variables with windows NT shell | |
9 | +if "%OS%"=="Windows_NT" setlocal | |
10 | + | |
11 | +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. | |
12 | +set DEFAULT_JVM_OPTS= | |
13 | + | |
14 | +set DIRNAME=%~dp0 | |
15 | +if "%DIRNAME%" == "" set DIRNAME=. | |
16 | +set APP_BASE_NAME=%~n0 | |
17 | +set APP_HOME=%DIRNAME% | |
18 | + | |
19 | +@rem Find java.exe | |
20 | +if defined JAVA_HOME goto findJavaFromJavaHome | |
21 | + | |
22 | +set JAVA_EXE=java.exe | |
23 | +%JAVA_EXE% -version >NUL 2>&1 | |
24 | +if "%ERRORLEVEL%" == "0" goto init | |
25 | + | |
26 | +echo. | |
27 | +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. | |
28 | +echo. | |
29 | +echo Please set the JAVA_HOME variable in your environment to match the | |
30 | +echo location of your Java installation. | |
31 | + | |
32 | +goto fail | |
33 | + | |
34 | +:findJavaFromJavaHome | |
35 | +set JAVA_HOME=%JAVA_HOME:"=% | |
36 | +set JAVA_EXE=%JAVA_HOME%/bin/java.exe | |
37 | + | |
38 | +if exist "%JAVA_EXE%" goto init | |
39 | + | |
40 | +echo. | |
41 | +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% | |
42 | +echo. | |
43 | +echo Please set the JAVA_HOME variable in your environment to match the | |
44 | +echo location of your Java installation. | |
45 | + | |
46 | +goto fail | |
47 | + | |
48 | +:init | |
49 | +@rem Get command-line arguments, handling Windowz variants | |
50 | + | |
51 | +if not "%OS%" == "Windows_NT" goto win9xME_args | |
52 | +if "%@eval[2+2]" == "4" goto 4NT_args | |
53 | + | |
54 | +:win9xME_args | |
55 | +@rem Slurp the command line arguments. | |
56 | +set CMD_LINE_ARGS= | |
57 | +set _SKIP=2 | |
58 | + | |
59 | +:win9xME_args_slurp | |
60 | +if "x%~1" == "x" goto execute | |
61 | + | |
62 | +set CMD_LINE_ARGS=%* | |
63 | +goto execute | |
64 | + | |
65 | +:4NT_args | |
66 | +@rem Get arguments from the 4NT Shell from JP Software | |
67 | +set CMD_LINE_ARGS=%$ | |
68 | + | |
69 | +:execute | |
70 | +@rem Setup the command line | |
71 | + | |
72 | +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar | |
73 | + | |
74 | +@rem Execute Gradle | |
75 | +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% | |
76 | + | |
77 | +:end | |
78 | +@rem End local scope for the variables with windows NT shell | |
79 | +if "%ERRORLEVEL%"=="0" goto mainEnd | |
80 | + | |
81 | +:fail | |
82 | +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of | |
83 | +rem the _cmd.exe /c_ return code! | |
84 | +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 | |
85 | +exit /b 1 | |
86 | + | |
87 | +:mainEnd | |
88 | +if "%OS%"=="Windows_NT" endlocal | |
89 | + | |
90 | +:omega | ... | ... |
demo/android/keystores/BUCK
0 → 100644
demo/android/keystores/debug.keystore.properties
0 → 100644
demo/android/settings.gradle
0 → 100644
demo/app.js
0 → 100644
1 | +++ a/demo/app.js | |
1 | +import React, { Component } from 'react'; | |
2 | +import { Alert, StyleSheet, Text, TouchableOpacity, View } from 'react-native'; | |
3 | +import Orientation from 'react-native-orientation'; | |
4 | + | |
5 | +export default class Demo extends Component { | |
6 | + componentWillMount() { | |
7 | + const init = Orientation.getInitialOrientation(); | |
8 | + this.setState({ | |
9 | + init, | |
10 | + orientation: init, | |
11 | + specificOrientation: init, | |
12 | + }); | |
13 | + } | |
14 | + | |
15 | + componentDidMount() { | |
16 | + Orientation.addOrientationListener(this._updateOrientation); | |
17 | + Orientation.addSpecificOrientationListener(this._updateSpecificOrientation); | |
18 | + } | |
19 | + | |
20 | + componentWillUnmount() { | |
21 | + Orientation.removeOrientationListener(this._updateOrientation); | |
22 | + Orientation.removeSpecificOrientationListener(this._updateSpecificOrientation); | |
23 | + } | |
24 | + | |
25 | + _getOrientation() { | |
26 | + Orientation.getOrientation((err, orientation) => { | |
27 | + Alert.alert(`Orientation is ${orientation}`); | |
28 | + }); | |
29 | + } | |
30 | + | |
31 | + _getSpecificOrientation() { | |
32 | + Orientation.getSpecificOrientation((err, orientation) => { | |
33 | + Alert.alert(`Specific orientation is ${orientation}`); | |
34 | + }); | |
35 | + } | |
36 | + | |
37 | + _updateOrientation = (orientation) => this.setState({ orientation }); | |
38 | + _updateSpecificOrientation = (specificOrientation) => this.setState({ specificOrientation }); | |
39 | + | |
40 | + render() { | |
41 | + const { init, orientation, specificOrientation } = this.state; | |
42 | + | |
43 | + return ( | |
44 | + <View style={styles.container}> | |
45 | + <Text style={styles.welcome}> | |
46 | + Welcome to React Native Orientation Demo! | |
47 | + </Text> | |
48 | + <Text style={styles.instructions}> | |
49 | + {`Initial Orientation: ${init}`} | |
50 | + </Text> | |
51 | + <Text style={styles.instructions}> | |
52 | + {`Current Orientation: ${orientation}`} | |
53 | + </Text> | |
54 | + <Text style={styles.instructions}> | |
55 | + {`Specific Orientation: ${specificOrientation}`} | |
56 | + </Text> | |
57 | + <TouchableOpacity | |
58 | + onPress={Orientation.unlockAllOrientations} | |
59 | + style={styles.button} | |
60 | + > | |
61 | + <Text style={styles.instructions}> | |
62 | + Unlock All Orientations | |
63 | + </Text> | |
64 | + </TouchableOpacity> | |
65 | + <TouchableOpacity | |
66 | + onPress={Orientation.lockToPortrait} | |
67 | + style={styles.button} | |
68 | + > | |
69 | + <Text style={styles.instructions}> | |
70 | + Lock To Portrait | |
71 | + </Text> | |
72 | + </TouchableOpacity> | |
73 | + <View style={styles.buttonContainer}> | |
74 | + <TouchableOpacity | |
75 | + onPress={Orientation.lockToLandscapeLeft} | |
76 | + style={styles.button} | |
77 | + > | |
78 | + <Text style={styles.instructions}> | |
79 | + Lock To Left | |
80 | + </Text> | |
81 | + </TouchableOpacity> | |
82 | + <TouchableOpacity | |
83 | + onPress={Orientation.lockToLandscape} | |
84 | + style={styles.button} | |
85 | + > | |
86 | + <Text style={styles.instructions}> | |
87 | + Lock To Landscape | |
88 | + </Text> | |
89 | + </TouchableOpacity> | |
90 | + <TouchableOpacity | |
91 | + onPress={Orientation.lockToLandscapeRight} | |
92 | + style={styles.button} | |
93 | + > | |
94 | + <Text style={styles.instructions}> | |
95 | + Lock To Right | |
96 | + </Text> | |
97 | + </TouchableOpacity> | |
98 | + </View> | |
99 | + <View style={styles.buttonContainer}> | |
100 | + <TouchableOpacity | |
101 | + onPress={this._getOrientation} | |
102 | + style={styles.button} | |
103 | + > | |
104 | + <Text style={styles.instructions}> | |
105 | + Get Orientation | |
106 | + </Text> | |
107 | + </TouchableOpacity> | |
108 | + <TouchableOpacity | |
109 | + onPress={this._getSpecificOrientation} | |
110 | + style={styles.button} | |
111 | + > | |
112 | + <Text style={styles.instructions}> | |
113 | + Get Specific Orientation | |
114 | + </Text> | |
115 | + </TouchableOpacity> | |
116 | + </View> | |
117 | + </View> | |
118 | + ); | |
119 | + } | |
120 | +} | |
121 | + | |
122 | +const styles = StyleSheet.create({ | |
123 | + container: { | |
124 | + flex: 1, | |
125 | + justifyContent: 'center', | |
126 | + alignItems: 'center', | |
127 | + backgroundColor: '#F5FCFF', | |
128 | + }, | |
129 | + welcome: { | |
130 | + fontSize: 20, | |
131 | + textAlign: 'center', | |
132 | + margin: 10, | |
133 | + }, | |
134 | + instructions: { | |
135 | + textAlign: 'center', | |
136 | + color: '#333333', | |
137 | + marginBottom: 5, | |
138 | + }, | |
139 | + buttonContainer: { | |
140 | + flex: 0, | |
141 | + flexDirection: 'row', | |
142 | + justifyContent: 'space-around' | |
143 | + }, | |
144 | + button: { | |
145 | + padding: 5, | |
146 | + margin: 5, | |
147 | + borderWidth: 1, | |
148 | + borderColor: 'white', | |
149 | + borderRadius: 3, | |
150 | + backgroundColor: 'grey', | |
151 | + } | |
152 | +}); | ... | ... |
demo/app.json
0 → 100644
demo/index.android.js
0 → 100644
demo/index.ios.js
0 → 100644
demo/ios/demo-tvOS/Info.plist
0 → 100644
1 | +++ a/demo/ios/demo-tvOS/Info.plist | |
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>CFBundleDevelopmentRegion</key> | |
6 | + <string>en</string> | |
7 | + <key>CFBundleExecutable</key> | |
8 | + <string>$(EXECUTABLE_NAME)</string> | |
9 | + <key>CFBundleIdentifier</key> | |
10 | + <string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string> | |
11 | + <key>CFBundleInfoDictionaryVersion</key> | |
12 | + <string>6.0</string> | |
13 | + <key>CFBundleName</key> | |
14 | + <string>$(PRODUCT_NAME)</string> | |
15 | + <key>CFBundlePackageType</key> | |
16 | + <string>APPL</string> | |
17 | + <key>CFBundleShortVersionString</key> | |
18 | + <string>1.0</string> | |
19 | + <key>CFBundleSignature</key> | |
20 | + <string>????</string> | |
21 | + <key>CFBundleVersion</key> | |
22 | + <string>1</string> | |
23 | + <key>LSRequiresIPhoneOS</key> | |
24 | + <true/> | |
25 | + <key>UILaunchStoryboardName</key> | |
26 | + <string>LaunchScreen</string> | |
27 | + <key>UIRequiredDeviceCapabilities</key> | |
28 | + <array> | |
29 | + <string>armv7</string> | |
30 | + </array> | |
31 | + <key>UISupportedInterfaceOrientations</key> | |
32 | + <array> | |
33 | + <string>UIInterfaceOrientationPortrait</string> | |
34 | + <string>UIInterfaceOrientationLandscapeLeft</string> | |
35 | + <string>UIInterfaceOrientationLandscapeRight</string> | |
36 | + </array> | |
37 | + <key>UIViewControllerBasedStatusBarAppearance</key> | |
38 | + <false/> | |
39 | + <key>NSLocationWhenInUseUsageDescription</key> | |
40 | + <string></string> | |
41 | + <key>NSAppTransportSecurity</key> | |
42 | + <!--See http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/ --> | |
43 | + <dict> | |
44 | + <key>NSExceptionDomains</key> | |
45 | + <dict> | |
46 | + <key>localhost</key> | |
47 | + <dict> | |
48 | + <key>NSExceptionAllowsInsecureHTTPLoads</key> | |
49 | + <true/> | |
50 | + </dict> | |
51 | + </dict> | |
52 | + </dict> | |
53 | +</dict> | |
54 | +</plist> | ... | ... |
demo/ios/demo-tvOSTests/Info.plist
0 → 100644
1 | +++ a/demo/ios/demo-tvOSTests/Info.plist | |
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>CFBundleDevelopmentRegion</key> | |
6 | + <string>en</string> | |
7 | + <key>CFBundleExecutable</key> | |
8 | + <string>$(EXECUTABLE_NAME)</string> | |
9 | + <key>CFBundleIdentifier</key> | |
10 | + <string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string> | |
11 | + <key>CFBundleInfoDictionaryVersion</key> | |
12 | + <string>6.0</string> | |
13 | + <key>CFBundleName</key> | |
14 | + <string>$(PRODUCT_NAME)</string> | |
15 | + <key>CFBundlePackageType</key> | |
16 | + <string>BNDL</string> | |
17 | + <key>CFBundleShortVersionString</key> | |
18 | + <string>1.0</string> | |
19 | + <key>CFBundleSignature</key> | |
20 | + <string>????</string> | |
21 | + <key>CFBundleVersion</key> | |
22 | + <string>1</string> | |
23 | +</dict> | |
24 | +</plist> | ... | ... |
demo/ios/demo.xcodeproj/project.pbxproj
0 → 100644
1 | +++ a/demo/ios/demo.xcodeproj/project.pbxproj | |
1 | +// !$*UTF8*$! | |
2 | +{ | |
3 | + archiveVersion = 1; | |
4 | + classes = { | |
5 | + }; | |
6 | + objectVersion = 46; | |
7 | + objects = { | |
8 | +/* Begin PBXBuildFile section */ | |
9 | + 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; }; | |
10 | + 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; }; | |
11 | + 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */; }; | |
12 | + 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; }; | |
13 | + 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; }; | |
14 | + 00E356F31AD99517003FC87E /* demoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* demoTests.m */; }; | |
15 | + 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; }; | |
16 | + 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; }; | |
17 | + 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; }; | |
18 | + 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; | |
19 | + 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; | |
20 | + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; | |
21 | + 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; | |
22 | + 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; | |
23 | + 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; | |
24 | + 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; | |
25 | + 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; | |
26 | + 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; | |
27 | + 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */; }; | |
28 | + 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */; }; | |
29 | + 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */; }; | |
30 | + 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */; }; | |
31 | + 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */; }; | |
32 | + 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */; }; | |
33 | + 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; }; | |
34 | + 2D02E4C91E0B4AEC006451C7 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; }; | |
35 | + 2DCD954D1E0B4F2C00145EB5 /* demoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* demoTests.m */; }; | |
36 | + 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; | |
37 | + 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; | |
38 | + 90244AD94B6B401C8131CF46 /* libRCTOrientation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D769AB453724E60A7E54B05 /* libRCTOrientation.a */; }; | |
39 | +/* End PBXBuildFile section */ | |
40 | + | |
41 | +/* Begin PBXContainerItemProxy section */ | |
42 | + 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */ = { | |
43 | + isa = PBXContainerItemProxy; | |
44 | + containerPortal = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; | |
45 | + proxyType = 2; | |
46 | + remoteGlobalIDString = 134814201AA4EA6300B7C361; | |
47 | + remoteInfo = RCTActionSheet; | |
48 | + }; | |
49 | + 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */ = { | |
50 | + isa = PBXContainerItemProxy; | |
51 | + containerPortal = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; | |
52 | + proxyType = 2; | |
53 | + remoteGlobalIDString = 134814201AA4EA6300B7C361; | |
54 | + remoteInfo = RCTGeolocation; | |
55 | + }; | |
56 | + 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */ = { | |
57 | + isa = PBXContainerItemProxy; | |
58 | + containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; | |
59 | + proxyType = 2; | |
60 | + remoteGlobalIDString = 58B5115D1A9E6B3D00147676; | |
61 | + remoteInfo = RCTImage; | |
62 | + }; | |
63 | + 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */ = { | |
64 | + isa = PBXContainerItemProxy; | |
65 | + containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; | |
66 | + proxyType = 2; | |
67 | + remoteGlobalIDString = 58B511DB1A9E6C8500147676; | |
68 | + remoteInfo = RCTNetwork; | |
69 | + }; | |
70 | + 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */ = { | |
71 | + isa = PBXContainerItemProxy; | |
72 | + containerPortal = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; | |
73 | + proxyType = 2; | |
74 | + remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; | |
75 | + remoteInfo = RCTVibration; | |
76 | + }; | |
77 | + 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { | |
78 | + isa = PBXContainerItemProxy; | |
79 | + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; | |
80 | + proxyType = 1; | |
81 | + remoteGlobalIDString = 13B07F861A680F5B00A75B9A; | |
82 | + remoteInfo = demo; | |
83 | + }; | |
84 | + 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = { | |
85 | + isa = PBXContainerItemProxy; | |
86 | + containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; | |
87 | + proxyType = 2; | |
88 | + remoteGlobalIDString = 134814201AA4EA6300B7C361; | |
89 | + remoteInfo = RCTSettings; | |
90 | + }; | |
91 | + 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */ = { | |
92 | + isa = PBXContainerItemProxy; | |
93 | + containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; | |
94 | + proxyType = 2; | |
95 | + remoteGlobalIDString = 3C86DF461ADF2C930047B81A; | |
96 | + remoteInfo = RCTWebSocket; | |
97 | + }; | |
98 | + 146834031AC3E56700842450 /* PBXContainerItemProxy */ = { | |
99 | + isa = PBXContainerItemProxy; | |
100 | + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; | |
101 | + proxyType = 2; | |
102 | + remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; | |
103 | + remoteInfo = React; | |
104 | + }; | |
105 | + 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = { | |
106 | + isa = PBXContainerItemProxy; | |
107 | + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; | |
108 | + proxyType = 1; | |
109 | + remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7; | |
110 | + remoteInfo = "demo-tvOS"; | |
111 | + }; | |
112 | + 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */ = { | |
113 | + isa = PBXContainerItemProxy; | |
114 | + containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; | |
115 | + proxyType = 2; | |
116 | + remoteGlobalIDString = 2D2A283A1D9B042B00D4039D; | |
117 | + remoteInfo = "RCTImage-tvOS"; | |
118 | + }; | |
119 | + 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */ = { | |
120 | + isa = PBXContainerItemProxy; | |
121 | + containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; | |
122 | + proxyType = 2; | |
123 | + remoteGlobalIDString = 2D2A28471D9B043800D4039D; | |
124 | + remoteInfo = "RCTLinking-tvOS"; | |
125 | + }; | |
126 | + 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */ = { | |
127 | + isa = PBXContainerItemProxy; | |
128 | + containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; | |
129 | + proxyType = 2; | |
130 | + remoteGlobalIDString = 2D2A28541D9B044C00D4039D; | |
131 | + remoteInfo = "RCTNetwork-tvOS"; | |
132 | + }; | |
133 | + 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */ = { | |
134 | + isa = PBXContainerItemProxy; | |
135 | + containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; | |
136 | + proxyType = 2; | |
137 | + remoteGlobalIDString = 2D2A28611D9B046600D4039D; | |
138 | + remoteInfo = "RCTSettings-tvOS"; | |
139 | + }; | |
140 | + 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */ = { | |
141 | + isa = PBXContainerItemProxy; | |
142 | + containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; | |
143 | + proxyType = 2; | |
144 | + remoteGlobalIDString = 2D2A287B1D9B048500D4039D; | |
145 | + remoteInfo = "RCTText-tvOS"; | |
146 | + }; | |
147 | + 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */ = { | |
148 | + isa = PBXContainerItemProxy; | |
149 | + containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; | |
150 | + proxyType = 2; | |
151 | + remoteGlobalIDString = 2D2A28881D9B049200D4039D; | |
152 | + remoteInfo = "RCTWebSocket-tvOS"; | |
153 | + }; | |
154 | + 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */ = { | |
155 | + isa = PBXContainerItemProxy; | |
156 | + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; | |
157 | + proxyType = 2; | |
158 | + remoteGlobalIDString = 2D2A28131D9B038B00D4039D; | |
159 | + remoteInfo = "React-tvOS"; | |
160 | + }; | |
161 | + 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */ = { | |
162 | + isa = PBXContainerItemProxy; | |
163 | + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; | |
164 | + proxyType = 2; | |
165 | + remoteGlobalIDString = 3D3C059A1DE3340900C268FA; | |
166 | + remoteInfo = yoga; | |
167 | + }; | |
168 | + 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */ = { | |
169 | + isa = PBXContainerItemProxy; | |
170 | + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; | |
171 | + proxyType = 2; | |
172 | + remoteGlobalIDString = 3D3C06751DE3340C00C268FA; | |
173 | + remoteInfo = "yoga-tvOS"; | |
174 | + }; | |
175 | + 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */ = { | |
176 | + isa = PBXContainerItemProxy; | |
177 | + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; | |
178 | + proxyType = 2; | |
179 | + remoteGlobalIDString = 3D3CD9251DE5FBEC00167DC4; | |
180 | + remoteInfo = cxxreact; | |
181 | + }; | |
182 | + 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */ = { | |
183 | + isa = PBXContainerItemProxy; | |
184 | + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; | |
185 | + proxyType = 2; | |
186 | + remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4; | |
187 | + remoteInfo = "cxxreact-tvOS"; | |
188 | + }; | |
189 | + 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */ = { | |
190 | + isa = PBXContainerItemProxy; | |
191 | + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; | |
192 | + proxyType = 2; | |
193 | + remoteGlobalIDString = 3D3CD90B1DE5FBD600167DC4; | |
194 | + remoteInfo = jschelpers; | |
195 | + }; | |
196 | + 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */ = { | |
197 | + isa = PBXContainerItemProxy; | |
198 | + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; | |
199 | + proxyType = 2; | |
200 | + remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4; | |
201 | + remoteInfo = "jschelpers-tvOS"; | |
202 | + }; | |
203 | + 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { | |
204 | + isa = PBXContainerItemProxy; | |
205 | + containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; | |
206 | + proxyType = 2; | |
207 | + remoteGlobalIDString = 134814201AA4EA6300B7C361; | |
208 | + remoteInfo = RCTAnimation; | |
209 | + }; | |
210 | + 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { | |
211 | + isa = PBXContainerItemProxy; | |
212 | + containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; | |
213 | + proxyType = 2; | |
214 | + remoteGlobalIDString = 2D2A28201D9B03D100D4039D; | |
215 | + remoteInfo = "RCTAnimation-tvOS"; | |
216 | + }; | |
217 | + 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = { | |
218 | + isa = PBXContainerItemProxy; | |
219 | + containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; | |
220 | + proxyType = 2; | |
221 | + remoteGlobalIDString = 134814201AA4EA6300B7C361; | |
222 | + remoteInfo = RCTLinking; | |
223 | + }; | |
224 | + 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */ = { | |
225 | + isa = PBXContainerItemProxy; | |
226 | + containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; | |
227 | + proxyType = 2; | |
228 | + remoteGlobalIDString = 58B5119B1A9E6C1200147676; | |
229 | + remoteInfo = RCTText; | |
230 | + }; | |
231 | +/* End PBXContainerItemProxy section */ | |
232 | + | |
233 | +/* Begin PBXFileReference section */ | |
234 | + 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; }; | |
235 | + 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = "<group>"; }; | |
236 | + 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = "<group>"; }; | |
237 | + 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = "<group>"; }; | |
238 | + 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = "<group>"; }; | |
239 | + 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = "<group>"; }; | |
240 | + 00E356EE1AD99517003FC87E /* demoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = demoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; | |
241 | + 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | |
242 | + 00E356F21AD99517003FC87E /* demoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = demoTests.m; sourceTree = "<group>"; }; | |
243 | + 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = "<group>"; }; | |
244 | + 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = "<group>"; }; | |
245 | + 13B07F961A680F5B00A75B9A /* demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = demo.app; sourceTree = BUILT_PRODUCTS_DIR; }; | |
246 | + 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = demo/AppDelegate.h; sourceTree = "<group>"; }; | |
247 | + 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = demo/AppDelegate.m; sourceTree = "<group>"; }; | |
248 | + 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; }; | |
249 | + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = demo/Images.xcassets; sourceTree = "<group>"; }; | |
250 | + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = demo/Info.plist; sourceTree = "<group>"; }; | |
251 | + 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = demo/main.m; sourceTree = "<group>"; }; | |
252 | + 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; }; | |
253 | + 2D02E47B1E0B4A5D006451C7 /* demo-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "demo-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; | |
254 | + 2D02E4901E0B4A5D006451C7 /* demo-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "demo-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; | |
255 | + 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; }; | |
256 | + 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; }; | |
257 | + 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; }; | |
258 | + 237016A574A543CBBDA1DD52 /* RCTOrientation.xcodeproj */ = {isa = PBXFileReference; name = "RCTOrientation.xcodeproj"; path = "../node_modules/react-native-orientation/iOS/RCTOrientation.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; | |
259 | + 9D769AB453724E60A7E54B05 /* libRCTOrientation.a */ = {isa = PBXFileReference; name = "libRCTOrientation.a"; path = "libRCTOrientation.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; | |
260 | +/* End PBXFileReference section */ | |
261 | + | |
262 | +/* Begin PBXFrameworksBuildPhase section */ | |
263 | + 00E356EB1AD99517003FC87E /* Frameworks */ = { | |
264 | + isa = PBXFrameworksBuildPhase; | |
265 | + buildActionMask = 2147483647; | |
266 | + files = ( | |
267 | + 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */, | |
268 | + ); | |
269 | + runOnlyForDeploymentPostprocessing = 0; | |
270 | + }; | |
271 | + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { | |
272 | + isa = PBXFrameworksBuildPhase; | |
273 | + buildActionMask = 2147483647; | |
274 | + files = ( | |
275 | + 146834051AC3E58100842450 /* libReact.a in Frameworks */, | |
276 | + 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */, | |
277 | + 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */, | |
278 | + 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */, | |
279 | + 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */, | |
280 | + 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */, | |
281 | + 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */, | |
282 | + 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */, | |
283 | + 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, | |
284 | + 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, | |
285 | + 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, | |
286 | + 90244AD94B6B401C8131CF46 /* libRCTOrientation.a in Frameworks */, | |
287 | + ); | |
288 | + runOnlyForDeploymentPostprocessing = 0; | |
289 | + }; | |
290 | + 2D02E4781E0B4A5D006451C7 /* Frameworks */ = { | |
291 | + isa = PBXFrameworksBuildPhase; | |
292 | + buildActionMask = 2147483647; | |
293 | + files = ( | |
294 | + 2D02E4C91E0B4AEC006451C7 /* libReact.a in Frameworks */, | |
295 | + 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation-tvOS.a in Frameworks */, | |
296 | + 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */, | |
297 | + 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */, | |
298 | + 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */, | |
299 | + 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */, | |
300 | + 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */, | |
301 | + 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */, | |
302 | + ); | |
303 | + runOnlyForDeploymentPostprocessing = 0; | |
304 | + }; | |
305 | + 2D02E48D1E0B4A5D006451C7 /* Frameworks */ = { | |
306 | + isa = PBXFrameworksBuildPhase; | |
307 | + buildActionMask = 2147483647; | |
308 | + files = ( | |
309 | + ); | |
310 | + runOnlyForDeploymentPostprocessing = 0; | |
311 | + }; | |
312 | +/* End PBXFrameworksBuildPhase section */ | |
313 | + | |
314 | +/* Begin PBXGroup section */ | |
315 | + 00C302A81ABCB8CE00DB3ED1 /* Products */ = { | |
316 | + isa = PBXGroup; | |
317 | + children = ( | |
318 | + 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */, | |
319 | + ); | |
320 | + name = Products; | |
321 | + sourceTree = "<group>"; | |
322 | + }; | |
323 | + 00C302B61ABCB90400DB3ED1 /* Products */ = { | |
324 | + isa = PBXGroup; | |
325 | + children = ( | |
326 | + 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */, | |
327 | + ); | |
328 | + name = Products; | |
329 | + sourceTree = "<group>"; | |
330 | + }; | |
331 | + 00C302BC1ABCB91800DB3ED1 /* Products */ = { | |
332 | + isa = PBXGroup; | |
333 | + children = ( | |
334 | + 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */, | |
335 | + 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */, | |
336 | + ); | |
337 | + name = Products; | |
338 | + sourceTree = "<group>"; | |
339 | + }; | |
340 | + 00C302D41ABCB9D200DB3ED1 /* Products */ = { | |
341 | + isa = PBXGroup; | |
342 | + children = ( | |
343 | + 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */, | |
344 | + 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */, | |
345 | + ); | |
346 | + name = Products; | |
347 | + sourceTree = "<group>"; | |
348 | + }; | |
349 | + 00C302E01ABCB9EE00DB3ED1 /* Products */ = { | |
350 | + isa = PBXGroup; | |
351 | + children = ( | |
352 | + 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */, | |
353 | + ); | |
354 | + name = Products; | |
355 | + sourceTree = "<group>"; | |
356 | + }; | |
357 | + 00E356EF1AD99517003FC87E /* demoTests */ = { | |
358 | + isa = PBXGroup; | |
359 | + children = ( | |
360 | + 00E356F21AD99517003FC87E /* demoTests.m */, | |
361 | + 00E356F01AD99517003FC87E /* Supporting Files */, | |
362 | + ); | |
363 | + path = demoTests; | |
364 | + sourceTree = "<group>"; | |
365 | + }; | |
366 | + 00E356F01AD99517003FC87E /* Supporting Files */ = { | |
367 | + isa = PBXGroup; | |
368 | + children = ( | |
369 | + 00E356F11AD99517003FC87E /* Info.plist */, | |
370 | + ); | |
371 | + name = "Supporting Files"; | |
372 | + sourceTree = "<group>"; | |
373 | + }; | |
374 | + 139105B71AF99BAD00B5F7CC /* Products */ = { | |
375 | + isa = PBXGroup; | |
376 | + children = ( | |
377 | + 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */, | |
378 | + 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */, | |
379 | + ); | |
380 | + name = Products; | |
381 | + sourceTree = "<group>"; | |
382 | + }; | |
383 | + 139FDEE71B06529A00C62182 /* Products */ = { | |
384 | + isa = PBXGroup; | |
385 | + children = ( | |
386 | + 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */, | |
387 | + 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */, | |
388 | + ); | |
389 | + name = Products; | |
390 | + sourceTree = "<group>"; | |
391 | + }; | |
392 | + 13B07FAE1A68108700A75B9A /* demo */ = { | |
393 | + isa = PBXGroup; | |
394 | + children = ( | |
395 | + 008F07F21AC5B25A0029DE68 /* main.jsbundle */, | |
396 | + 13B07FAF1A68108700A75B9A /* AppDelegate.h */, | |
397 | + 13B07FB01A68108700A75B9A /* AppDelegate.m */, | |
398 | + 13B07FB51A68108700A75B9A /* Images.xcassets */, | |
399 | + 13B07FB61A68108700A75B9A /* Info.plist */, | |
400 | + 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, | |
401 | + 13B07FB71A68108700A75B9A /* main.m */, | |
402 | + ); | |
403 | + name = demo; | |
404 | + sourceTree = "<group>"; | |
405 | + }; | |
406 | + 146834001AC3E56700842450 /* Products */ = { | |
407 | + isa = PBXGroup; | |
408 | + children = ( | |
409 | + 146834041AC3E56700842450 /* libReact.a */, | |
410 | + 3DAD3EA31DF850E9000B6D8A /* libReact.a */, | |
411 | + 3DAD3EA51DF850E9000B6D8A /* libyoga.a */, | |
412 | + 3DAD3EA71DF850E9000B6D8A /* libyoga.a */, | |
413 | + 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */, | |
414 | + 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */, | |
415 | + 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */, | |
416 | + 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */, | |
417 | + ); | |
418 | + name = Products; | |
419 | + sourceTree = "<group>"; | |
420 | + }; | |
421 | + 5E91572E1DD0AC6500FF2AA8 /* Products */ = { | |
422 | + isa = PBXGroup; | |
423 | + children = ( | |
424 | + 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */, | |
425 | + 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */, | |
426 | + ); | |
427 | + name = Products; | |
428 | + sourceTree = "<group>"; | |
429 | + }; | |
430 | + 78C398B11ACF4ADC00677621 /* Products */ = { | |
431 | + isa = PBXGroup; | |
432 | + children = ( | |
433 | + 78C398B91ACF4ADC00677621 /* libRCTLinking.a */, | |
434 | + 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */, | |
435 | + ); | |
436 | + name = Products; | |
437 | + sourceTree = "<group>"; | |
438 | + }; | |
439 | + 832341AE1AAA6A7D00B99B32 /* Libraries */ = { | |
440 | + isa = PBXGroup; | |
441 | + children = ( | |
442 | + 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */, | |
443 | + 146833FF1AC3E56700842450 /* React.xcodeproj */, | |
444 | + 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */, | |
445 | + 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */, | |
446 | + 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */, | |
447 | + 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */, | |
448 | + 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */, | |
449 | + 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */, | |
450 | + 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */, | |
451 | + 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */, | |
452 | + 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */, | |
453 | + 237016A574A543CBBDA1DD52 /* RCTOrientation.xcodeproj */, | |
454 | + ); | |
455 | + name = Libraries; | |
456 | + sourceTree = "<group>"; | |
457 | + }; | |
458 | + 832341B11AAA6A8300B99B32 /* Products */ = { | |
459 | + isa = PBXGroup; | |
460 | + children = ( | |
461 | + 832341B51AAA6A8300B99B32 /* libRCTText.a */, | |
462 | + 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */, | |
463 | + ); | |
464 | + name = Products; | |
465 | + sourceTree = "<group>"; | |
466 | + }; | |
467 | + 83CBB9F61A601CBA00E9B192 = { | |
468 | + isa = PBXGroup; | |
469 | + children = ( | |
470 | + 13B07FAE1A68108700A75B9A /* demo */, | |
471 | + 832341AE1AAA6A7D00B99B32 /* Libraries */, | |
472 | + 00E356EF1AD99517003FC87E /* demoTests */, | |
473 | + 83CBBA001A601CBA00E9B192 /* Products */, | |
474 | + ); | |
475 | + indentWidth = 2; | |
476 | + sourceTree = "<group>"; | |
477 | + tabWidth = 2; | |
478 | + }; | |
479 | + 83CBBA001A601CBA00E9B192 /* Products */ = { | |
480 | + isa = PBXGroup; | |
481 | + children = ( | |
482 | + 13B07F961A680F5B00A75B9A /* demo.app */, | |
483 | + 00E356EE1AD99517003FC87E /* demoTests.xctest */, | |
484 | + 2D02E47B1E0B4A5D006451C7 /* demo-tvOS.app */, | |
485 | + 2D02E4901E0B4A5D006451C7 /* demo-tvOSTests.xctest */, | |
486 | + ); | |
487 | + name = Products; | |
488 | + sourceTree = "<group>"; | |
489 | + }; | |
490 | +/* End PBXGroup section */ | |
491 | + | |
492 | +/* Begin PBXNativeTarget section */ | |
493 | + 00E356ED1AD99517003FC87E /* demoTests */ = { | |
494 | + isa = PBXNativeTarget; | |
495 | + buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "demoTests" */; | |
496 | + buildPhases = ( | |
497 | + 00E356EA1AD99517003FC87E /* Sources */, | |
498 | + 00E356EB1AD99517003FC87E /* Frameworks */, | |
499 | + 00E356EC1AD99517003FC87E /* Resources */, | |
500 | + ); | |
501 | + buildRules = ( | |
502 | + ); | |
503 | + dependencies = ( | |
504 | + 00E356F51AD99517003FC87E /* PBXTargetDependency */, | |
505 | + ); | |
506 | + name = demoTests; | |
507 | + productName = demoTests; | |
508 | + productReference = 00E356EE1AD99517003FC87E /* demoTests.xctest */; | |
509 | + productType = "com.apple.product-type.bundle.unit-test"; | |
510 | + }; | |
511 | + 13B07F861A680F5B00A75B9A /* demo */ = { | |
512 | + isa = PBXNativeTarget; | |
513 | + buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "demo" */; | |
514 | + buildPhases = ( | |
515 | + 13B07F871A680F5B00A75B9A /* Sources */, | |
516 | + 13B07F8C1A680F5B00A75B9A /* Frameworks */, | |
517 | + 13B07F8E1A680F5B00A75B9A /* Resources */, | |
518 | + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, | |
519 | + ); | |
520 | + buildRules = ( | |
521 | + ); | |
522 | + dependencies = ( | |
523 | + ); | |
524 | + name = demo; | |
525 | + productName = "Hello World"; | |
526 | + productReference = 13B07F961A680F5B00A75B9A /* demo.app */; | |
527 | + productType = "com.apple.product-type.application"; | |
528 | + }; | |
529 | + 2D02E47A1E0B4A5D006451C7 /* demo-tvOS */ = { | |
530 | + isa = PBXNativeTarget; | |
531 | + buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "demo-tvOS" */; | |
532 | + buildPhases = ( | |
533 | + 2D02E4771E0B4A5D006451C7 /* Sources */, | |
534 | + 2D02E4781E0B4A5D006451C7 /* Frameworks */, | |
535 | + 2D02E4791E0B4A5D006451C7 /* Resources */, | |
536 | + 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */, | |
537 | + ); | |
538 | + buildRules = ( | |
539 | + ); | |
540 | + dependencies = ( | |
541 | + ); | |
542 | + name = "demo-tvOS"; | |
543 | + productName = "demo-tvOS"; | |
544 | + productReference = 2D02E47B1E0B4A5D006451C7 /* demo-tvOS.app */; | |
545 | + productType = "com.apple.product-type.application"; | |
546 | + }; | |
547 | + 2D02E48F1E0B4A5D006451C7 /* demo-tvOSTests */ = { | |
548 | + isa = PBXNativeTarget; | |
549 | + buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "demo-tvOSTests" */; | |
550 | + buildPhases = ( | |
551 | + 2D02E48C1E0B4A5D006451C7 /* Sources */, | |
552 | + 2D02E48D1E0B4A5D006451C7 /* Frameworks */, | |
553 | + 2D02E48E1E0B4A5D006451C7 /* Resources */, | |
554 | + ); | |
555 | + buildRules = ( | |
556 | + ); | |
557 | + dependencies = ( | |
558 | + 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */, | |
559 | + ); | |
560 | + name = "demo-tvOSTests"; | |
561 | + productName = "demo-tvOSTests"; | |
562 | + productReference = 2D02E4901E0B4A5D006451C7 /* demo-tvOSTests.xctest */; | |
563 | + productType = "com.apple.product-type.bundle.unit-test"; | |
564 | + }; | |
565 | +/* End PBXNativeTarget section */ | |
566 | + | |
567 | +/* Begin PBXProject section */ | |
568 | + 83CBB9F71A601CBA00E9B192 /* Project object */ = { | |
569 | + isa = PBXProject; | |
570 | + attributes = { | |
571 | + LastUpgradeCheck = 610; | |
572 | + ORGANIZATIONNAME = Facebook; | |
573 | + TargetAttributes = { | |
574 | + 00E356ED1AD99517003FC87E = { | |
575 | + CreatedOnToolsVersion = 6.2; | |
576 | + TestTargetID = 13B07F861A680F5B00A75B9A; | |
577 | + }; | |
578 | + 2D02E47A1E0B4A5D006451C7 = { | |
579 | + CreatedOnToolsVersion = 8.2.1; | |
580 | + ProvisioningStyle = Automatic; | |
581 | + }; | |
582 | + 2D02E48F1E0B4A5D006451C7 = { | |
583 | + CreatedOnToolsVersion = 8.2.1; | |
584 | + ProvisioningStyle = Automatic; | |
585 | + TestTargetID = 2D02E47A1E0B4A5D006451C7; | |
586 | + }; | |
587 | + }; | |
588 | + }; | |
589 | + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "demo" */; | |
590 | + compatibilityVersion = "Xcode 3.2"; | |
591 | + developmentRegion = English; | |
592 | + hasScannedForEncodings = 0; | |
593 | + knownRegions = ( | |
594 | + en, | |
595 | + Base, | |
596 | + ); | |
597 | + mainGroup = 83CBB9F61A601CBA00E9B192; | |
598 | + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; | |
599 | + projectDirPath = ""; | |
600 | + projectReferences = ( | |
601 | + { | |
602 | + ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */; | |
603 | + ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; | |
604 | + }, | |
605 | + { | |
606 | + ProductGroup = 5E91572E1DD0AC6500FF2AA8 /* Products */; | |
607 | + ProjectRef = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; | |
608 | + }, | |
609 | + { | |
610 | + ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */; | |
611 | + ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; | |
612 | + }, | |
613 | + { | |
614 | + ProductGroup = 00C302BC1ABCB91800DB3ED1 /* Products */; | |
615 | + ProjectRef = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; | |
616 | + }, | |
617 | + { | |
618 | + ProductGroup = 78C398B11ACF4ADC00677621 /* Products */; | |
619 | + ProjectRef = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; | |
620 | + }, | |
621 | + { | |
622 | + ProductGroup = 00C302D41ABCB9D200DB3ED1 /* Products */; | |
623 | + ProjectRef = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; | |
624 | + }, | |
625 | + { | |
626 | + ProductGroup = 139105B71AF99BAD00B5F7CC /* Products */; | |
627 | + ProjectRef = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; | |
628 | + }, | |
629 | + { | |
630 | + ProductGroup = 832341B11AAA6A8300B99B32 /* Products */; | |
631 | + ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; | |
632 | + }, | |
633 | + { | |
634 | + ProductGroup = 00C302E01ABCB9EE00DB3ED1 /* Products */; | |
635 | + ProjectRef = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; | |
636 | + }, | |
637 | + { | |
638 | + ProductGroup = 139FDEE71B06529A00C62182 /* Products */; | |
639 | + ProjectRef = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; | |
640 | + }, | |
641 | + { | |
642 | + ProductGroup = 146834001AC3E56700842450 /* Products */; | |
643 | + ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; | |
644 | + }, | |
645 | + ); | |
646 | + projectRoot = ""; | |
647 | + targets = ( | |
648 | + 13B07F861A680F5B00A75B9A /* demo */, | |
649 | + 00E356ED1AD99517003FC87E /* demoTests */, | |
650 | + 2D02E47A1E0B4A5D006451C7 /* demo-tvOS */, | |
651 | + 2D02E48F1E0B4A5D006451C7 /* demo-tvOSTests */, | |
652 | + ); | |
653 | + }; | |
654 | +/* End PBXProject section */ | |
655 | + | |
656 | +/* Begin PBXReferenceProxy section */ | |
657 | + 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */ = { | |
658 | + isa = PBXReferenceProxy; | |
659 | + fileType = archive.ar; | |
660 | + path = libRCTActionSheet.a; | |
661 | + remoteRef = 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */; | |
662 | + sourceTree = BUILT_PRODUCTS_DIR; | |
663 | + }; | |
664 | + 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */ = { | |
665 | + isa = PBXReferenceProxy; | |
666 | + fileType = archive.ar; | |
667 | + path = libRCTGeolocation.a; | |
668 | + remoteRef = 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */; | |
669 | + sourceTree = BUILT_PRODUCTS_DIR; | |
670 | + }; | |
671 | + 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */ = { | |
672 | + isa = PBXReferenceProxy; | |
673 | + fileType = archive.ar; | |
674 | + path = libRCTImage.a; | |
675 | + remoteRef = 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */; | |
676 | + sourceTree = BUILT_PRODUCTS_DIR; | |
677 | + }; | |
678 | + 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */ = { | |
679 | + isa = PBXReferenceProxy; | |
680 | + fileType = archive.ar; | |
681 | + path = libRCTNetwork.a; | |
682 | + remoteRef = 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */; | |
683 | + sourceTree = BUILT_PRODUCTS_DIR; | |
684 | + }; | |
685 | + 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */ = { | |
686 | + isa = PBXReferenceProxy; | |
687 | + fileType = archive.ar; | |
688 | + path = libRCTVibration.a; | |
689 | + remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */; | |
690 | + sourceTree = BUILT_PRODUCTS_DIR; | |
691 | + }; | |
692 | + 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = { | |
693 | + isa = PBXReferenceProxy; | |
694 | + fileType = archive.ar; | |
695 | + path = libRCTSettings.a; | |
696 | + remoteRef = 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */; | |
697 | + sourceTree = BUILT_PRODUCTS_DIR; | |
698 | + }; | |
699 | + 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */ = { | |
700 | + isa = PBXReferenceProxy; | |
701 | + fileType = archive.ar; | |
702 | + path = libRCTWebSocket.a; | |
703 | + remoteRef = 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */; | |
704 | + sourceTree = BUILT_PRODUCTS_DIR; | |
705 | + }; | |
706 | + 146834041AC3E56700842450 /* libReact.a */ = { | |
707 | + isa = PBXReferenceProxy; | |
708 | + fileType = archive.ar; | |
709 | + path = libReact.a; | |
710 | + remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */; | |
711 | + sourceTree = BUILT_PRODUCTS_DIR; | |
712 | + }; | |
713 | + 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */ = { | |
714 | + isa = PBXReferenceProxy; | |
715 | + fileType = archive.ar; | |
716 | + path = "libRCTImage-tvOS.a"; | |
717 | + remoteRef = 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */; | |
718 | + sourceTree = BUILT_PRODUCTS_DIR; | |
719 | + }; | |
720 | + 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */ = { | |
721 | + isa = PBXReferenceProxy; | |
722 | + fileType = archive.ar; | |
723 | + path = "libRCTLinking-tvOS.a"; | |
724 | + remoteRef = 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */; | |
725 | + sourceTree = BUILT_PRODUCTS_DIR; | |
726 | + }; | |
727 | + 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */ = { | |
728 | + isa = PBXReferenceProxy; | |
729 | + fileType = archive.ar; | |
730 | + path = "libRCTNetwork-tvOS.a"; | |
731 | + remoteRef = 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */; | |
732 | + sourceTree = BUILT_PRODUCTS_DIR; | |
733 | + }; | |
734 | + 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */ = { | |
735 | + isa = PBXReferenceProxy; | |
736 | + fileType = archive.ar; | |
737 | + path = "libRCTSettings-tvOS.a"; | |
738 | + remoteRef = 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */; | |
739 | + sourceTree = BUILT_PRODUCTS_DIR; | |
740 | + }; | |
741 | + 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */ = { | |
742 | + isa = PBXReferenceProxy; | |
743 | + fileType = archive.ar; | |
744 | + path = "libRCTText-tvOS.a"; | |
745 | + remoteRef = 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */; | |
746 | + sourceTree = BUILT_PRODUCTS_DIR; | |
747 | + }; | |
748 | + 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */ = { | |
749 | + isa = PBXReferenceProxy; | |
750 | + fileType = archive.ar; | |
751 | + path = "libRCTWebSocket-tvOS.a"; | |
752 | + remoteRef = 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */; | |
753 | + sourceTree = BUILT_PRODUCTS_DIR; | |
754 | + }; | |
755 | + 3DAD3EA31DF850E9000B6D8A /* libReact.a */ = { | |
756 | + isa = PBXReferenceProxy; | |
757 | + fileType = archive.ar; | |
758 | + path = libReact.a; | |
759 | + remoteRef = 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */; | |
760 | + sourceTree = BUILT_PRODUCTS_DIR; | |
761 | + }; | |
762 | + 3DAD3EA51DF850E9000B6D8A /* libyoga.a */ = { | |
763 | + isa = PBXReferenceProxy; | |
764 | + fileType = archive.ar; | |
765 | + path = libyoga.a; | |
766 | + remoteRef = 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */; | |
767 | + sourceTree = BUILT_PRODUCTS_DIR; | |
768 | + }; | |
769 | + 3DAD3EA71DF850E9000B6D8A /* libyoga.a */ = { | |
770 | + isa = PBXReferenceProxy; | |
771 | + fileType = archive.ar; | |
772 | + path = libyoga.a; | |
773 | + remoteRef = 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */; | |
774 | + sourceTree = BUILT_PRODUCTS_DIR; | |
775 | + }; | |
776 | + 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */ = { | |
777 | + isa = PBXReferenceProxy; | |
778 | + fileType = archive.ar; | |
779 | + path = libcxxreact.a; | |
780 | + remoteRef = 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */; | |
781 | + sourceTree = BUILT_PRODUCTS_DIR; | |
782 | + }; | |
783 | + 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */ = { | |
784 | + isa = PBXReferenceProxy; | |
785 | + fileType = archive.ar; | |
786 | + path = libcxxreact.a; | |
787 | + remoteRef = 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */; | |
788 | + sourceTree = BUILT_PRODUCTS_DIR; | |
789 | + }; | |
790 | + 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */ = { | |
791 | + isa = PBXReferenceProxy; | |
792 | + fileType = archive.ar; | |
793 | + path = libjschelpers.a; | |
794 | + remoteRef = 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */; | |
795 | + sourceTree = BUILT_PRODUCTS_DIR; | |
796 | + }; | |
797 | + 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */ = { | |
798 | + isa = PBXReferenceProxy; | |
799 | + fileType = archive.ar; | |
800 | + path = libjschelpers.a; | |
801 | + remoteRef = 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */; | |
802 | + sourceTree = BUILT_PRODUCTS_DIR; | |
803 | + }; | |
804 | + 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = { | |
805 | + isa = PBXReferenceProxy; | |
806 | + fileType = archive.ar; | |
807 | + path = libRCTAnimation.a; | |
808 | + remoteRef = 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */; | |
809 | + sourceTree = BUILT_PRODUCTS_DIR; | |
810 | + }; | |
811 | + 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */ = { | |
812 | + isa = PBXReferenceProxy; | |
813 | + fileType = archive.ar; | |
814 | + path = "libRCTAnimation-tvOS.a"; | |
815 | + remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */; | |
816 | + sourceTree = BUILT_PRODUCTS_DIR; | |
817 | + }; | |
818 | + 78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = { | |
819 | + isa = PBXReferenceProxy; | |
820 | + fileType = archive.ar; | |
821 | + path = libRCTLinking.a; | |
822 | + remoteRef = 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */; | |
823 | + sourceTree = BUILT_PRODUCTS_DIR; | |
824 | + }; | |
825 | + 832341B51AAA6A8300B99B32 /* libRCTText.a */ = { | |
826 | + isa = PBXReferenceProxy; | |
827 | + fileType = archive.ar; | |
828 | + path = libRCTText.a; | |
829 | + remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */; | |
830 | + sourceTree = BUILT_PRODUCTS_DIR; | |
831 | + }; | |
832 | +/* End PBXReferenceProxy section */ | |
833 | + | |
834 | +/* Begin PBXResourcesBuildPhase section */ | |
835 | + 00E356EC1AD99517003FC87E /* Resources */ = { | |
836 | + isa = PBXResourcesBuildPhase; | |
837 | + buildActionMask = 2147483647; | |
838 | + files = ( | |
839 | + ); | |
840 | + runOnlyForDeploymentPostprocessing = 0; | |
841 | + }; | |
842 | + 13B07F8E1A680F5B00A75B9A /* Resources */ = { | |
843 | + isa = PBXResourcesBuildPhase; | |
844 | + buildActionMask = 2147483647; | |
845 | + files = ( | |
846 | + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, | |
847 | + 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, | |
848 | + ); | |
849 | + runOnlyForDeploymentPostprocessing = 0; | |
850 | + }; | |
851 | + 2D02E4791E0B4A5D006451C7 /* Resources */ = { | |
852 | + isa = PBXResourcesBuildPhase; | |
853 | + buildActionMask = 2147483647; | |
854 | + files = ( | |
855 | + 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */, | |
856 | + ); | |
857 | + runOnlyForDeploymentPostprocessing = 0; | |
858 | + }; | |
859 | + 2D02E48E1E0B4A5D006451C7 /* Resources */ = { | |
860 | + isa = PBXResourcesBuildPhase; | |
861 | + buildActionMask = 2147483647; | |
862 | + files = ( | |
863 | + ); | |
864 | + runOnlyForDeploymentPostprocessing = 0; | |
865 | + }; | |
866 | +/* End PBXResourcesBuildPhase section */ | |
867 | + | |
868 | +/* Begin PBXShellScriptBuildPhase section */ | |
869 | + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { | |
870 | + isa = PBXShellScriptBuildPhase; | |
871 | + buildActionMask = 2147483647; | |
872 | + files = ( | |
873 | + ); | |
874 | + inputPaths = ( | |
875 | + ); | |
876 | + name = "Bundle React Native code and images"; | |
877 | + outputPaths = ( | |
878 | + ); | |
879 | + runOnlyForDeploymentPostprocessing = 0; | |
880 | + shellPath = /bin/sh; | |
881 | + shellScript = "export NODE_BINARY=node\n../node_modules/react-native/packager/react-native-xcode.sh"; | |
882 | + }; | |
883 | + 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { | |
884 | + isa = PBXShellScriptBuildPhase; | |
885 | + buildActionMask = 2147483647; | |
886 | + files = ( | |
887 | + ); | |
888 | + inputPaths = ( | |
889 | + ); | |
890 | + name = "Bundle React Native Code And Images"; | |
891 | + outputPaths = ( | |
892 | + ); | |
893 | + runOnlyForDeploymentPostprocessing = 0; | |
894 | + shellPath = /bin/sh; | |
895 | + shellScript = "export NODE_BINARY=node\n../node_modules/react-native/packager/react-native-xcode.sh"; | |
896 | + }; | |
897 | +/* End PBXShellScriptBuildPhase section */ | |
898 | + | |
899 | +/* Begin PBXSourcesBuildPhase section */ | |
900 | + 00E356EA1AD99517003FC87E /* Sources */ = { | |
901 | + isa = PBXSourcesBuildPhase; | |
902 | + buildActionMask = 2147483647; | |
903 | + files = ( | |
904 | + 00E356F31AD99517003FC87E /* demoTests.m in Sources */, | |
905 | + ); | |
906 | + runOnlyForDeploymentPostprocessing = 0; | |
907 | + }; | |
908 | + 13B07F871A680F5B00A75B9A /* Sources */ = { | |
909 | + isa = PBXSourcesBuildPhase; | |
910 | + buildActionMask = 2147483647; | |
911 | + files = ( | |
912 | + 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, | |
913 | + 13B07FC11A68108700A75B9A /* main.m in Sources */, | |
914 | + ); | |
915 | + runOnlyForDeploymentPostprocessing = 0; | |
916 | + }; | |
917 | + 2D02E4771E0B4A5D006451C7 /* Sources */ = { | |
918 | + isa = PBXSourcesBuildPhase; | |
919 | + buildActionMask = 2147483647; | |
920 | + files = ( | |
921 | + 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */, | |
922 | + 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */, | |
923 | + ); | |
924 | + runOnlyForDeploymentPostprocessing = 0; | |
925 | + }; | |
926 | + 2D02E48C1E0B4A5D006451C7 /* Sources */ = { | |
927 | + isa = PBXSourcesBuildPhase; | |
928 | + buildActionMask = 2147483647; | |
929 | + files = ( | |
930 | + 2DCD954D1E0B4F2C00145EB5 /* demoTests.m in Sources */, | |
931 | + ); | |
932 | + runOnlyForDeploymentPostprocessing = 0; | |
933 | + }; | |
934 | +/* End PBXSourcesBuildPhase section */ | |
935 | + | |
936 | +/* Begin PBXTargetDependency section */ | |
937 | + 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { | |
938 | + isa = PBXTargetDependency; | |
939 | + target = 13B07F861A680F5B00A75B9A /* demo */; | |
940 | + targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; | |
941 | + }; | |
942 | + 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */ = { | |
943 | + isa = PBXTargetDependency; | |
944 | + target = 2D02E47A1E0B4A5D006451C7 /* demo-tvOS */; | |
945 | + targetProxy = 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */; | |
946 | + }; | |
947 | +/* End PBXTargetDependency section */ | |
948 | + | |
949 | +/* Begin PBXVariantGroup section */ | |
950 | + 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { | |
951 | + isa = PBXVariantGroup; | |
952 | + children = ( | |
953 | + 13B07FB21A68108700A75B9A /* Base */, | |
954 | + ); | |
955 | + name = LaunchScreen.xib; | |
956 | + path = demo; | |
957 | + sourceTree = "<group>"; | |
958 | + }; | |
959 | +/* End PBXVariantGroup section */ | |
960 | + | |
961 | +/* Begin XCBuildConfiguration section */ | |
962 | + 00E356F61AD99517003FC87E /* Debug */ = { | |
963 | + isa = XCBuildConfiguration; | |
964 | + buildSettings = { | |
965 | + BUNDLE_LOADER = "$(TEST_HOST)"; | |
966 | + GCC_PREPROCESSOR_DEFINITIONS = ( | |
967 | + "DEBUG=1", | |
968 | + "$(inherited)", | |
969 | + ); | |
970 | + INFOPLIST_FILE = demoTests/Info.plist; | |
971 | + IPHONEOS_DEPLOYMENT_TARGET = 8.0; | |
972 | + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; | |
973 | + OTHER_LDFLAGS = ( | |
974 | + "-ObjC", | |
975 | + "-lc++", | |
976 | + ); | |
977 | + PRODUCT_NAME = "$(TARGET_NAME)"; | |
978 | + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/demo.app/demo"; | |
979 | + LIBRARY_SEARCH_PATHS = ( | |
980 | + "$(inherited)", | |
981 | + "\"$(SRCROOT)/$(TARGET_NAME)\"", | |
982 | + ); | |
983 | + HEADER_SEARCH_PATHS = ( | |
984 | + "$(inherited)", | |
985 | + "$(SRCROOT)/../node_modules/react-native-orientation/iOS/RCTOrientation/**", | |
986 | + ); | |
987 | + }; | |
988 | + name = Debug; | |
989 | + }; | |
990 | + 00E356F71AD99517003FC87E /* Release */ = { | |
991 | + isa = XCBuildConfiguration; | |
992 | + buildSettings = { | |
993 | + BUNDLE_LOADER = "$(TEST_HOST)"; | |
994 | + COPY_PHASE_STRIP = NO; | |
995 | + INFOPLIST_FILE = demoTests/Info.plist; | |
996 | + IPHONEOS_DEPLOYMENT_TARGET = 8.0; | |
997 | + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; | |
998 | + OTHER_LDFLAGS = ( | |
999 | + "-ObjC", | |
1000 | + "-lc++", | |
1001 | + ); | |
1002 | + PRODUCT_NAME = "$(TARGET_NAME)"; | |
1003 | + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/demo.app/demo"; | |
1004 | + LIBRARY_SEARCH_PATHS = ( | |
1005 | + "$(inherited)", | |
1006 | + "\"$(SRCROOT)/$(TARGET_NAME)\"", | |
1007 | + ); | |
1008 | + HEADER_SEARCH_PATHS = ( | |
1009 | + "$(inherited)", | |
1010 | + "$(SRCROOT)/../node_modules/react-native-orientation/iOS/RCTOrientation/**", | |
1011 | + ); | |
1012 | + }; | |
1013 | + name = Release; | |
1014 | + }; | |
1015 | + 13B07F941A680F5B00A75B9A /* Debug */ = { | |
1016 | + isa = XCBuildConfiguration; | |
1017 | + buildSettings = { | |
1018 | + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | |
1019 | + CURRENT_PROJECT_VERSION = 1; | |
1020 | + DEAD_CODE_STRIPPING = NO; | |
1021 | + INFOPLIST_FILE = demo/Info.plist; | |
1022 | + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; | |
1023 | + OTHER_LDFLAGS = ( | |
1024 | + "$(inherited)", | |
1025 | + "-ObjC", | |
1026 | + "-lc++", | |
1027 | + ); | |
1028 | + PRODUCT_NAME = demo; | |
1029 | + VERSIONING_SYSTEM = "apple-generic"; | |
1030 | + HEADER_SEARCH_PATHS = ( | |
1031 | + "$(inherited)", | |
1032 | + "$(SRCROOT)/../node_modules/react-native-orientation/iOS/RCTOrientation/**", | |
1033 | + ); | |
1034 | + }; | |
1035 | + name = Debug; | |
1036 | + }; | |
1037 | + 13B07F951A680F5B00A75B9A /* Release */ = { | |
1038 | + isa = XCBuildConfiguration; | |
1039 | + buildSettings = { | |
1040 | + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | |
1041 | + CURRENT_PROJECT_VERSION = 1; | |
1042 | + INFOPLIST_FILE = demo/Info.plist; | |
1043 | + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; | |
1044 | + OTHER_LDFLAGS = ( | |
1045 | + "$(inherited)", | |
1046 | + "-ObjC", | |
1047 | + "-lc++", | |
1048 | + ); | |
1049 | + PRODUCT_NAME = demo; | |
1050 | + VERSIONING_SYSTEM = "apple-generic"; | |
1051 | + HEADER_SEARCH_PATHS = ( | |
1052 | + "$(inherited)", | |
1053 | + "$(SRCROOT)/../node_modules/react-native-orientation/iOS/RCTOrientation/**", | |
1054 | + ); | |
1055 | + }; | |
1056 | + name = Release; | |
1057 | + }; | |
1058 | + 2D02E4971E0B4A5E006451C7 /* Debug */ = { | |
1059 | + isa = XCBuildConfiguration; | |
1060 | + buildSettings = { | |
1061 | + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; | |
1062 | + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; | |
1063 | + CLANG_ANALYZER_NONNULL = YES; | |
1064 | + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; | |
1065 | + CLANG_WARN_INFINITE_RECURSION = YES; | |
1066 | + CLANG_WARN_SUSPICIOUS_MOVE = YES; | |
1067 | + DEBUG_INFORMATION_FORMAT = dwarf; | |
1068 | + ENABLE_TESTABILITY = YES; | |
1069 | + GCC_NO_COMMON_BLOCKS = YES; | |
1070 | + INFOPLIST_FILE = "demo-tvOS/Info.plist"; | |
1071 | + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; | |
1072 | + OTHER_LDFLAGS = ( | |
1073 | + "-ObjC", | |
1074 | + "-lc++", | |
1075 | + ); | |
1076 | + PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.demo-tvOS"; | |
1077 | + PRODUCT_NAME = "$(TARGET_NAME)"; | |
1078 | + SDKROOT = appletvos; | |
1079 | + TARGETED_DEVICE_FAMILY = 3; | |
1080 | + TVOS_DEPLOYMENT_TARGET = 9.2; | |
1081 | + LIBRARY_SEARCH_PATHS = ( | |
1082 | + "$(inherited)", | |
1083 | + "\"$(SRCROOT)/$(TARGET_NAME)\"", | |
1084 | + ); | |
1085 | + HEADER_SEARCH_PATHS = ( | |
1086 | + "$(inherited)", | |
1087 | + "$(SRCROOT)/../node_modules/react-native-orientation/iOS/RCTOrientation/**", | |
1088 | + ); | |
1089 | + }; | |
1090 | + name = Debug; | |
1091 | + }; | |
1092 | + 2D02E4981E0B4A5E006451C7 /* Release */ = { | |
1093 | + isa = XCBuildConfiguration; | |
1094 | + buildSettings = { | |
1095 | + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; | |
1096 | + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; | |
1097 | + CLANG_ANALYZER_NONNULL = YES; | |
1098 | + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; | |
1099 | + CLANG_WARN_INFINITE_RECURSION = YES; | |
1100 | + CLANG_WARN_SUSPICIOUS_MOVE = YES; | |
1101 | + COPY_PHASE_STRIP = NO; | |
1102 | + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; | |
1103 | + GCC_NO_COMMON_BLOCKS = YES; | |
1104 | + INFOPLIST_FILE = "demo-tvOS/Info.plist"; | |
1105 | + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; | |
1106 | + OTHER_LDFLAGS = ( | |
1107 | + "-ObjC", | |
1108 | + "-lc++", | |
1109 | + ); | |
1110 | + PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.demo-tvOS"; | |
1111 | + PRODUCT_NAME = "$(TARGET_NAME)"; | |
1112 | + SDKROOT = appletvos; | |
1113 | + TARGETED_DEVICE_FAMILY = 3; | |
1114 | + TVOS_DEPLOYMENT_TARGET = 9.2; | |
1115 | + LIBRARY_SEARCH_PATHS = ( | |
1116 | + "$(inherited)", | |
1117 | + "\"$(SRCROOT)/$(TARGET_NAME)\"", | |
1118 | + ); | |
1119 | + HEADER_SEARCH_PATHS = ( | |
1120 | + "$(inherited)", | |
1121 | + "$(SRCROOT)/../node_modules/react-native-orientation/iOS/RCTOrientation/**", | |
1122 | + ); | |
1123 | + }; | |
1124 | + name = Release; | |
1125 | + }; | |
1126 | + 2D02E4991E0B4A5E006451C7 /* Debug */ = { | |
1127 | + isa = XCBuildConfiguration; | |
1128 | + buildSettings = { | |
1129 | + BUNDLE_LOADER = "$(TEST_HOST)"; | |
1130 | + CLANG_ANALYZER_NONNULL = YES; | |
1131 | + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; | |
1132 | + CLANG_WARN_INFINITE_RECURSION = YES; | |
1133 | + CLANG_WARN_SUSPICIOUS_MOVE = YES; | |
1134 | + DEBUG_INFORMATION_FORMAT = dwarf; | |
1135 | + ENABLE_TESTABILITY = YES; | |
1136 | + GCC_NO_COMMON_BLOCKS = YES; | |
1137 | + INFOPLIST_FILE = "demo-tvOSTests/Info.plist"; | |
1138 | + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; | |
1139 | + PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.demo-tvOSTests"; | |
1140 | + PRODUCT_NAME = "$(TARGET_NAME)"; | |
1141 | + SDKROOT = appletvos; | |
1142 | + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/demo-tvOS.app/demo-tvOS"; | |
1143 | + TVOS_DEPLOYMENT_TARGET = 10.1; | |
1144 | + LIBRARY_SEARCH_PATHS = ( | |
1145 | + "$(inherited)", | |
1146 | + "\"$(SRCROOT)/$(TARGET_NAME)\"", | |
1147 | + ); | |
1148 | + }; | |
1149 | + name = Debug; | |
1150 | + }; | |
1151 | + 2D02E49A1E0B4A5E006451C7 /* Release */ = { | |
1152 | + isa = XCBuildConfiguration; | |
1153 | + buildSettings = { | |
1154 | + BUNDLE_LOADER = "$(TEST_HOST)"; | |
1155 | + CLANG_ANALYZER_NONNULL = YES; | |
1156 | + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; | |
1157 | + CLANG_WARN_INFINITE_RECURSION = YES; | |
1158 | + CLANG_WARN_SUSPICIOUS_MOVE = YES; | |
1159 | + COPY_PHASE_STRIP = NO; | |
1160 | + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; | |
1161 | + GCC_NO_COMMON_BLOCKS = YES; | |
1162 | + INFOPLIST_FILE = "demo-tvOSTests/Info.plist"; | |
1163 | + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; | |
1164 | + PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.demo-tvOSTests"; | |
1165 | + PRODUCT_NAME = "$(TARGET_NAME)"; | |
1166 | + SDKROOT = appletvos; | |
1167 | + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/demo-tvOS.app/demo-tvOS"; | |
1168 | + TVOS_DEPLOYMENT_TARGET = 10.1; | |
1169 | + LIBRARY_SEARCH_PATHS = ( | |
1170 | + "$(inherited)", | |
1171 | + "\"$(SRCROOT)/$(TARGET_NAME)\"", | |
1172 | + ); | |
1173 | + }; | |
1174 | + name = Release; | |
1175 | + }; | |
1176 | + 83CBBA201A601CBA00E9B192 /* Debug */ = { | |
1177 | + isa = XCBuildConfiguration; | |
1178 | + buildSettings = { | |
1179 | + ALWAYS_SEARCH_USER_PATHS = NO; | |
1180 | + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; | |
1181 | + CLANG_CXX_LIBRARY = "libc++"; | |
1182 | + CLANG_ENABLE_MODULES = YES; | |
1183 | + CLANG_ENABLE_OBJC_ARC = YES; | |
1184 | + CLANG_WARN_BOOL_CONVERSION = YES; | |
1185 | + CLANG_WARN_CONSTANT_CONVERSION = YES; | |
1186 | + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; | |
1187 | + CLANG_WARN_EMPTY_BODY = YES; | |
1188 | + CLANG_WARN_ENUM_CONVERSION = YES; | |
1189 | + CLANG_WARN_INT_CONVERSION = YES; | |
1190 | + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; | |
1191 | + CLANG_WARN_UNREACHABLE_CODE = YES; | |
1192 | + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; | |
1193 | + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; | |
1194 | + COPY_PHASE_STRIP = NO; | |
1195 | + ENABLE_STRICT_OBJC_MSGSEND = YES; | |
1196 | + GCC_C_LANGUAGE_STANDARD = gnu99; | |
1197 | + GCC_DYNAMIC_NO_PIC = NO; | |
1198 | + GCC_OPTIMIZATION_LEVEL = 0; | |
1199 | + GCC_PREPROCESSOR_DEFINITIONS = ( | |
1200 | + "DEBUG=1", | |
1201 | + "$(inherited)", | |
1202 | + ); | |
1203 | + GCC_SYMBOLS_PRIVATE_EXTERN = NO; | |
1204 | + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; | |
1205 | + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; | |
1206 | + GCC_WARN_UNDECLARED_SELECTOR = YES; | |
1207 | + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | |
1208 | + GCC_WARN_UNUSED_FUNCTION = YES; | |
1209 | + GCC_WARN_UNUSED_VARIABLE = YES; | |
1210 | + IPHONEOS_DEPLOYMENT_TARGET = 8.0; | |
1211 | + MTL_ENABLE_DEBUG_INFO = YES; | |
1212 | + ONLY_ACTIVE_ARCH = YES; | |
1213 | + SDKROOT = iphoneos; | |
1214 | + }; | |
1215 | + name = Debug; | |
1216 | + }; | |
1217 | + 83CBBA211A601CBA00E9B192 /* Release */ = { | |
1218 | + isa = XCBuildConfiguration; | |
1219 | + buildSettings = { | |
1220 | + ALWAYS_SEARCH_USER_PATHS = NO; | |
1221 | + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; | |
1222 | + CLANG_CXX_LIBRARY = "libc++"; | |
1223 | + CLANG_ENABLE_MODULES = YES; | |
1224 | + CLANG_ENABLE_OBJC_ARC = YES; | |
1225 | + CLANG_WARN_BOOL_CONVERSION = YES; | |
1226 | + CLANG_WARN_CONSTANT_CONVERSION = YES; | |
1227 | + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; | |
1228 | + CLANG_WARN_EMPTY_BODY = YES; | |
1229 | + CLANG_WARN_ENUM_CONVERSION = YES; | |
1230 | + CLANG_WARN_INT_CONVERSION = YES; | |
1231 | + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; | |
1232 | + CLANG_WARN_UNREACHABLE_CODE = YES; | |
1233 | + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; | |
1234 | + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; | |
1235 | + COPY_PHASE_STRIP = YES; | |
1236 | + ENABLE_NS_ASSERTIONS = NO; | |
1237 | + ENABLE_STRICT_OBJC_MSGSEND = YES; | |
1238 | + GCC_C_LANGUAGE_STANDARD = gnu99; | |
1239 | + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; | |
1240 | + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; | |
1241 | + GCC_WARN_UNDECLARED_SELECTOR = YES; | |
1242 | + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | |
1243 | + GCC_WARN_UNUSED_FUNCTION = YES; | |
1244 | + GCC_WARN_UNUSED_VARIABLE = YES; | |
1245 | + IPHONEOS_DEPLOYMENT_TARGET = 8.0; | |
1246 | + MTL_ENABLE_DEBUG_INFO = NO; | |
1247 | + SDKROOT = iphoneos; | |
1248 | + VALIDATE_PRODUCT = YES; | |
1249 | + }; | |
1250 | + name = Release; | |
1251 | + }; | |
1252 | +/* End XCBuildConfiguration section */ | |
1253 | + | |
1254 | +/* Begin XCConfigurationList section */ | |
1255 | + 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "demoTests" */ = { | |
1256 | + isa = XCConfigurationList; | |
1257 | + buildConfigurations = ( | |
1258 | + 00E356F61AD99517003FC87E /* Debug */, | |
1259 | + 00E356F71AD99517003FC87E /* Release */, | |
1260 | + ); | |
1261 | + defaultConfigurationIsVisible = 0; | |
1262 | + defaultConfigurationName = Release; | |
1263 | + }; | |
1264 | + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "demo" */ = { | |
1265 | + isa = XCConfigurationList; | |
1266 | + buildConfigurations = ( | |
1267 | + 13B07F941A680F5B00A75B9A /* Debug */, | |
1268 | + 13B07F951A680F5B00A75B9A /* Release */, | |
1269 | + ); | |
1270 | + defaultConfigurationIsVisible = 0; | |
1271 | + defaultConfigurationName = Release; | |
1272 | + }; | |
1273 | + 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "demo-tvOS" */ = { | |
1274 | + isa = XCConfigurationList; | |
1275 | + buildConfigurations = ( | |
1276 | + 2D02E4971E0B4A5E006451C7 /* Debug */, | |
1277 | + 2D02E4981E0B4A5E006451C7 /* Release */, | |
1278 | + ); | |
1279 | + defaultConfigurationIsVisible = 0; | |
1280 | + defaultConfigurationName = Release; | |
1281 | + }; | |
1282 | + 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "demo-tvOSTests" */ = { | |
1283 | + isa = XCConfigurationList; | |
1284 | + buildConfigurations = ( | |
1285 | + 2D02E4991E0B4A5E006451C7 /* Debug */, | |
1286 | + 2D02E49A1E0B4A5E006451C7 /* Release */, | |
1287 | + ); | |
1288 | + defaultConfigurationIsVisible = 0; | |
1289 | + defaultConfigurationName = Release; | |
1290 | + }; | |
1291 | + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "demo" */ = { | |
1292 | + isa = XCConfigurationList; | |
1293 | + buildConfigurations = ( | |
1294 | + 83CBBA201A601CBA00E9B192 /* Debug */, | |
1295 | + 83CBBA211A601CBA00E9B192 /* Release */, | |
1296 | + ); | |
1297 | + defaultConfigurationIsVisible = 0; | |
1298 | + defaultConfigurationName = Release; | |
1299 | + }; | |
1300 | +/* End XCConfigurationList section */ | |
1301 | + }; | |
1302 | + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; | |
1303 | +} | ... | ... |
demo/ios/demo.xcodeproj/xcshareddata/xcschemes/demo-tvOS.xcscheme
0 → 100644
1 | +++ a/demo/ios/demo.xcodeproj/xcshareddata/xcschemes/demo-tvOS.xcscheme | |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<Scheme | |
3 | + LastUpgradeVersion = "0820" | |
4 | + version = "1.3"> | |
5 | + <BuildAction | |
6 | + parallelizeBuildables = "NO" | |
7 | + buildImplicitDependencies = "YES"> | |
8 | + <BuildActionEntries> | |
9 | + <BuildActionEntry | |
10 | + buildForTesting = "YES" | |
11 | + buildForRunning = "YES" | |
12 | + buildForProfiling = "YES" | |
13 | + buildForArchiving = "YES" | |
14 | + buildForAnalyzing = "YES"> | |
15 | + <BuildableReference | |
16 | + BuildableIdentifier = "primary" | |
17 | + BlueprintIdentifier = "2D2A28121D9B038B00D4039D" | |
18 | + BuildableName = "libReact.a" | |
19 | + BlueprintName = "React-tvOS" | |
20 | + ReferencedContainer = "container:../node_modules/react-native/React/React.xcodeproj"> | |
21 | + </BuildableReference> | |
22 | + </BuildActionEntry> | |
23 | + <BuildActionEntry | |
24 | + buildForTesting = "YES" | |
25 | + buildForRunning = "YES" | |
26 | + buildForProfiling = "YES" | |
27 | + buildForArchiving = "YES" | |
28 | + buildForAnalyzing = "YES"> | |
29 | + <BuildableReference | |
30 | + BuildableIdentifier = "primary" | |
31 | + BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" | |
32 | + BuildableName = "demo-tvOS.app" | |
33 | + BlueprintName = "demo-tvOS" | |
34 | + ReferencedContainer = "container:demo.xcodeproj"> | |
35 | + </BuildableReference> | |
36 | + </BuildActionEntry> | |
37 | + <BuildActionEntry | |
38 | + buildForTesting = "YES" | |
39 | + buildForRunning = "YES" | |
40 | + buildForProfiling = "NO" | |
41 | + buildForArchiving = "NO" | |
42 | + buildForAnalyzing = "YES"> | |
43 | + <BuildableReference | |
44 | + BuildableIdentifier = "primary" | |
45 | + BlueprintIdentifier = "2D02E48F1E0B4A5D006451C7" | |
46 | + BuildableName = "demo-tvOSTests.xctest" | |
47 | + BlueprintName = "demo-tvOSTests" | |
48 | + ReferencedContainer = "container:demo.xcodeproj"> | |
49 | + </BuildableReference> | |
50 | + </BuildActionEntry> | |
51 | + </BuildActionEntries> | |
52 | + </BuildAction> | |
53 | + <TestAction | |
54 | + buildConfiguration = "Debug" | |
55 | + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" | |
56 | + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" | |
57 | + shouldUseLaunchSchemeArgsEnv = "YES"> | |
58 | + <Testables> | |
59 | + <TestableReference | |
60 | + skipped = "NO"> | |
61 | + <BuildableReference | |
62 | + BuildableIdentifier = "primary" | |
63 | + BlueprintIdentifier = "2D02E48F1E0B4A5D006451C7" | |
64 | + BuildableName = "demo-tvOSTests.xctest" | |
65 | + BlueprintName = "demo-tvOSTests" | |
66 | + ReferencedContainer = "container:demo.xcodeproj"> | |
67 | + </BuildableReference> | |
68 | + </TestableReference> | |
69 | + </Testables> | |
70 | + <MacroExpansion> | |
71 | + <BuildableReference | |
72 | + BuildableIdentifier = "primary" | |
73 | + BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" | |
74 | + BuildableName = "demo-tvOS.app" | |
75 | + BlueprintName = "demo-tvOS" | |
76 | + ReferencedContainer = "container:demo.xcodeproj"> | |
77 | + </BuildableReference> | |
78 | + </MacroExpansion> | |
79 | + <AdditionalOptions> | |
80 | + </AdditionalOptions> | |
81 | + </TestAction> | |
82 | + <LaunchAction | |
83 | + buildConfiguration = "Debug" | |
84 | + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" | |
85 | + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" | |
86 | + launchStyle = "0" | |
87 | + useCustomWorkingDirectory = "NO" | |
88 | + ignoresPersistentStateOnLaunch = "NO" | |
89 | + debugDocumentVersioning = "YES" | |
90 | + debugServiceExtension = "internal" | |
91 | + allowLocationSimulation = "YES"> | |
92 | + <BuildableProductRunnable | |
93 | + runnableDebuggingMode = "0"> | |
94 | + <BuildableReference | |
95 | + BuildableIdentifier = "primary" | |
96 | + BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" | |
97 | + BuildableName = "demo-tvOS.app" | |
98 | + BlueprintName = "demo-tvOS" | |
99 | + ReferencedContainer = "container:demo.xcodeproj"> | |
100 | + </BuildableReference> | |
101 | + </BuildableProductRunnable> | |
102 | + <AdditionalOptions> | |
103 | + </AdditionalOptions> | |
104 | + </LaunchAction> | |
105 | + <ProfileAction | |
106 | + buildConfiguration = "Release" | |
107 | + shouldUseLaunchSchemeArgsEnv = "YES" | |
108 | + savedToolIdentifier = "" | |
109 | + useCustomWorkingDirectory = "NO" | |
110 | + debugDocumentVersioning = "YES"> | |
111 | + <BuildableProductRunnable | |
112 | + runnableDebuggingMode = "0"> | |
113 | + <BuildableReference | |
114 | + BuildableIdentifier = "primary" | |
115 | + BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" | |
116 | + BuildableName = "demo-tvOS.app" | |
117 | + BlueprintName = "demo-tvOS" | |
118 | + ReferencedContainer = "container:demo.xcodeproj"> | |
119 | + </BuildableReference> | |
120 | + </BuildableProductRunnable> | |
121 | + </ProfileAction> | |
122 | + <AnalyzeAction | |
123 | + buildConfiguration = "Debug"> | |
124 | + </AnalyzeAction> | |
125 | + <ArchiveAction | |
126 | + buildConfiguration = "Release" | |
127 | + revealArchiveInOrganizer = "YES"> | |
128 | + </ArchiveAction> | |
129 | +</Scheme> | ... | ... |
demo/ios/demo.xcodeproj/xcshareddata/xcschemes/demo.xcscheme
0 → 100644
1 | +++ a/demo/ios/demo.xcodeproj/xcshareddata/xcschemes/demo.xcscheme | |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<Scheme | |
3 | + LastUpgradeVersion = "0620" | |
4 | + version = "1.3"> | |
5 | + <BuildAction | |
6 | + parallelizeBuildables = "NO" | |
7 | + buildImplicitDependencies = "YES"> | |
8 | + <BuildActionEntries> | |
9 | + <BuildActionEntry | |
10 | + buildForTesting = "YES" | |
11 | + buildForRunning = "YES" | |
12 | + buildForProfiling = "YES" | |
13 | + buildForArchiving = "YES" | |
14 | + buildForAnalyzing = "YES"> | |
15 | + <BuildableReference | |
16 | + BuildableIdentifier = "primary" | |
17 | + BlueprintIdentifier = "83CBBA2D1A601D0E00E9B192" | |
18 | + BuildableName = "libReact.a" | |
19 | + BlueprintName = "React" | |
20 | + ReferencedContainer = "container:../node_modules/react-native/React/React.xcodeproj"> | |
21 | + </BuildableReference> | |
22 | + </BuildActionEntry> | |
23 | + <BuildActionEntry | |
24 | + buildForTesting = "YES" | |
25 | + buildForRunning = "YES" | |
26 | + buildForProfiling = "YES" | |
27 | + buildForArchiving = "YES" | |
28 | + buildForAnalyzing = "YES"> | |
29 | + <BuildableReference | |
30 | + BuildableIdentifier = "primary" | |
31 | + BlueprintIdentifier = "13B07F861A680F5B00A75B9A" | |
32 | + BuildableName = "demo.app" | |
33 | + BlueprintName = "demo" | |
34 | + ReferencedContainer = "container:demo.xcodeproj"> | |
35 | + </BuildableReference> | |
36 | + </BuildActionEntry> | |
37 | + <BuildActionEntry | |
38 | + buildForTesting = "YES" | |
39 | + buildForRunning = "YES" | |
40 | + buildForProfiling = "NO" | |
41 | + buildForArchiving = "NO" | |
42 | + buildForAnalyzing = "YES"> | |
43 | + <BuildableReference | |
44 | + BuildableIdentifier = "primary" | |
45 | + BlueprintIdentifier = "00E356ED1AD99517003FC87E" | |
46 | + BuildableName = "demoTests.xctest" | |
47 | + BlueprintName = "demoTests" | |
48 | + ReferencedContainer = "container:demo.xcodeproj"> | |
49 | + </BuildableReference> | |
50 | + </BuildActionEntry> | |
51 | + </BuildActionEntries> | |
52 | + </BuildAction> | |
53 | + <TestAction | |
54 | + buildConfiguration = "Debug" | |
55 | + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" | |
56 | + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" | |
57 | + shouldUseLaunchSchemeArgsEnv = "YES"> | |
58 | + <Testables> | |
59 | + <TestableReference | |
60 | + skipped = "NO"> | |
61 | + <BuildableReference | |
62 | + BuildableIdentifier = "primary" | |
63 | + BlueprintIdentifier = "00E356ED1AD99517003FC87E" | |
64 | + BuildableName = "demoTests.xctest" | |
65 | + BlueprintName = "demoTests" | |
66 | + ReferencedContainer = "container:demo.xcodeproj"> | |
67 | + </BuildableReference> | |
68 | + </TestableReference> | |
69 | + </Testables> | |
70 | + <MacroExpansion> | |
71 | + <BuildableReference | |
72 | + BuildableIdentifier = "primary" | |
73 | + BlueprintIdentifier = "13B07F861A680F5B00A75B9A" | |
74 | + BuildableName = "demo.app" | |
75 | + BlueprintName = "demo" | |
76 | + ReferencedContainer = "container:demo.xcodeproj"> | |
77 | + </BuildableReference> | |
78 | + </MacroExpansion> | |
79 | + <AdditionalOptions> | |
80 | + </AdditionalOptions> | |
81 | + </TestAction> | |
82 | + <LaunchAction | |
83 | + buildConfiguration = "Debug" | |
84 | + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" | |
85 | + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" | |
86 | + launchStyle = "0" | |
87 | + useCustomWorkingDirectory = "NO" | |
88 | + ignoresPersistentStateOnLaunch = "NO" | |
89 | + debugDocumentVersioning = "YES" | |
90 | + debugServiceExtension = "internal" | |
91 | + allowLocationSimulation = "YES"> | |
92 | + <BuildableProductRunnable | |
93 | + runnableDebuggingMode = "0"> | |
94 | + <BuildableReference | |
95 | + BuildableIdentifier = "primary" | |
96 | + BlueprintIdentifier = "13B07F861A680F5B00A75B9A" | |
97 | + BuildableName = "demo.app" | |
98 | + BlueprintName = "demo" | |
99 | + ReferencedContainer = "container:demo.xcodeproj"> | |
100 | + </BuildableReference> | |
101 | + </BuildableProductRunnable> | |
102 | + <AdditionalOptions> | |
103 | + </AdditionalOptions> | |
104 | + </LaunchAction> | |
105 | + <ProfileAction | |
106 | + buildConfiguration = "Release" | |
107 | + shouldUseLaunchSchemeArgsEnv = "YES" | |
108 | + savedToolIdentifier = "" | |
109 | + useCustomWorkingDirectory = "NO" | |
110 | + debugDocumentVersioning = "YES"> | |
111 | + <BuildableProductRunnable | |
112 | + runnableDebuggingMode = "0"> | |
113 | + <BuildableReference | |
114 | + BuildableIdentifier = "primary" | |
115 | + BlueprintIdentifier = "13B07F861A680F5B00A75B9A" | |
116 | + BuildableName = "demo.app" | |
117 | + BlueprintName = "demo" | |
118 | + ReferencedContainer = "container:demo.xcodeproj"> | |
119 | + </BuildableReference> | |
120 | + </BuildableProductRunnable> | |
121 | + </ProfileAction> | |
122 | + <AnalyzeAction | |
123 | + buildConfiguration = "Debug"> | |
124 | + </AnalyzeAction> | |
125 | + <ArchiveAction | |
126 | + buildConfiguration = "Release" | |
127 | + revealArchiveInOrganizer = "YES"> | |
128 | + </ArchiveAction> | |
129 | +</Scheme> | ... | ... |
demo/ios/demo/AppDelegate.h
0 → 100644
1 | +++ a/demo/ios/demo/AppDelegate.h | |
1 | +/** | |
2 | + * Copyright (c) 2015-present, Facebook, Inc. | |
3 | + * All rights reserved. | |
4 | + * | |
5 | + * This source code is licensed under the BSD-style license found in the | |
6 | + * LICENSE file in the root directory of this source tree. An additional grant | |
7 | + * of patent rights can be found in the PATENTS file in the same directory. | |
8 | + */ | |
9 | + | |
10 | +#import <UIKit/UIKit.h> | |
11 | + | |
12 | +@interface AppDelegate : UIResponder <UIApplicationDelegate> | |
13 | + | |
14 | +@property (nonatomic, strong) UIWindow *window; | |
15 | + | |
16 | +@end | ... | ... |
demo/ios/demo/AppDelegate.m
0 → 100644
1 | +++ a/demo/ios/demo/AppDelegate.m | |
1 | +/** | |
2 | + * Copyright (c) 2015-present, Facebook, Inc. | |
3 | + * All rights reserved. | |
4 | + * | |
5 | + * This source code is licensed under the BSD-style license found in the | |
6 | + * LICENSE file in the root directory of this source tree. An additional grant | |
7 | + * of patent rights can be found in the PATENTS file in the same directory. | |
8 | + */ | |
9 | + | |
10 | +#import "AppDelegate.h" | |
11 | +#import "Orientation.h" | |
12 | + | |
13 | +#import <React/RCTBundleURLProvider.h> | |
14 | +#import <React/RCTRootView.h> | |
15 | + | |
16 | +@implementation AppDelegate | |
17 | + | |
18 | +- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { | |
19 | + return [Orientation getOrientation]; | |
20 | +} | |
21 | + | |
22 | +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions | |
23 | +{ | |
24 | + NSURL *jsCodeLocation; | |
25 | + | |
26 | + jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]; | |
27 | + | |
28 | + RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation | |
29 | + moduleName:@"demo" | |
30 | + initialProperties:nil | |
31 | + launchOptions:launchOptions]; | |
32 | + rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; | |
33 | + | |
34 | + self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; | |
35 | + UIViewController *rootViewController = [UIViewController new]; | |
36 | + rootViewController.view = rootView; | |
37 | + self.window.rootViewController = rootViewController; | |
38 | + [self.window makeKeyAndVisible]; | |
39 | + return YES; | |
40 | +} | |
41 | + | |
42 | +@end | ... | ... |
demo/ios/demo/Base.lproj/LaunchScreen.xib
0 → 100644
1 | +++ a/demo/ios/demo/Base.lproj/LaunchScreen.xib | |
1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES"> | |
3 | + <dependencies> | |
4 | + <deployment identifier="iOS"/> | |
5 | + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7701"/> | |
6 | + <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/> | |
7 | + </dependencies> | |
8 | + <objects> | |
9 | + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> | |
10 | + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | |
11 | + <view contentMode="scaleToFill" id="iN0-l3-epB"> | |
12 | + <rect key="frame" x="0.0" y="0.0" width="480" height="480"/> | |
13 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | |
14 | + <subviews> | |
15 | + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Powered by React Native" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye"> | |
16 | + <rect key="frame" x="20" y="439" width="441" height="21"/> | |
17 | + <fontDescription key="fontDescription" type="system" pointSize="17"/> | |
18 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | |
19 | + <nil key="highlightedColor"/> | |
20 | + </label> | |
21 | + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="demo" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX"> | |
22 | + <rect key="frame" x="20" y="140" width="441" height="43"/> | |
23 | + <fontDescription key="fontDescription" type="boldSystem" pointSize="36"/> | |
24 | + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | |
25 | + <nil key="highlightedColor"/> | |
26 | + </label> | |
27 | + </subviews> | |
28 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> | |
29 | + <constraints> | |
30 | + <constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/> | |
31 | + <constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/> | |
32 | + <constraint firstAttribute="bottom" secondItem="8ie-xW-0ye" secondAttribute="bottom" constant="20" id="Kzo-t9-V3l"/> | |
33 | + <constraint firstItem="8ie-xW-0ye" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="MfP-vx-nX0"/> | |
34 | + <constraint firstAttribute="centerX" secondItem="8ie-xW-0ye" secondAttribute="centerX" id="ZEH-qu-HZ9"/> | |
35 | + <constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/> | |
36 | + </constraints> | |
37 | + <nil key="simulatedStatusBarMetrics"/> | |
38 | + <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> | |
39 | + <point key="canvasLocation" x="548" y="455"/> | |
40 | + </view> | |
41 | + </objects> | |
42 | +</document> | ... | ... |
demo/ios/demo/Images.xcassets/AppIcon.appiconset/Contents.json
0 → 100644
1 | +++ a/demo/ios/demo/Images.xcassets/AppIcon.appiconset/Contents.json | |
1 | +{ | |
2 | + "images" : [ | |
3 | + { | |
4 | + "idiom" : "iphone", | |
5 | + "size" : "29x29", | |
6 | + "scale" : "2x" | |
7 | + }, | |
8 | + { | |
9 | + "idiom" : "iphone", | |
10 | + "size" : "29x29", | |
11 | + "scale" : "3x" | |
12 | + }, | |
13 | + { | |
14 | + "idiom" : "iphone", | |
15 | + "size" : "40x40", | |
16 | + "scale" : "2x" | |
17 | + }, | |
18 | + { | |
19 | + "idiom" : "iphone", | |
20 | + "size" : "40x40", | |
21 | + "scale" : "3x" | |
22 | + }, | |
23 | + { | |
24 | + "idiom" : "iphone", | |
25 | + "size" : "60x60", | |
26 | + "scale" : "2x" | |
27 | + }, | |
28 | + { | |
29 | + "idiom" : "iphone", | |
30 | + "size" : "60x60", | |
31 | + "scale" : "3x" | |
32 | + } | |
33 | + ], | |
34 | + "info" : { | |
35 | + "version" : 1, | |
36 | + "author" : "xcode" | |
37 | + } | |
38 | +} | |
0 | 39 | \ No newline at end of file | ... | ... |
demo/ios/demo/Info.plist
0 → 100644
1 | +++ a/demo/ios/demo/Info.plist | |
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>CFBundleDevelopmentRegion</key> | |
6 | + <string>en</string> | |
7 | + <key>CFBundleDisplayName</key> | |
8 | + <string>demo</string> | |
9 | + <key>CFBundleExecutable</key> | |
10 | + <string>$(EXECUTABLE_NAME)</string> | |
11 | + <key>CFBundleIdentifier</key> | |
12 | + <string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string> | |
13 | + <key>CFBundleInfoDictionaryVersion</key> | |
14 | + <string>6.0</string> | |
15 | + <key>CFBundleName</key> | |
16 | + <string>$(PRODUCT_NAME)</string> | |
17 | + <key>CFBundlePackageType</key> | |
18 | + <string>APPL</string> | |
19 | + <key>CFBundleShortVersionString</key> | |
20 | + <string>1.0</string> | |
21 | + <key>CFBundleSignature</key> | |
22 | + <string>????</string> | |
23 | + <key>CFBundleVersion</key> | |
24 | + <string>1</string> | |
25 | + <key>LSRequiresIPhoneOS</key> | |
26 | + <true/> | |
27 | + <key>UILaunchStoryboardName</key> | |
28 | + <string>LaunchScreen</string> | |
29 | + <key>UIRequiredDeviceCapabilities</key> | |
30 | + <array> | |
31 | + <string>armv7</string> | |
32 | + </array> | |
33 | + <key>UISupportedInterfaceOrientations</key> | |
34 | + <array> | |
35 | + <string>UIInterfaceOrientationPortrait</string> | |
36 | + <string>UIInterfaceOrientationLandscapeLeft</string> | |
37 | + <string>UIInterfaceOrientationLandscapeRight</string> | |
38 | + </array> | |
39 | + <key>UIViewControllerBasedStatusBarAppearance</key> | |
40 | + <false/> | |
41 | + <key>NSLocationWhenInUseUsageDescription</key> | |
42 | + <string></string> | |
43 | + <key>NSAppTransportSecurity</key> | |
44 | + <!--See http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/ --> | |
45 | + <dict> | |
46 | + <key>NSExceptionDomains</key> | |
47 | + <dict> | |
48 | + <key>localhost</key> | |
49 | + <dict> | |
50 | + <key>NSExceptionAllowsInsecureHTTPLoads</key> | |
51 | + <true/> | |
52 | + </dict> | |
53 | + </dict> | |
54 | + </dict> | |
55 | +</dict> | |
56 | +</plist> | ... | ... |
demo/ios/demo/main.m
0 → 100644
1 | +++ a/demo/ios/demo/main.m | |
1 | +/** | |
2 | + * Copyright (c) 2015-present, Facebook, Inc. | |
3 | + * All rights reserved. | |
4 | + * | |
5 | + * This source code is licensed under the BSD-style license found in the | |
6 | + * LICENSE file in the root directory of this source tree. An additional grant | |
7 | + * of patent rights can be found in the PATENTS file in the same directory. | |
8 | + */ | |
9 | + | |
10 | +#import <UIKit/UIKit.h> | |
11 | + | |
12 | +#import "AppDelegate.h" | |
13 | + | |
14 | +int main(int argc, char * argv[]) { | |
15 | + @autoreleasepool { | |
16 | + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); | |
17 | + } | |
18 | +} | ... | ... |
demo/ios/demoTests/Info.plist
0 → 100644
1 | +++ a/demo/ios/demoTests/Info.plist | |
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>CFBundleDevelopmentRegion</key> | |
6 | + <string>en</string> | |
7 | + <key>CFBundleExecutable</key> | |
8 | + <string>$(EXECUTABLE_NAME)</string> | |
9 | + <key>CFBundleIdentifier</key> | |
10 | + <string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string> | |
11 | + <key>CFBundleInfoDictionaryVersion</key> | |
12 | + <string>6.0</string> | |
13 | + <key>CFBundleName</key> | |
14 | + <string>$(PRODUCT_NAME)</string> | |
15 | + <key>CFBundlePackageType</key> | |
16 | + <string>BNDL</string> | |
17 | + <key>CFBundleShortVersionString</key> | |
18 | + <string>1.0</string> | |
19 | + <key>CFBundleSignature</key> | |
20 | + <string>????</string> | |
21 | + <key>CFBundleVersion</key> | |
22 | + <string>1</string> | |
23 | +</dict> | |
24 | +</plist> | ... | ... |
demo/ios/demoTests/demoTests.m
0 → 100644
1 | +++ a/demo/ios/demoTests/demoTests.m | |
1 | +/** | |
2 | + * Copyright (c) 2015-present, Facebook, Inc. | |
3 | + * All rights reserved. | |
4 | + * | |
5 | + * This source code is licensed under the BSD-style license found in the | |
6 | + * LICENSE file in the root directory of this source tree. An additional grant | |
7 | + * of patent rights can be found in the PATENTS file in the same directory. | |
8 | + */ | |
9 | + | |
10 | +#import <UIKit/UIKit.h> | |
11 | +#import <XCTest/XCTest.h> | |
12 | + | |
13 | +#import <React/RCTLog.h> | |
14 | +#import <React/RCTRootView.h> | |
15 | + | |
16 | +#define TIMEOUT_SECONDS 600 | |
17 | +#define TEXT_TO_LOOK_FOR @"Welcome to React Native!" | |
18 | + | |
19 | +@interface demoTests : XCTestCase | |
20 | + | |
21 | +@end | |
22 | + | |
23 | +@implementation demoTests | |
24 | + | |
25 | +- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test | |
26 | +{ | |
27 | + if (test(view)) { | |
28 | + return YES; | |
29 | + } | |
30 | + for (UIView *subview in [view subviews]) { | |
31 | + if ([self findSubviewInView:subview matching:test]) { | |
32 | + return YES; | |
33 | + } | |
34 | + } | |
35 | + return NO; | |
36 | +} | |
37 | + | |
38 | +- (void)testRendersWelcomeScreen | |
39 | +{ | |
40 | + UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; | |
41 | + NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; | |
42 | + BOOL foundElement = NO; | |
43 | + | |
44 | + __block NSString *redboxError = nil; | |
45 | + RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { | |
46 | + if (level >= RCTLogLevelError) { | |
47 | + redboxError = message; | |
48 | + } | |
49 | + }); | |
50 | + | |
51 | + while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { | |
52 | + [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; | |
53 | + [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; | |
54 | + | |
55 | + foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) { | |
56 | + if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { | |
57 | + return YES; | |
58 | + } | |
59 | + return NO; | |
60 | + }]; | |
61 | + } | |
62 | + | |
63 | + RCTSetLogFunction(RCTDefaultLogFunction); | |
64 | + | |
65 | + XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); | |
66 | + XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); | |
67 | +} | |
68 | + | |
69 | + | |
70 | +@end | ... | ... |