3 |
4 | @implementation RNOpenCvLibrary
5 |
6 | - (dispatch_queue_t)methodQueue
7 | {
8 | return dispatch_get_main_queue();
9 | }
10 | RCT_EXPORT_MODULE()
11 |
12 | RCT_EXPORT_METHOD(addEvent:(NSString *)name location:(NSString *)location)
13 | {
14 | RCTLogInfo(@"Pretending to create an event %@ at %@", name, location);
15 | }
16 |
17 | RCT_EXPORT_METHOD(checkForBlurryImage:(NSString *)imageAsBase64 callback:(RCTResponseSenderBlock)callback) {
18 | UIImage* image = [self decodeBase64ToImage:imageAsBase64];
19 | BOOL isImageBlurryResult = [self isImageBlurry:image];
20 |
21 | id objects[] = { isImageBlurryResult ? @YES : @NO };
22 | NSUInteger count = sizeof(objects) / sizeof(id);
23 | NSArray *dataArray = [NSArray arrayWithObjects:objects
24 | count:count];
25 |
26 | callback(@[[NSNull null], dataArray]);
27 | }
28 |
29 | - (cv::Mat)convertUIImageToCVMat:(UIImage *)image {
30 | CGColorSpaceRef colorSpace = CGImageGetColorSpace(image.CGImage);
31 | CGFloat cols = image.size.width;
32 | CGFloat rows = image.size.height;
33 |
34 | cv::Mat cvMat(rows, cols, CV_8UC4); // 8 bits per component, 4 channels (color channels + alpha)
35 |
36 | CGContextRef contextRef = CGBitmapContextCreate(cvMat.data, // Pointer to data
37 | cols, // Width of bitmap
38 | rows, // Height of bitmap
39 | 8, // Bits per component
40 | cvMat.step[0], // Bytes per row
41 | colorSpace, // Colorspace
42 | kCGImageAlphaNoneSkipLast |
43 | kCGBitmapByteOrderDefault); // Bitmap info flags
44 |
45 | CGContextDrawImage(contextRef, CGRectMake(0, 0, cols, rows), image.CGImage);
46 | CGContextRelease(contextRef);
47 |
48 | return cvMat;
49 | }
50 |
51 | - (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData {
52 | NSData *data = [[NSData alloc]initWithBase64EncodedString:strEncodeData options:NSDataBase64DecodingIgnoreUnknownCharacters];
53 | return [UIImage imageWithData:data];
54 | }
55 |
56 | - (BOOL) isImageBlurry:(UIImage *) image {
57 | // converting UIImage to OpenCV format - Mat
58 | cv::Mat matImage = [self convertUIImageToCVMat:image];
59 | cv::Mat matImageGrey;
60 | // converting image's color space (RGB) to grayscale
61 | cv::cvtColor(matImage, matImageGrey, CV_BGR2GRAY);
62 |
63 | cv::Mat dst2 = [self convertUIImageToCVMat:image];
64 | cv::Mat laplacianImage;
65 | dst2.convertTo(laplacianImage, CV_8UC1);
66 |
67 | // applying Laplacian operator to the image
68 | cv::Laplacian(matImageGrey, laplacianImage, CV_8U);
69 | cv::Mat laplacianImage8bit;
70 | laplacianImage.convertTo(laplacianImage8bit, CV_8UC1);
71 |
72 | unsigned char *pixels = laplacianImage8bit.data;
73 |
74 | // 16777216 = 256*256*256
75 | int maxLap = -16777216;
76 | for (int i = 0; i < ( laplacianImage8bit.elemSize()*laplacianImage8bit.total()); i++) {
77 | if (pixels[i] > maxLap) {
78 | maxLap = pixels[i];
79 | }
80 | }
81 | // one of the main parameters here: threshold sets the sensitivity for the blur check
82 | // smaller number = less sensitive; default = 180
83 | int threshold = 180;
84 |
85 | return (maxLap <= threshold);
86 | }
87 |
88 | @end
89 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | react-native-opencv-tutorial
4 |
5 |
6 |
7 | A fully working example of the OpenCV library used together with React Native.
8 |
9 |
10 |
11 |
12 | Blog post |
13 | Hire us
14 |
15 |
16 |
17 |
18 |
19 | [](https://github.com/brainhubeu/react-native-opencv-tutorial/blob/master/LICENSE.MD)
20 | [](http://makeapullrequest.com)
21 |
22 |
23 | ## What this tutorial is about
24 | This tutorial is how to use React Native together with OpenCV for image processing. This example uses native Java and Objective-C bindings for OpenCV. In this example we use the device's camera to take a photo and detect whether the taken photo is clear or blurred.
25 |
26 | ## Demo
27 |
28 | The examples below show the situation right after taking a photo. The first one shows what happens if we take a blurry photo and the second one is the situation after we took a clear photo and are able to proceed with it to do whatever we want.
29 |
30 | 
31 | 
32 |
33 | ## Blog post
34 |
35 | https://brainhub.eu/blog/opencv-react-native-image-processing/
36 |
37 | ## Prerequisites
38 |
39 | 1. XCode
40 | 2. Android Studio
41 |
42 | ## How to run the project
43 |
44 | 1. Clone the repository.
45 | 2. `cd cloned/repository/path`
46 | 3. `npm i` or `yarn`
47 | 4. `react-native link`
48 | 5. Run `./downloadAndInsertOpenCV.sh`.
49 | 6. Download manually the Android pack from https://opencv.org/releases.html (version 3.4.1).
50 | 7. Unzip the package.
51 | 8. Import OpenCV to Android Studio, From File -> New -> Import Module, choose sdk/java folder in the unzipped opencv archive.
52 | 9. Update build.gradle under imported OpenCV module to update 4 fields to match your project's `build.gradle`
53 |
54 | a) compileSdkVersion
55 | b) buildToolsVersion
56 | c) minSdkVersion
57 | d) targetSdkVersion.
58 |
59 | 10. Add module dependency by Application -> Module Settings, and select the Dependencies tab. Click + icon at bottom, choose Module Dependency and select the imported OpenCV module. For Android Studio v1.2.2, to access to Module Settings : in the project view, right-click the dependent module -> Open Module Settings.
60 | 11. `react-native run-ios` or `react-native run-android`.
61 |
62 | ### Additional notes
63 | In case of any `downloadAndInsertOpenCV.sh ` script related errors, please, check the paths inside this file and change them if they do not match yours.
64 | If this script does not run at all since it has no permissions, run `chmod 777 downloadAndInsertOpenCV.sh`.
65 |
66 | If you do not have `React Native` installed, type `npm i -g react-native-cli` in the terminal.
67 |
68 | ### License
69 |
70 | reactNativeOpencvTutorial is copyright © 2018-2020 [Brainhub](https://brainhub.eu/?utm_source=github) It is free software, and may be redistributed under the terms specified in the [license](LICENSE.MD).
71 |
72 | ### About
73 |
74 | reactNativeOpencvTutorial is maintained by the Brainhub development team. It is funded by Brainhub and the names and logos for Brainhub are trademarks of Brainhub Sp. z o.o.. You can check other open-source projects supported/developed by our teammates here.
75 |
76 | [](https://brainhub.eu/?utm_source=github)
77 |
78 | We love open-source JavaScript software! See our other projects or hire us to build your next web, desktop and mobile application with JavaScript.
79 |
--------------------------------------------------------------------------------
/ios/reactNativeOpencvTutorial/Base.lproj/LaunchScreen.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
21 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/src/Screens/CameraScreen.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import {
3 | AppRegistry,
4 | View,
5 | Text,
6 | Platform,
7 | Image,
8 | TouchableOpacity,
9 | } from 'react-native';
10 | import { RNCamera as Camera } from 'react-native-camera';
11 | import Toast, {DURATION} from 'react-native-easy-toast'
12 |
13 | import styles from '../Styles/Screens/CameraScreen';
14 | import OpenCV from '../NativeModules/OpenCV';
15 | import CircleWithinCircle from '../assets/svg/CircleWithinCircle';
16 |
17 | export default class CameraScreen extends Component {
18 | constructor(props) {
19 | super(props);
20 |
21 | this.takePicture = this.takePicture.bind(this);
22 | this.checkForBlurryImage = this.checkForBlurryImage.bind(this);
23 | this.proceedWithCheckingBlurryImage = this.proceedWithCheckingBlurryImage.bind(this);
24 | this.repeatPhoto = this.repeatPhoto.bind(this);
25 | this.usePhoto = this.usePhoto.bind(this);
26 | }
27 |
28 | state = {
29 | cameraPermission: false,
30 | photoAsBase64: {
31 | content: '',
32 | isPhotoPreview: false,
33 | photoPath: '',
34 | },
35 | };
36 |
37 | checkForBlurryImage(imageAsBase64) {
38 | return new Promise((resolve, reject) => {
39 | if (Platform.OS === 'android') {
40 | OpenCV.checkForBlurryImage(imageAsBase64, error => {
41 | // error handling
42 | }, msg => {
43 | resolve(msg);
44 | });
45 | } else {
46 | OpenCV.checkForBlurryImage(imageAsBase64, (error, dataArray) => {
47 | resolve(dataArray[0]);
48 | });
49 | }
50 | });
51 | }
52 |
53 | proceedWithCheckingBlurryImage() {
54 | const { content, photoPath } = this.state.photoAsBase64;
55 |
56 | this.checkForBlurryImage(content).then(blurryPhoto => {
57 | if (blurryPhoto) {
58 | this.refs.toast.show('Photo is blurred!',DURATION.FOREVER);
59 | return this.repeatPhoto();
60 | }
61 | this.refs.toast.show('Photo is clear!', DURATION.FOREVER);
62 | this.setState({ photoAsBase64: { ...this.state.photoAsBase64, isPhotoPreview: true, photoPath } });
63 | }).catch(err => {
64 | console.log('err', err)
65 | });
66 | }
67 |
68 | async takePicture() {
69 | if (this.camera) {
70 | const options = { quality: 0.5, base64: true };
71 | const data = await this.camera.takePictureAsync(options);
72 | this.setState({
73 | ...this.state,
74 | photoAsBase64: { content: data.base64, isPhotoPreview: false, photoPath: data.uri },
75 | });
76 | this.proceedWithCheckingBlurryImage();
77 | }
78 | }
79 |
80 |
81 | repeatPhoto() {
82 | this.setState({
83 | ...this.state,
84 | photoAsBase64: {
85 | content: '',
86 | isPhotoPreview: false,
87 | photoPath: '',
88 | },
89 | });
90 | }
91 |
92 | usePhoto() {
93 | // do something, e.g. navigate
94 | }
95 |
96 |
97 | render() {
98 | if (this.state.photoAsBase64.isPhotoPreview) {
99 | return (
100 |
101 |
102 |
106 |
107 |
108 |
109 | Repeat photo
110 |
111 |
112 |
113 |
114 |
115 |
116 | Use photo
117 |
118 |
119 |
120 |
121 | );
122 | }
123 |
124 | return (
125 |
126 | {
128 | this.camera = cam;
129 | }}
130 | style={styles.preview}
131 | permissionDialogTitle={'Permission to use camera'}
132 | permissionDialogMessage={'We need your permission to use your camera phone'}
133 | >
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 | );
145 | }
146 | }
147 |
148 |
149 | AppRegistry.registerComponent('CameraScreen', () => CameraScreen);
150 |
--------------------------------------------------------------------------------
/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 "$@"
165 |
--------------------------------------------------------------------------------
/ios/reactNativeOpencvTutorial.xcodeproj/xcshareddata/xcschemes/reactNativeOpencvTutorial.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
29 |
35 |
36 |
37 |
43 |
49 |
50 |
51 |
52 |
53 |
59 |
60 |
62 |
68 |
69 |
70 |
71 |
72 |
78 |
79 |
80 |
81 |
82 |
83 |
94 |
96 |
102 |
103 |
104 |
105 |
106 |
107 |
113 |
115 |
121 |
122 |
123 |
124 |
126 |
127 |
130 |
131 |
132 |
--------------------------------------------------------------------------------
/ios/reactNativeOpencvTutorial.xcodeproj/xcshareddata/xcschemes/reactNativeOpencvTutorial-tvOS.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
29 |
35 |
36 |
37 |
43 |
49 |
50 |
51 |
52 |
53 |
58 |
59 |
61 |
67 |
68 |
69 |
70 |
71 |
77 |
78 |
79 |
80 |
81 |
82 |
92 |
94 |
100 |
101 |
102 |
103 |
104 |
105 |
111 |
113 |
119 |
120 |
121 |
122 |
124 |
125 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/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 | project.ext.react = [
76 | entryFile: "index.js"
77 | ]
78 |
79 | apply from: "../../node_modules/react-native/react.gradle"
80 |
81 | /**
82 | * Set this to true to create two separate APKs instead of one:
83 | * - An APK that only works on ARM devices
84 | * - An APK that only works on x86 devices
85 | * The advantage is the size of the APK is reduced by about 4MB.
86 | * Upload all the APKs to the Play Store and people will download
87 | * the correct one based on the CPU architecture of their device.
88 | */
89 | def enableSeparateBuildPerCPUArchitecture = false
90 |
91 | /**
92 | * Run Proguard to shrink the Java bytecode in release builds.
93 | */
94 | def enableProguardInReleaseBuilds = false
95 |
96 | android {
97 | compileSdkVersion 23
98 | buildToolsVersion "23.0.1"
99 |
100 | defaultConfig {
101 | applicationId "com.reactnativeopencvtutorial"
102 | minSdkVersion 16
103 | targetSdkVersion 22
104 | versionCode 1
105 | versionName "1.0"
106 | ndk {
107 | abiFilters "armeabi-v7a", "x86"
108 | }
109 | }
110 | splits {
111 | abi {
112 | reset()
113 | enable enableSeparateBuildPerCPUArchitecture
114 | universalApk false // If true, also generate a universal APK
115 | include "armeabi-v7a", "x86"
116 | }
117 | }
118 | buildTypes {
119 | release {
120 | minifyEnabled enableProguardInReleaseBuilds
121 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
122 | }
123 | }
124 | // applicationVariants are e.g. debug, release
125 | applicationVariants.all { variant ->
126 | variant.outputs.each { output ->
127 | // For each separate APK per architecture, set a unique version code as described here:
128 | // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
129 | def versionCodes = ["armeabi-v7a":1, "x86":2]
130 | def abi = output.getFilter(OutputFile.ABI)
131 | if (abi != null) { // null for the universal-debug, universal-release variants
132 | output.versionCodeOverride =
133 | versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
134 | }
135 | }
136 | }
137 | }
138 |
139 | dependencies {
140 | compile project(':react-native-svg')
141 | compile project(':react-native-camera')
142 | compile fileTree(include: ['*.jar'], dir: 'libs')
143 | compile 'com.android.support:appcompat-v7:23.0.1'
144 | compile 'com.facebook.react:react-native:+'
145 | // From node_modules
146 | compile project(':openCVLibrary341')
147 | }
148 |
149 | // Run this once to be able to run the application with BUCK
150 | // puts all compile dependencies into folder libs for BUCK to use
151 | task copyDownloadableDepsToLibs(type: Copy) {
152 | from configurations.compile
153 | into 'libs'
154 | }
155 |
--------------------------------------------------------------------------------
/android/import-summary.txt:
--------------------------------------------------------------------------------
1 | ECLIPSE ANDROID PROJECT IMPORT SUMMARY
2 | ======================================
3 |
4 | Ignored Files:
5 | --------------
6 | The following files were *not* copied into the new Gradle project; you
7 | should evaluate whether these are still needed in your project and if
8 | so manually move them:
9 |
10 | * javadoc/
11 | * javadoc/allclasses-frame.html
12 | * javadoc/allclasses-noframe.html
13 | * javadoc/constant-values.html
14 | * javadoc/help-doc.html
15 | * javadoc/index-all.html
16 | * javadoc/index.html
17 | * javadoc/org/
18 | * javadoc/org/opencv/
19 | * javadoc/org/opencv/android/
20 | * javadoc/org/opencv/android/BaseLoaderCallback.html
21 | * javadoc/org/opencv/android/Camera2Renderer.html
22 | * javadoc/org/opencv/android/CameraBridgeViewBase.CvCameraViewFrame.html
23 | * javadoc/org/opencv/android/CameraBridgeViewBase.CvCameraViewListener.html
24 | * javadoc/org/opencv/android/CameraBridgeViewBase.CvCameraViewListener2.html
25 | * javadoc/org/opencv/android/CameraBridgeViewBase.ListItemAccessor.html
26 | * javadoc/org/opencv/android/CameraBridgeViewBase.html
27 | * javadoc/org/opencv/android/CameraGLRendererBase.html
28 | * javadoc/org/opencv/android/CameraGLSurfaceView.CameraTextureListener.html
29 | * javadoc/org/opencv/android/CameraGLSurfaceView.html
30 | * javadoc/org/opencv/android/CameraRenderer.html
31 | * javadoc/org/opencv/android/FpsMeter.html
32 | * javadoc/org/opencv/android/InstallCallbackInterface.html
33 | * javadoc/org/opencv/android/JavaCamera2View.html
34 | * javadoc/org/opencv/android/JavaCameraView.JavaCameraSizeAccessor.html
35 | * javadoc/org/opencv/android/JavaCameraView.html
36 | * javadoc/org/opencv/android/LoaderCallbackInterface.html
37 | * javadoc/org/opencv/android/OpenCVLoader.html
38 | * javadoc/org/opencv/android/Utils.html
39 | * javadoc/org/opencv/android/package-frame.html
40 | * javadoc/org/opencv/android/package-summary.html
41 | * javadoc/org/opencv/android/package-tree.html
42 | * javadoc/org/opencv/calib3d/
43 | * javadoc/org/opencv/calib3d/Calib3d.html
44 | * javadoc/org/opencv/calib3d/StereoBM.html
45 | * javadoc/org/opencv/calib3d/StereoMatcher.html
46 | * javadoc/org/opencv/calib3d/StereoSGBM.html
47 | * javadoc/org/opencv/calib3d/package-frame.html
48 | * javadoc/org/opencv/calib3d/package-summary.html
49 | * javadoc/org/opencv/calib3d/package-tree.html
50 | * javadoc/org/opencv/core/
51 | * javadoc/org/opencv/core/Algorithm.html
52 | * javadoc/org/opencv/core/Core.MinMaxLocResult.html
53 | * javadoc/org/opencv/core/Core.html
54 | * javadoc/org/opencv/core/CvException.html
55 | * javadoc/org/opencv/core/CvType.html
56 | * javadoc/org/opencv/core/DMatch.html
57 | * javadoc/org/opencv/core/KeyPoint.html
58 | * javadoc/org/opencv/core/Mat.html
59 | * javadoc/org/opencv/core/MatOfByte.html
60 | * javadoc/org/opencv/core/MatOfDMatch.html
61 | * javadoc/org/opencv/core/MatOfDouble.html
62 | * javadoc/org/opencv/core/MatOfFloat.html
63 | * javadoc/org/opencv/core/MatOfFloat4.html
64 | * javadoc/org/opencv/core/MatOfFloat6.html
65 | * javadoc/org/opencv/core/MatOfInt.html
66 | * javadoc/org/opencv/core/MatOfInt4.html
67 | * javadoc/org/opencv/core/MatOfKeyPoint.html
68 | * javadoc/org/opencv/core/MatOfPoint.html
69 | * javadoc/org/opencv/core/MatOfPoint2f.html
70 | * javadoc/org/opencv/core/MatOfPoint3.html
71 | * javadoc/org/opencv/core/MatOfPoint3f.html
72 | * javadoc/org/opencv/core/MatOfRect.html
73 | * javadoc/org/opencv/core/MatOfRect2d.html
74 | * javadoc/org/opencv/core/Point.html
75 | * javadoc/org/opencv/core/Point3.html
76 | * javadoc/org/opencv/core/Range.html
77 | * javadoc/org/opencv/core/Rect.html
78 | * javadoc/org/opencv/core/Rect2d.html
79 | * javadoc/org/opencv/core/RotatedRect.html
80 | * javadoc/org/opencv/core/Scalar.html
81 | * javadoc/org/opencv/core/Size.html
82 | * javadoc/org/opencv/core/TermCriteria.html
83 | * javadoc/org/opencv/core/TickMeter.html
84 | * javadoc/org/opencv/core/package-frame.html
85 | * javadoc/org/opencv/core/package-summary.html
86 | * javadoc/org/opencv/core/package-tree.html
87 | * javadoc/org/opencv/dnn/
88 | * javadoc/org/opencv/dnn/DictValue.html
89 | * javadoc/org/opencv/dnn/Dnn.html
90 | * javadoc/org/opencv/dnn/Layer.html
91 | * javadoc/org/opencv/dnn/Net.html
92 | * javadoc/org/opencv/dnn/package-frame.html
93 | * javadoc/org/opencv/dnn/package-summary.html
94 | * javadoc/org/opencv/dnn/package-tree.html
95 | * javadoc/org/opencv/features2d/
96 | * javadoc/org/opencv/features2d/AKAZE.html
97 | * javadoc/org/opencv/features2d/AgastFeatureDetector.html
98 | * javadoc/org/opencv/features2d/BFMatcher.html
99 | * javadoc/org/opencv/features2d/BOWImgDescriptorExtractor.html
100 | * javadoc/org/opencv/features2d/BOWKMeansTrainer.html
101 | * javadoc/org/opencv/features2d/BOWTrainer.html
102 | * javadoc/org/opencv/features2d/BRISK.html
103 | * javadoc/org/opencv/features2d/DescriptorMatcher.html
104 | * javadoc/org/opencv/features2d/FastFeatureDetector.html
105 | * javadoc/org/opencv/features2d/Feature2D.html
106 | * javadoc/org/opencv/features2d/Features2d.html
107 | * javadoc/org/opencv/features2d/FlannBasedMatcher.html
108 | * javadoc/org/opencv/features2d/GFTTDetector.html
109 | * javadoc/org/opencv/features2d/KAZE.html
110 | * javadoc/org/opencv/features2d/MSER.html
111 | * javadoc/org/opencv/features2d/ORB.html
112 | * javadoc/org/opencv/features2d/Params.html
113 | * javadoc/org/opencv/features2d/package-frame.html
114 | * javadoc/org/opencv/features2d/package-summary.html
115 | * javadoc/org/opencv/features2d/package-tree.html
116 | * javadoc/org/opencv/imgcodecs/
117 | * javadoc/org/opencv/imgcodecs/Imgcodecs.html
118 | * javadoc/org/opencv/imgcodecs/package-frame.html
119 | * javadoc/org/opencv/imgcodecs/package-summary.html
120 | * javadoc/org/opencv/imgcodecs/package-tree.html
121 | * javadoc/org/opencv/imgproc/
122 | * javadoc/org/opencv/imgproc/CLAHE.html
123 | * javadoc/org/opencv/imgproc/Imgproc.html
124 | * javadoc/org/opencv/imgproc/LineSegmentDetector.html
125 | * javadoc/org/opencv/imgproc/Moments.html
126 | * javadoc/org/opencv/imgproc/Subdiv2D.html
127 | * javadoc/org/opencv/imgproc/package-frame.html
128 | * javadoc/org/opencv/imgproc/package-summary.html
129 | * javadoc/org/opencv/imgproc/package-tree.html
130 | * javadoc/org/opencv/ml/
131 | * javadoc/org/opencv/ml/ANN_MLP.html
132 | * javadoc/org/opencv/ml/ANN_MLP_ANNEAL.html
133 | * javadoc/org/opencv/ml/Boost.html
134 | * javadoc/org/opencv/ml/DTrees.html
135 | * javadoc/org/opencv/ml/EM.html
136 | * javadoc/org/opencv/ml/KNearest.html
137 | * javadoc/org/opencv/ml/LogisticRegression.html
138 | * javadoc/org/opencv/ml/Ml.html
139 | * javadoc/org/opencv/ml/NormalBayesClassifier.html
140 | * javadoc/org/opencv/ml/ParamGrid.html
141 | * javadoc/org/opencv/ml/RTrees.html
142 | * javadoc/org/opencv/ml/SVM.html
143 | * javadoc/org/opencv/ml/SVMSGD.html
144 | * javadoc/org/opencv/ml/StatModel.html
145 | * javadoc/org/opencv/ml/TrainData.html
146 | * javadoc/org/opencv/ml/package-frame.html
147 | * javadoc/org/opencv/ml/package-summary.html
148 | * javadoc/org/opencv/ml/package-tree.html
149 | * javadoc/org/opencv/objdetect/
150 | * javadoc/org/opencv/objdetect/BaseCascadeClassifier.html
151 | * javadoc/org/opencv/objdetect/CascadeClassifier.html
152 | * javadoc/org/opencv/objdetect/HOGDescriptor.html
153 | * javadoc/org/opencv/objdetect/Objdetect.html
154 | * javadoc/org/opencv/objdetect/package-frame.html
155 | * javadoc/org/opencv/objdetect/package-summary.html
156 | * javadoc/org/opencv/objdetect/package-tree.html
157 | * javadoc/org/opencv/osgi/
158 | * javadoc/org/opencv/osgi/OpenCVInterface.html
159 | * javadoc/org/opencv/osgi/OpenCVNativeLoader.html
160 | * javadoc/org/opencv/osgi/package-frame.html
161 | * javadoc/org/opencv/osgi/package-summary.html
162 | * javadoc/org/opencv/osgi/package-tree.html
163 | * javadoc/org/opencv/photo/
164 | * javadoc/org/opencv/photo/AlignExposures.html
165 | * javadoc/org/opencv/photo/AlignMTB.html
166 | * javadoc/org/opencv/photo/CalibrateCRF.html
167 | * javadoc/org/opencv/photo/CalibrateDebevec.html
168 | * javadoc/org/opencv/photo/CalibrateRobertson.html
169 | * javadoc/org/opencv/photo/MergeDebevec.html
170 | * javadoc/org/opencv/photo/MergeExposures.html
171 | * javadoc/org/opencv/photo/MergeMertens.html
172 | * javadoc/org/opencv/photo/MergeRobertson.html
173 | * javadoc/org/opencv/photo/Photo.html
174 | * javadoc/org/opencv/photo/Tonemap.html
175 | * javadoc/org/opencv/photo/TonemapDrago.html
176 | * javadoc/org/opencv/photo/TonemapDurand.html
177 | * javadoc/org/opencv/photo/TonemapMantiuk.html
178 | * javadoc/org/opencv/photo/TonemapReinhard.html
179 | * javadoc/org/opencv/photo/package-frame.html
180 | * javadoc/org/opencv/photo/package-summary.html
181 | * javadoc/org/opencv/photo/package-tree.html
182 | * javadoc/org/opencv/utils/
183 | * javadoc/org/opencv/utils/Converters.html
184 | * javadoc/org/opencv/utils/package-frame.html
185 | * javadoc/org/opencv/utils/package-summary.html
186 | * javadoc/org/opencv/utils/package-tree.html
187 | * javadoc/org/opencv/video/
188 | * javadoc/org/opencv/video/BackgroundSubtractor.html
189 | * javadoc/org/opencv/video/BackgroundSubtractorKNN.html
190 | * javadoc/org/opencv/video/BackgroundSubtractorMOG2.html
191 | * javadoc/org/opencv/video/DenseOpticalFlow.html
192 | * javadoc/org/opencv/video/DualTVL1OpticalFlow.html
193 | * javadoc/org/opencv/video/FarnebackOpticalFlow.html
194 | * javadoc/org/opencv/video/KalmanFilter.html
195 | * javadoc/org/opencv/video/SparseOpticalFlow.html
196 | * javadoc/org/opencv/video/SparsePyrLKOpticalFlow.html
197 | * javadoc/org/opencv/video/Video.html
198 | * javadoc/org/opencv/video/package-frame.html
199 | * javadoc/org/opencv/video/package-summary.html
200 | * javadoc/org/opencv/video/package-tree.html
201 | * javadoc/org/opencv/videoio/
202 | * javadoc/org/opencv/videoio/VideoCapture.html
203 | * javadoc/org/opencv/videoio/VideoWriter.html
204 | * javadoc/org/opencv/videoio/Videoio.html
205 | * javadoc/org/opencv/videoio/package-frame.html
206 | * javadoc/org/opencv/videoio/package-summary.html
207 | * javadoc/org/opencv/videoio/package-tree.html
208 | * javadoc/overview-frame.html
209 | * javadoc/overview-summary.html
210 | * javadoc/overview-tree.html
211 | * javadoc/package-list
212 | * javadoc/resources/
213 | * javadoc/resources/background.gif
214 | * javadoc/resources/tab.gif
215 | * javadoc/resources/titlebar.gif
216 | * javadoc/resources/titlebar_end.gif
217 | * javadoc/serialized-form.html
218 | * javadoc/stylesheet.css
219 |
220 | Moved Files:
221 | ------------
222 | Android Gradle projects use a different directory structure than ADT
223 | Eclipse projects. Here's how the projects were restructured:
224 |
225 | * AndroidManifest.xml => openCVLibrary341/src/main/AndroidManifest.xml
226 | * lint.xml => openCVLibrary341/lint.xml
227 | * res/ => openCVLibrary341/src/main/res/
228 | * src/ => openCVLibrary341/src/main/java/
229 | * src/org/opencv/engine/OpenCVEngineInterface.aidl => openCVLibrary341/src/main/aidl/org/opencv/engine/OpenCVEngineInterface.aidl
230 |
231 | Next Steps:
232 | -----------
233 | You can now build the project. The Gradle project needs network
234 | connectivity to download dependencies.
235 |
236 | Bugs:
237 | -----
238 | If for some reason your project does not build, and you determine that
239 | it is due to a bug or limitation of the Eclipse to Gradle importer,
240 | please file a bug at http://b.android.com with category
241 | Component-Tools.
242 |
243 | (This import summary is for your information only, and can be deleted
244 | after import once you are satisfied with the results.)
245 |
--------------------------------------------------------------------------------
/ios/reactNativeOpencvTutorial.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; };
11 | 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; };
12 | 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */; };
13 | 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; };
14 | 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; };
15 | 00E356F31AD99517003FC87E /* reactNativeOpencvTutorialTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* reactNativeOpencvTutorialTests.m */; };
16 | 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; };
17 | 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; };
18 | 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; };
19 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
20 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; };
21 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
22 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
23 | 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
24 | 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
25 | 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
26 | 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
27 | 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
28 | 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
29 | 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */; };
30 | 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */; };
31 | 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */; };
32 | 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */; };
33 | 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */; };
34 | 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; };
35 | 2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D16E6891FA4F8E400B85C8A /* libReact.a */; };
36 | 2DCD954D1E0B4F2C00145EB5 /* reactNativeOpencvTutorialTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* reactNativeOpencvTutorialTests.m */; };
37 | 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
38 | 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
39 | 9678586F206005DC007C6F7B /* RNOpenCvLibrary.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9678586E206005DC007C6F7B /* RNOpenCvLibrary.mm */; };
40 | 969D3BDF205FDDD300D0FF11 /* opencv2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 969D3BDE205FDDD300D0FF11 /* opencv2.framework */; };
41 | ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; };
42 | AF720D3753BC4DDD899C2629 /* libRNSVG.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EC2D1C1540B64D3AA5C7B950 /* libRNSVG.a */; };
43 | C5778260D21A410599CD61A1 /* libRNCamera.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 532FB82852194026BF47AD70 /* libRNCamera.a */; };
44 | E8311E56842E4138A3D8B164 /* libRNSVG-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B106B74F433405881714EE4 /* libRNSVG-tvOS.a */; };
45 | /* End PBXBuildFile section */
46 |
47 | /* Begin PBXContainerItemProxy section */
48 | 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */ = {
49 | isa = PBXContainerItemProxy;
50 | containerPortal = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */;
51 | proxyType = 2;
52 | remoteGlobalIDString = 134814201AA4EA6300B7C361;
53 | remoteInfo = RCTActionSheet;
54 | };
55 | 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */ = {
56 | isa = PBXContainerItemProxy;
57 | containerPortal = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */;
58 | proxyType = 2;
59 | remoteGlobalIDString = 134814201AA4EA6300B7C361;
60 | remoteInfo = RCTGeolocation;
61 | };
62 | 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */ = {
63 | isa = PBXContainerItemProxy;
64 | containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */;
65 | proxyType = 2;
66 | remoteGlobalIDString = 58B5115D1A9E6B3D00147676;
67 | remoteInfo = RCTImage;
68 | };
69 | 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */ = {
70 | isa = PBXContainerItemProxy;
71 | containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */;
72 | proxyType = 2;
73 | remoteGlobalIDString = 58B511DB1A9E6C8500147676;
74 | remoteInfo = RCTNetwork;
75 | };
76 | 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */ = {
77 | isa = PBXContainerItemProxy;
78 | containerPortal = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */;
79 | proxyType = 2;
80 | remoteGlobalIDString = 832C81801AAF6DEF007FA2F7;
81 | remoteInfo = RCTVibration;
82 | };
83 | 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = {
84 | isa = PBXContainerItemProxy;
85 | containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
86 | proxyType = 1;
87 | remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
88 | remoteInfo = reactNativeOpencvTutorial;
89 | };
90 | 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = {
91 | isa = PBXContainerItemProxy;
92 | containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */;
93 | proxyType = 2;
94 | remoteGlobalIDString = 134814201AA4EA6300B7C361;
95 | remoteInfo = RCTSettings;
96 | };
97 | 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */ = {
98 | isa = PBXContainerItemProxy;
99 | containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */;
100 | proxyType = 2;
101 | remoteGlobalIDString = 3C86DF461ADF2C930047B81A;
102 | remoteInfo = RCTWebSocket;
103 | };
104 | 146834031AC3E56700842450 /* PBXContainerItemProxy */ = {
105 | isa = PBXContainerItemProxy;
106 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
107 | proxyType = 2;
108 | remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192;
109 | remoteInfo = React;
110 | };
111 | 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = {
112 | isa = PBXContainerItemProxy;
113 | containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
114 | proxyType = 1;
115 | remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7;
116 | remoteInfo = "reactNativeOpencvTutorial-tvOS";
117 | };
118 | 2D16E6711FA4F8DC00B85C8A /* PBXContainerItemProxy */ = {
119 | isa = PBXContainerItemProxy;
120 | containerPortal = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */;
121 | proxyType = 2;
122 | remoteGlobalIDString = ADD01A681E09402E00F6D226;
123 | remoteInfo = "RCTBlob-tvOS";
124 | };
125 | 2D16E6831FA4F8DC00B85C8A /* PBXContainerItemProxy */ = {
126 | isa = PBXContainerItemProxy;
127 | containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */;
128 | proxyType = 2;
129 | remoteGlobalIDString = 3DBE0D001F3B181A0099AA32;
130 | remoteInfo = fishhook;
131 | };
132 | 2D16E6851FA4F8DC00B85C8A /* PBXContainerItemProxy */ = {
133 | isa = PBXContainerItemProxy;
134 | containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */;
135 | proxyType = 2;
136 | remoteGlobalIDString = 3DBE0D0D1F3B181C0099AA32;
137 | remoteInfo = "fishhook-tvOS";
138 | };
139 | 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */ = {
140 | isa = PBXContainerItemProxy;
141 | containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */;
142 | proxyType = 2;
143 | remoteGlobalIDString = 2D2A283A1D9B042B00D4039D;
144 | remoteInfo = "RCTImage-tvOS";
145 | };
146 | 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */ = {
147 | isa = PBXContainerItemProxy;
148 | containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */;
149 | proxyType = 2;
150 | remoteGlobalIDString = 2D2A28471D9B043800D4039D;
151 | remoteInfo = "RCTLinking-tvOS";
152 | };
153 | 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */ = {
154 | isa = PBXContainerItemProxy;
155 | containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */;
156 | proxyType = 2;
157 | remoteGlobalIDString = 2D2A28541D9B044C00D4039D;
158 | remoteInfo = "RCTNetwork-tvOS";
159 | };
160 | 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */ = {
161 | isa = PBXContainerItemProxy;
162 | containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */;
163 | proxyType = 2;
164 | remoteGlobalIDString = 2D2A28611D9B046600D4039D;
165 | remoteInfo = "RCTSettings-tvOS";
166 | };
167 | 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */ = {
168 | isa = PBXContainerItemProxy;
169 | containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */;
170 | proxyType = 2;
171 | remoteGlobalIDString = 2D2A287B1D9B048500D4039D;
172 | remoteInfo = "RCTText-tvOS";
173 | };
174 | 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */ = {
175 | isa = PBXContainerItemProxy;
176 | containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */;
177 | proxyType = 2;
178 | remoteGlobalIDString = 2D2A28881D9B049200D4039D;
179 | remoteInfo = "RCTWebSocket-tvOS";
180 | };
181 | 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */ = {
182 | isa = PBXContainerItemProxy;
183 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
184 | proxyType = 2;
185 | remoteGlobalIDString = 2D2A28131D9B038B00D4039D;
186 | remoteInfo = "React-tvOS";
187 | };
188 | 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */ = {
189 | isa = PBXContainerItemProxy;
190 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
191 | proxyType = 2;
192 | remoteGlobalIDString = 3D3C059A1DE3340900C268FA;
193 | remoteInfo = yoga;
194 | };
195 | 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */ = {
196 | isa = PBXContainerItemProxy;
197 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
198 | proxyType = 2;
199 | remoteGlobalIDString = 3D3C06751DE3340C00C268FA;
200 | remoteInfo = "yoga-tvOS";
201 | };
202 | 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */ = {
203 | isa = PBXContainerItemProxy;
204 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
205 | proxyType = 2;
206 | remoteGlobalIDString = 3D3CD9251DE5FBEC00167DC4;
207 | remoteInfo = cxxreact;
208 | };
209 | 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */ = {
210 | isa = PBXContainerItemProxy;
211 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
212 | proxyType = 2;
213 | remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4;
214 | remoteInfo = "cxxreact-tvOS";
215 | };
216 | 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */ = {
217 | isa = PBXContainerItemProxy;
218 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
219 | proxyType = 2;
220 | remoteGlobalIDString = 3D3CD90B1DE5FBD600167DC4;
221 | remoteInfo = jschelpers;
222 | };
223 | 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */ = {
224 | isa = PBXContainerItemProxy;
225 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
226 | proxyType = 2;
227 | remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4;
228 | remoteInfo = "jschelpers-tvOS";
229 | };
230 | 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = {
231 | isa = PBXContainerItemProxy;
232 | containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */;
233 | proxyType = 2;
234 | remoteGlobalIDString = 134814201AA4EA6300B7C361;
235 | remoteInfo = RCTAnimation;
236 | };
237 | 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = {
238 | isa = PBXContainerItemProxy;
239 | containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */;
240 | proxyType = 2;
241 | remoteGlobalIDString = 2D2A28201D9B03D100D4039D;
242 | remoteInfo = "RCTAnimation-tvOS";
243 | };
244 | 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = {
245 | isa = PBXContainerItemProxy;
246 | containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */;
247 | proxyType = 2;
248 | remoteGlobalIDString = 134814201AA4EA6300B7C361;
249 | remoteInfo = RCTLinking;
250 | };
251 | 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */ = {
252 | isa = PBXContainerItemProxy;
253 | containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */;
254 | proxyType = 2;
255 | remoteGlobalIDString = 58B5119B1A9E6C1200147676;
256 | remoteInfo = RCTText;
257 | };
258 | 967858A7206135D5007C6F7B /* PBXContainerItemProxy */ = {
259 | isa = PBXContainerItemProxy;
260 | containerPortal = F973475E18A04E29B32B8A89 /* RNCamera.xcodeproj */;
261 | proxyType = 2;
262 | remoteGlobalIDString = 4107012F1ACB723B00C6AA39;
263 | remoteInfo = RNCamera;
264 | };
265 | 967858AB206135D5007C6F7B /* PBXContainerItemProxy */ = {
266 | isa = PBXContainerItemProxy;
267 | containerPortal = 0AE8726CAEC54186A0100D6F /* RNFS.xcodeproj */;
268 | proxyType = 2;
269 | remoteGlobalIDString = F12AFB9B1ADAF8F800E0535D;
270 | remoteInfo = RNFS;
271 | };
272 | 967858AD206135D5007C6F7B /* PBXContainerItemProxy */ = {
273 | isa = PBXContainerItemProxy;
274 | containerPortal = 0AE8726CAEC54186A0100D6F /* RNFS.xcodeproj */;
275 | proxyType = 2;
276 | remoteGlobalIDString = 6456441F1EB8DA9100672408;
277 | remoteInfo = "RNFS-tvOS";
278 | };
279 | 967858E920613C81007C6F7B /* PBXContainerItemProxy */ = {
280 | isa = PBXContainerItemProxy;
281 | containerPortal = C604EB78A050494DAEEE8297 /* RNSVG.xcodeproj */;
282 | proxyType = 2;
283 | remoteGlobalIDString = 0CF68AC11AF0540F00FF9E5C;
284 | remoteInfo = RNSVG;
285 | };
286 | 967858EB20613C81007C6F7B /* PBXContainerItemProxy */ = {
287 | isa = PBXContainerItemProxy;
288 | containerPortal = C604EB78A050494DAEEE8297 /* RNSVG.xcodeproj */;
289 | proxyType = 2;
290 | remoteGlobalIDString = 94DDAC5C1F3D024300EED511;
291 | remoteInfo = "RNSVG-tvOS";
292 | };
293 | 969D3BCE205FDD8E00D0FF11 /* PBXContainerItemProxy */ = {
294 | isa = PBXContainerItemProxy;
295 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
296 | proxyType = 2;
297 | remoteGlobalIDString = EBF21BDC1FC498900052F4D5;
298 | remoteInfo = jsinspector;
299 | };
300 | 969D3BD0205FDD8E00D0FF11 /* PBXContainerItemProxy */ = {
301 | isa = PBXContainerItemProxy;
302 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
303 | proxyType = 2;
304 | remoteGlobalIDString = EBF21BFA1FC4989A0052F4D5;
305 | remoteInfo = "jsinspector-tvOS";
306 | };
307 | 969D3BD2205FDD8E00D0FF11 /* PBXContainerItemProxy */ = {
308 | isa = PBXContainerItemProxy;
309 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
310 | proxyType = 2;
311 | remoteGlobalIDString = 139D7ECE1E25DB7D00323FB7;
312 | remoteInfo = "third-party";
313 | };
314 | 969D3BD4205FDD8E00D0FF11 /* PBXContainerItemProxy */ = {
315 | isa = PBXContainerItemProxy;
316 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
317 | proxyType = 2;
318 | remoteGlobalIDString = 3D383D3C1EBD27B6005632C8;
319 | remoteInfo = "third-party-tvOS";
320 | };
321 | 969D3BD6205FDD8E00D0FF11 /* PBXContainerItemProxy */ = {
322 | isa = PBXContainerItemProxy;
323 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
324 | proxyType = 2;
325 | remoteGlobalIDString = 139D7E881E25C6D100323FB7;
326 | remoteInfo = "double-conversion";
327 | };
328 | 969D3BD8205FDD8E00D0FF11 /* PBXContainerItemProxy */ = {
329 | isa = PBXContainerItemProxy;
330 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
331 | proxyType = 2;
332 | remoteGlobalIDString = 3D383D621EBD27B9005632C8;
333 | remoteInfo = "double-conversion-tvOS";
334 | };
335 | 969D3BDA205FDD8E00D0FF11 /* PBXContainerItemProxy */ = {
336 | isa = PBXContainerItemProxy;
337 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
338 | proxyType = 2;
339 | remoteGlobalIDString = 9936F3131F5F2E4B0010BF04;
340 | remoteInfo = privatedata;
341 | };
342 | 969D3BDC205FDD8E00D0FF11 /* PBXContainerItemProxy */ = {
343 | isa = PBXContainerItemProxy;
344 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
345 | proxyType = 2;
346 | remoteGlobalIDString = 9936F32F1F5F2E5B0010BF04;
347 | remoteInfo = "privatedata-tvOS";
348 | };
349 | ADBDB9261DFEBF0700ED6528 /* PBXContainerItemProxy */ = {
350 | isa = PBXContainerItemProxy;
351 | containerPortal = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */;
352 | proxyType = 2;
353 | remoteGlobalIDString = 358F4ED71D1E81A9004DF814;
354 | remoteInfo = RCTBlob;
355 | };
356 | /* End PBXContainerItemProxy section */
357 |
358 | /* Begin PBXFileReference section */
359 | 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; };
360 | 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = ""; };
361 | 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = ""; };
362 | 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = ""; };
363 | 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = ""; };
364 | 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = ""; };
365 | 00E356EE1AD99517003FC87E /* reactNativeOpencvTutorialTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = reactNativeOpencvTutorialTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
366 | 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
367 | 00E356F21AD99517003FC87E /* reactNativeOpencvTutorialTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = reactNativeOpencvTutorialTests.m; sourceTree = ""; };
368 | 0AE8726CAEC54186A0100D6F /* RNFS.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNFS.xcodeproj; path = "../node_modules/react-native-fs/RNFS.xcodeproj"; sourceTree = ""; };
369 | 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; };
370 | 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; };
371 | 13B07F961A680F5B00A75B9A /* reactNativeOpencvTutorial.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = reactNativeOpencvTutorial.app; sourceTree = BUILT_PRODUCTS_DIR; };
372 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = reactNativeOpencvTutorial/AppDelegate.h; sourceTree = ""; };
373 | 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = reactNativeOpencvTutorial/AppDelegate.m; sourceTree = ""; };
374 | 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; };
375 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = reactNativeOpencvTutorial/Images.xcassets; sourceTree = ""; };
376 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = reactNativeOpencvTutorial/Info.plist; sourceTree = ""; };
377 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = reactNativeOpencvTutorial/main.m; sourceTree = ""; };
378 | 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; };
379 | 2B106B74F433405881714EE4 /* libRNSVG-tvOS.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = "libRNSVG-tvOS.a"; sourceTree = ""; };
380 | 2D02E47B1E0B4A5D006451C7 /* reactNativeOpencvTutorial-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "reactNativeOpencvTutorial-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
381 | 2D02E4901E0B4A5D006451C7 /* reactNativeOpencvTutorial-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "reactNativeOpencvTutorial-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
382 | 2D16E6891FA4F8E400B85C8A /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; };
383 | 532FB82852194026BF47AD70 /* libRNCamera.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNCamera.a; sourceTree = ""; };
384 | 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = ""; };
385 | 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; };
386 | 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; };
387 | 96785848206005B5007C6F7B /* RNOpenCvLibrary.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNOpenCvLibrary.h; sourceTree = ""; };
388 | 9678586E206005DC007C6F7B /* RNOpenCvLibrary.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = RNOpenCvLibrary.mm; sourceTree = ""; };
389 | 969D3BDE205FDDD300D0FF11 /* opencv2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = opencv2.framework; sourceTree = ""; };
390 | 969D3BE1205FDEB700D0FF11 /* PrefixHeader.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PrefixHeader.pch; sourceTree = ""; };
391 | ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = ""; };
392 | C604EB78A050494DAEEE8297 /* RNSVG.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNSVG.xcodeproj; path = "../node_modules/react-native-svg/ios/RNSVG.xcodeproj"; sourceTree = ""; };
393 | D11D4FFC1A1F45358A8AC394 /* libRNFS.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNFS.a; sourceTree = ""; };
394 | EC2D1C1540B64D3AA5C7B950 /* libRNSVG.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNSVG.a; sourceTree = ""; };
395 | F973475E18A04E29B32B8A89 /* RNCamera.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNCamera.xcodeproj; path = "../node_modules/react-native-camera/ios/RNCamera.xcodeproj"; sourceTree = ""; };
396 | /* End PBXFileReference section */
397 |
398 | /* Begin PBXFrameworksBuildPhase section */
399 | 00E356EB1AD99517003FC87E /* Frameworks */ = {
400 | isa = PBXFrameworksBuildPhase;
401 | buildActionMask = 2147483647;
402 | files = (
403 | 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */,
404 | );
405 | runOnlyForDeploymentPostprocessing = 0;
406 | };
407 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
408 | isa = PBXFrameworksBuildPhase;
409 | buildActionMask = 2147483647;
410 | files = (
411 | 969D3BDF205FDDD300D0FF11 /* opencv2.framework in Frameworks */,
412 | ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */,
413 | 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */,
414 | 146834051AC3E58100842450 /* libReact.a in Frameworks */,
415 | 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */,
416 | 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */,
417 | 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */,
418 | 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */,
419 | 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */,
420 | 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */,
421 | 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */,
422 | 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */,
423 | 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
424 | 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
425 | C5778260D21A410599CD61A1 /* libRNCamera.a in Frameworks */,
426 | AF720D3753BC4DDD899C2629 /* libRNSVG.a in Frameworks */,
427 | );
428 | runOnlyForDeploymentPostprocessing = 0;
429 | };
430 | 2D02E4781E0B4A5D006451C7 /* Frameworks */ = {
431 | isa = PBXFrameworksBuildPhase;
432 | buildActionMask = 2147483647;
433 | files = (
434 | 2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */,
435 | 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation.a in Frameworks */,
436 | 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */,
437 | 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */,
438 | 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */,
439 | 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */,
440 | 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */,
441 | 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */,
442 | E8311E56842E4138A3D8B164 /* libRNSVG-tvOS.a in Frameworks */,
443 | );
444 | runOnlyForDeploymentPostprocessing = 0;
445 | };
446 | 2D02E48D1E0B4A5D006451C7 /* Frameworks */ = {
447 | isa = PBXFrameworksBuildPhase;
448 | buildActionMask = 2147483647;
449 | files = (
450 | );
451 | runOnlyForDeploymentPostprocessing = 0;
452 | };
453 | /* End PBXFrameworksBuildPhase section */
454 |
455 | /* Begin PBXGroup section */
456 | 00C302A81ABCB8CE00DB3ED1 /* Products */ = {
457 | isa = PBXGroup;
458 | children = (
459 | 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */,
460 | );
461 | name = Products;
462 | sourceTree = "";
463 | };
464 | 00C302B61ABCB90400DB3ED1 /* Products */ = {
465 | isa = PBXGroup;
466 | children = (
467 | 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */,
468 | );
469 | name = Products;
470 | sourceTree = "";
471 | };
472 | 00C302BC1ABCB91800DB3ED1 /* Products */ = {
473 | isa = PBXGroup;
474 | children = (
475 | 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */,
476 | 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */,
477 | );
478 | name = Products;
479 | sourceTree = "";
480 | };
481 | 00C302D41ABCB9D200DB3ED1 /* Products */ = {
482 | isa = PBXGroup;
483 | children = (
484 | 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */,
485 | 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */,
486 | );
487 | name = Products;
488 | sourceTree = "";
489 | };
490 | 00C302E01ABCB9EE00DB3ED1 /* Products */ = {
491 | isa = PBXGroup;
492 | children = (
493 | 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */,
494 | );
495 | name = Products;
496 | sourceTree = "";
497 | };
498 | 00E356EF1AD99517003FC87E /* reactNativeOpencvTutorialTests */ = {
499 | isa = PBXGroup;
500 | children = (
501 | 00E356F21AD99517003FC87E /* reactNativeOpencvTutorialTests.m */,
502 | 00E356F01AD99517003FC87E /* Supporting Files */,
503 | );
504 | path = reactNativeOpencvTutorialTests;
505 | sourceTree = "";
506 | };
507 | 00E356F01AD99517003FC87E /* Supporting Files */ = {
508 | isa = PBXGroup;
509 | children = (
510 | 00E356F11AD99517003FC87E /* Info.plist */,
511 | );
512 | name = "Supporting Files";
513 | sourceTree = "";
514 | };
515 | 139105B71AF99BAD00B5F7CC /* Products */ = {
516 | isa = PBXGroup;
517 | children = (
518 | 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */,
519 | 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */,
520 | );
521 | name = Products;
522 | sourceTree = "";
523 | };
524 | 139FDEE71B06529A00C62182 /* Products */ = {
525 | isa = PBXGroup;
526 | children = (
527 | 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */,
528 | 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */,
529 | 2D16E6841FA4F8DC00B85C8A /* libfishhook.a */,
530 | 2D16E6861FA4F8DC00B85C8A /* libfishhook-tvOS.a */,
531 | );
532 | name = Products;
533 | sourceTree = "";
534 | };
535 | 13B07FAE1A68108700A75B9A /* reactNativeOpencvTutorial */ = {
536 | isa = PBXGroup;
537 | children = (
538 | 008F07F21AC5B25A0029DE68 /* main.jsbundle */,
539 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */,
540 | 13B07FB01A68108700A75B9A /* AppDelegate.m */,
541 | 13B07FB51A68108700A75B9A /* Images.xcassets */,
542 | 13B07FB61A68108700A75B9A /* Info.plist */,
543 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */,
544 | 13B07FB71A68108700A75B9A /* main.m */,
545 | );
546 | name = reactNativeOpencvTutorial;
547 | sourceTree = "";
548 | };
549 | 146834001AC3E56700842450 /* Products */ = {
550 | isa = PBXGroup;
551 | children = (
552 | 146834041AC3E56700842450 /* libReact.a */,
553 | 3DAD3EA31DF850E9000B6D8A /* libReact.a */,
554 | 3DAD3EA51DF850E9000B6D8A /* libyoga.a */,
555 | 3DAD3EA71DF850E9000B6D8A /* libyoga.a */,
556 | 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */,
557 | 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */,
558 | 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */,
559 | 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */,
560 | 969D3BCF205FDD8E00D0FF11 /* libjsinspector.a */,
561 | 969D3BD1205FDD8E00D0FF11 /* libjsinspector-tvOS.a */,
562 | 969D3BD3205FDD8E00D0FF11 /* libthird-party.a */,
563 | 969D3BD5205FDD8E00D0FF11 /* libthird-party.a */,
564 | 969D3BD7205FDD8E00D0FF11 /* libdouble-conversion.a */,
565 | 969D3BD9205FDD8E00D0FF11 /* libdouble-conversion.a */,
566 | 969D3BDB205FDD8E00D0FF11 /* libprivatedata.a */,
567 | 969D3BDD205FDD8E00D0FF11 /* libprivatedata-tvOS.a */,
568 | );
569 | name = Products;
570 | sourceTree = "";
571 | };
572 | 2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
573 | isa = PBXGroup;
574 | children = (
575 | 969D3BDE205FDDD300D0FF11 /* opencv2.framework */,
576 | 2D16E6891FA4F8E400B85C8A /* libReact.a */,
577 | );
578 | name = Frameworks;
579 | sourceTree = "";
580 | };
581 | 5E91572E1DD0AC6500FF2AA8 /* Products */ = {
582 | isa = PBXGroup;
583 | children = (
584 | 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */,
585 | 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */,
586 | );
587 | name = Products;
588 | sourceTree = "";
589 | };
590 | 78C398B11ACF4ADC00677621 /* Products */ = {
591 | isa = PBXGroup;
592 | children = (
593 | 78C398B91ACF4ADC00677621 /* libRCTLinking.a */,
594 | 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */,
595 | );
596 | name = Products;
597 | sourceTree = "";
598 | };
599 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = {
600 | isa = PBXGroup;
601 | children = (
602 | 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */,
603 | 146833FF1AC3E56700842450 /* React.xcodeproj */,
604 | 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */,
605 | ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */,
606 | 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */,
607 | 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */,
608 | 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */,
609 | 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */,
610 | 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */,
611 | 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */,
612 | 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
613 | 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
614 | F973475E18A04E29B32B8A89 /* RNCamera.xcodeproj */,
615 | 0AE8726CAEC54186A0100D6F /* RNFS.xcodeproj */,
616 | C604EB78A050494DAEEE8297 /* RNSVG.xcodeproj */,
617 | );
618 | name = Libraries;
619 | sourceTree = "";
620 | };
621 | 832341B11AAA6A8300B99B32 /* Products */ = {
622 | isa = PBXGroup;
623 | children = (
624 | 832341B51AAA6A8300B99B32 /* libRCTText.a */,
625 | 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */,
626 | );
627 | name = Products;
628 | sourceTree = "";
629 | };
630 | 83CBB9F61A601CBA00E9B192 = {
631 | isa = PBXGroup;
632 | children = (
633 | 969D3BE0205FDE6E00D0FF11 /* OpenCV */,
634 | 13B07FAE1A68108700A75B9A /* reactNativeOpencvTutorial */,
635 | 832341AE1AAA6A7D00B99B32 /* Libraries */,
636 | 00E356EF1AD99517003FC87E /* reactNativeOpencvTutorialTests */,
637 | 83CBBA001A601CBA00E9B192 /* Products */,
638 | 2D16E6871FA4F8E400B85C8A /* Frameworks */,
639 | 9678587C206135D4007C6F7B /* Recovered References */,
640 | );
641 | indentWidth = 2;
642 | sourceTree = "";
643 | tabWidth = 2;
644 | usesTabs = 0;
645 | };
646 | 83CBBA001A601CBA00E9B192 /* Products */ = {
647 | isa = PBXGroup;
648 | children = (
649 | 13B07F961A680F5B00A75B9A /* reactNativeOpencvTutorial.app */,
650 | 00E356EE1AD99517003FC87E /* reactNativeOpencvTutorialTests.xctest */,
651 | 2D02E47B1E0B4A5D006451C7 /* reactNativeOpencvTutorial-tvOS.app */,
652 | 2D02E4901E0B4A5D006451C7 /* reactNativeOpencvTutorial-tvOSTests.xctest */,
653 | );
654 | name = Products;
655 | sourceTree = "";
656 | };
657 | 9678587C206135D4007C6F7B /* Recovered References */ = {
658 | isa = PBXGroup;
659 | children = (
660 | 532FB82852194026BF47AD70 /* libRNCamera.a */,
661 | D11D4FFC1A1F45358A8AC394 /* libRNFS.a */,
662 | EC2D1C1540B64D3AA5C7B950 /* libRNSVG.a */,
663 | 2B106B74F433405881714EE4 /* libRNSVG-tvOS.a */,
664 | );
665 | name = "Recovered References";
666 | sourceTree = "";
667 | };
668 | 967858A2206135D5007C6F7B /* Products */ = {
669 | isa = PBXGroup;
670 | children = (
671 | 967858A8206135D5007C6F7B /* libRNCamera.a */,
672 | );
673 | name = Products;
674 | sourceTree = "";
675 | };
676 | 967858A4206135D5007C6F7B /* Products */ = {
677 | isa = PBXGroup;
678 | children = (
679 | 967858AC206135D5007C6F7B /* libRNFS.a */,
680 | 967858AE206135D5007C6F7B /* libRNFS.a */,
681 | );
682 | name = Products;
683 | sourceTree = "";
684 | };
685 | 967858E520613C81007C6F7B /* Products */ = {
686 | isa = PBXGroup;
687 | children = (
688 | 967858EA20613C81007C6F7B /* libRNSVG.a */,
689 | 967858EC20613C81007C6F7B /* libRNSVG-tvOS.a */,
690 | );
691 | name = Products;
692 | sourceTree = "";
693 | };
694 | 969D3BE0205FDE6E00D0FF11 /* OpenCV */ = {
695 | isa = PBXGroup;
696 | children = (
697 | 969D3BE1205FDEB700D0FF11 /* PrefixHeader.pch */,
698 | 96785848206005B5007C6F7B /* RNOpenCvLibrary.h */,
699 | 9678586E206005DC007C6F7B /* RNOpenCvLibrary.mm */,
700 | );
701 | path = OpenCV;
702 | sourceTree = "";
703 | };
704 | ADBDB9201DFEBF0600ED6528 /* Products */ = {
705 | isa = PBXGroup;
706 | children = (
707 | ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */,
708 | 2D16E6721FA4F8DC00B85C8A /* libRCTBlob-tvOS.a */,
709 | );
710 | name = Products;
711 | sourceTree = "";
712 | };
713 | /* End PBXGroup section */
714 |
715 | /* Begin PBXNativeTarget section */
716 | 00E356ED1AD99517003FC87E /* reactNativeOpencvTutorialTests */ = {
717 | isa = PBXNativeTarget;
718 | buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "reactNativeOpencvTutorialTests" */;
719 | buildPhases = (
720 | 00E356EA1AD99517003FC87E /* Sources */,
721 | 00E356EB1AD99517003FC87E /* Frameworks */,
722 | 00E356EC1AD99517003FC87E /* Resources */,
723 | );
724 | buildRules = (
725 | );
726 | dependencies = (
727 | 00E356F51AD99517003FC87E /* PBXTargetDependency */,
728 | );
729 | name = reactNativeOpencvTutorialTests;
730 | productName = reactNativeOpencvTutorialTests;
731 | productReference = 00E356EE1AD99517003FC87E /* reactNativeOpencvTutorialTests.xctest */;
732 | productType = "com.apple.product-type.bundle.unit-test";
733 | };
734 | 13B07F861A680F5B00A75B9A /* reactNativeOpencvTutorial */ = {
735 | isa = PBXNativeTarget;
736 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "reactNativeOpencvTutorial" */;
737 | buildPhases = (
738 | 13B07F871A680F5B00A75B9A /* Sources */,
739 | 13B07F8C1A680F5B00A75B9A /* Frameworks */,
740 | 13B07F8E1A680F5B00A75B9A /* Resources */,
741 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
742 | );
743 | buildRules = (
744 | );
745 | dependencies = (
746 | );
747 | name = reactNativeOpencvTutorial;
748 | productName = "Hello World";
749 | productReference = 13B07F961A680F5B00A75B9A /* reactNativeOpencvTutorial.app */;
750 | productType = "com.apple.product-type.application";
751 | };
752 | 2D02E47A1E0B4A5D006451C7 /* reactNativeOpencvTutorial-tvOS */ = {
753 | isa = PBXNativeTarget;
754 | buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "reactNativeOpencvTutorial-tvOS" */;
755 | buildPhases = (
756 | 2D02E4771E0B4A5D006451C7 /* Sources */,
757 | 2D02E4781E0B4A5D006451C7 /* Frameworks */,
758 | 2D02E4791E0B4A5D006451C7 /* Resources */,
759 | 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */,
760 | );
761 | buildRules = (
762 | );
763 | dependencies = (
764 | );
765 | name = "reactNativeOpencvTutorial-tvOS";
766 | productName = "reactNativeOpencvTutorial-tvOS";
767 | productReference = 2D02E47B1E0B4A5D006451C7 /* reactNativeOpencvTutorial-tvOS.app */;
768 | productType = "com.apple.product-type.application";
769 | };
770 | 2D02E48F1E0B4A5D006451C7 /* reactNativeOpencvTutorial-tvOSTests */ = {
771 | isa = PBXNativeTarget;
772 | buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "reactNativeOpencvTutorial-tvOSTests" */;
773 | buildPhases = (
774 | 2D02E48C1E0B4A5D006451C7 /* Sources */,
775 | 2D02E48D1E0B4A5D006451C7 /* Frameworks */,
776 | 2D02E48E1E0B4A5D006451C7 /* Resources */,
777 | );
778 | buildRules = (
779 | );
780 | dependencies = (
781 | 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */,
782 | );
783 | name = "reactNativeOpencvTutorial-tvOSTests";
784 | productName = "reactNativeOpencvTutorial-tvOSTests";
785 | productReference = 2D02E4901E0B4A5D006451C7 /* reactNativeOpencvTutorial-tvOSTests.xctest */;
786 | productType = "com.apple.product-type.bundle.unit-test";
787 | };
788 | /* End PBXNativeTarget section */
789 |
790 | /* Begin PBXProject section */
791 | 83CBB9F71A601CBA00E9B192 /* Project object */ = {
792 | isa = PBXProject;
793 | attributes = {
794 | LastUpgradeCheck = 610;
795 | ORGANIZATIONNAME = Facebook;
796 | TargetAttributes = {
797 | 00E356ED1AD99517003FC87E = {
798 | CreatedOnToolsVersion = 6.2;
799 | TestTargetID = 13B07F861A680F5B00A75B9A;
800 | };
801 | 13B07F861A680F5B00A75B9A = {
802 | DevelopmentTeam = W7ZYY3P2YY;
803 | };
804 | 2D02E47A1E0B4A5D006451C7 = {
805 | CreatedOnToolsVersion = 8.2.1;
806 | ProvisioningStyle = Automatic;
807 | };
808 | 2D02E48F1E0B4A5D006451C7 = {
809 | CreatedOnToolsVersion = 8.2.1;
810 | ProvisioningStyle = Automatic;
811 | TestTargetID = 2D02E47A1E0B4A5D006451C7;
812 | };
813 | };
814 | };
815 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "reactNativeOpencvTutorial" */;
816 | compatibilityVersion = "Xcode 3.2";
817 | developmentRegion = English;
818 | hasScannedForEncodings = 0;
819 | knownRegions = (
820 | en,
821 | Base,
822 | );
823 | mainGroup = 83CBB9F61A601CBA00E9B192;
824 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
825 | projectDirPath = "";
826 | projectReferences = (
827 | {
828 | ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */;
829 | ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */;
830 | },
831 | {
832 | ProductGroup = 5E91572E1DD0AC6500FF2AA8 /* Products */;
833 | ProjectRef = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */;
834 | },
835 | {
836 | ProductGroup = ADBDB9201DFEBF0600ED6528 /* Products */;
837 | ProjectRef = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */;
838 | },
839 | {
840 | ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */;
841 | ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */;
842 | },
843 | {
844 | ProductGroup = 00C302BC1ABCB91800DB3ED1 /* Products */;
845 | ProjectRef = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */;
846 | },
847 | {
848 | ProductGroup = 78C398B11ACF4ADC00677621 /* Products */;
849 | ProjectRef = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */;
850 | },
851 | {
852 | ProductGroup = 00C302D41ABCB9D200DB3ED1 /* Products */;
853 | ProjectRef = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */;
854 | },
855 | {
856 | ProductGroup = 139105B71AF99BAD00B5F7CC /* Products */;
857 | ProjectRef = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */;
858 | },
859 | {
860 | ProductGroup = 832341B11AAA6A8300B99B32 /* Products */;
861 | ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */;
862 | },
863 | {
864 | ProductGroup = 00C302E01ABCB9EE00DB3ED1 /* Products */;
865 | ProjectRef = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */;
866 | },
867 | {
868 | ProductGroup = 139FDEE71B06529A00C62182 /* Products */;
869 | ProjectRef = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */;
870 | },
871 | {
872 | ProductGroup = 146834001AC3E56700842450 /* Products */;
873 | ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */;
874 | },
875 | {
876 | ProductGroup = 967858A2206135D5007C6F7B /* Products */;
877 | ProjectRef = F973475E18A04E29B32B8A89 /* RNCamera.xcodeproj */;
878 | },
879 | {
880 | ProductGroup = 967858A4206135D5007C6F7B /* Products */;
881 | ProjectRef = 0AE8726CAEC54186A0100D6F /* RNFS.xcodeproj */;
882 | },
883 | {
884 | ProductGroup = 967858E520613C81007C6F7B /* Products */;
885 | ProjectRef = C604EB78A050494DAEEE8297 /* RNSVG.xcodeproj */;
886 | },
887 | );
888 | projectRoot = "";
889 | targets = (
890 | 13B07F861A680F5B00A75B9A /* reactNativeOpencvTutorial */,
891 | 00E356ED1AD99517003FC87E /* reactNativeOpencvTutorialTests */,
892 | 2D02E47A1E0B4A5D006451C7 /* reactNativeOpencvTutorial-tvOS */,
893 | 2D02E48F1E0B4A5D006451C7 /* reactNativeOpencvTutorial-tvOSTests */,
894 | );
895 | };
896 | /* End PBXProject section */
897 |
898 | /* Begin PBXReferenceProxy section */
899 | 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */ = {
900 | isa = PBXReferenceProxy;
901 | fileType = archive.ar;
902 | path = libRCTActionSheet.a;
903 | remoteRef = 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */;
904 | sourceTree = BUILT_PRODUCTS_DIR;
905 | };
906 | 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */ = {
907 | isa = PBXReferenceProxy;
908 | fileType = archive.ar;
909 | path = libRCTGeolocation.a;
910 | remoteRef = 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */;
911 | sourceTree = BUILT_PRODUCTS_DIR;
912 | };
913 | 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */ = {
914 | isa = PBXReferenceProxy;
915 | fileType = archive.ar;
916 | path = libRCTImage.a;
917 | remoteRef = 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */;
918 | sourceTree = BUILT_PRODUCTS_DIR;
919 | };
920 | 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */ = {
921 | isa = PBXReferenceProxy;
922 | fileType = archive.ar;
923 | path = libRCTNetwork.a;
924 | remoteRef = 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */;
925 | sourceTree = BUILT_PRODUCTS_DIR;
926 | };
927 | 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */ = {
928 | isa = PBXReferenceProxy;
929 | fileType = archive.ar;
930 | path = libRCTVibration.a;
931 | remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */;
932 | sourceTree = BUILT_PRODUCTS_DIR;
933 | };
934 | 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = {
935 | isa = PBXReferenceProxy;
936 | fileType = archive.ar;
937 | path = libRCTSettings.a;
938 | remoteRef = 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */;
939 | sourceTree = BUILT_PRODUCTS_DIR;
940 | };
941 | 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */ = {
942 | isa = PBXReferenceProxy;
943 | fileType = archive.ar;
944 | path = libRCTWebSocket.a;
945 | remoteRef = 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */;
946 | sourceTree = BUILT_PRODUCTS_DIR;
947 | };
948 | 146834041AC3E56700842450 /* libReact.a */ = {
949 | isa = PBXReferenceProxy;
950 | fileType = archive.ar;
951 | path = libReact.a;
952 | remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */;
953 | sourceTree = BUILT_PRODUCTS_DIR;
954 | };
955 | 2D16E6721FA4F8DC00B85C8A /* libRCTBlob-tvOS.a */ = {
956 | isa = PBXReferenceProxy;
957 | fileType = archive.ar;
958 | path = "libRCTBlob-tvOS.a";
959 | remoteRef = 2D16E6711FA4F8DC00B85C8A /* PBXContainerItemProxy */;
960 | sourceTree = BUILT_PRODUCTS_DIR;
961 | };
962 | 2D16E6841FA4F8DC00B85C8A /* libfishhook.a */ = {
963 | isa = PBXReferenceProxy;
964 | fileType = archive.ar;
965 | path = libfishhook.a;
966 | remoteRef = 2D16E6831FA4F8DC00B85C8A /* PBXContainerItemProxy */;
967 | sourceTree = BUILT_PRODUCTS_DIR;
968 | };
969 | 2D16E6861FA4F8DC00B85C8A /* libfishhook-tvOS.a */ = {
970 | isa = PBXReferenceProxy;
971 | fileType = archive.ar;
972 | path = "libfishhook-tvOS.a";
973 | remoteRef = 2D16E6851FA4F8DC00B85C8A /* PBXContainerItemProxy */;
974 | sourceTree = BUILT_PRODUCTS_DIR;
975 | };
976 | 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */ = {
977 | isa = PBXReferenceProxy;
978 | fileType = archive.ar;
979 | path = "libRCTImage-tvOS.a";
980 | remoteRef = 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */;
981 | sourceTree = BUILT_PRODUCTS_DIR;
982 | };
983 | 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */ = {
984 | isa = PBXReferenceProxy;
985 | fileType = archive.ar;
986 | path = "libRCTLinking-tvOS.a";
987 | remoteRef = 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */;
988 | sourceTree = BUILT_PRODUCTS_DIR;
989 | };
990 | 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */ = {
991 | isa = PBXReferenceProxy;
992 | fileType = archive.ar;
993 | path = "libRCTNetwork-tvOS.a";
994 | remoteRef = 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */;
995 | sourceTree = BUILT_PRODUCTS_DIR;
996 | };
997 | 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */ = {
998 | isa = PBXReferenceProxy;
999 | fileType = archive.ar;
1000 | path = "libRCTSettings-tvOS.a";
1001 | remoteRef = 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */;
1002 | sourceTree = BUILT_PRODUCTS_DIR;
1003 | };
1004 | 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */ = {
1005 | isa = PBXReferenceProxy;
1006 | fileType = archive.ar;
1007 | path = "libRCTText-tvOS.a";
1008 | remoteRef = 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */;
1009 | sourceTree = BUILT_PRODUCTS_DIR;
1010 | };
1011 | 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */ = {
1012 | isa = PBXReferenceProxy;
1013 | fileType = archive.ar;
1014 | path = "libRCTWebSocket-tvOS.a";
1015 | remoteRef = 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */;
1016 | sourceTree = BUILT_PRODUCTS_DIR;
1017 | };
1018 | 3DAD3EA31DF850E9000B6D8A /* libReact.a */ = {
1019 | isa = PBXReferenceProxy;
1020 | fileType = archive.ar;
1021 | path = libReact.a;
1022 | remoteRef = 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */;
1023 | sourceTree = BUILT_PRODUCTS_DIR;
1024 | };
1025 | 3DAD3EA51DF850E9000B6D8A /* libyoga.a */ = {
1026 | isa = PBXReferenceProxy;
1027 | fileType = archive.ar;
1028 | path = libyoga.a;
1029 | remoteRef = 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */;
1030 | sourceTree = BUILT_PRODUCTS_DIR;
1031 | };
1032 | 3DAD3EA71DF850E9000B6D8A /* libyoga.a */ = {
1033 | isa = PBXReferenceProxy;
1034 | fileType = archive.ar;
1035 | path = libyoga.a;
1036 | remoteRef = 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */;
1037 | sourceTree = BUILT_PRODUCTS_DIR;
1038 | };
1039 | 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */ = {
1040 | isa = PBXReferenceProxy;
1041 | fileType = archive.ar;
1042 | path = libcxxreact.a;
1043 | remoteRef = 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */;
1044 | sourceTree = BUILT_PRODUCTS_DIR;
1045 | };
1046 | 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */ = {
1047 | isa = PBXReferenceProxy;
1048 | fileType = archive.ar;
1049 | path = libcxxreact.a;
1050 | remoteRef = 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */;
1051 | sourceTree = BUILT_PRODUCTS_DIR;
1052 | };
1053 | 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */ = {
1054 | isa = PBXReferenceProxy;
1055 | fileType = archive.ar;
1056 | path = libjschelpers.a;
1057 | remoteRef = 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */;
1058 | sourceTree = BUILT_PRODUCTS_DIR;
1059 | };
1060 | 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */ = {
1061 | isa = PBXReferenceProxy;
1062 | fileType = archive.ar;
1063 | path = libjschelpers.a;
1064 | remoteRef = 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */;
1065 | sourceTree = BUILT_PRODUCTS_DIR;
1066 | };
1067 | 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = {
1068 | isa = PBXReferenceProxy;
1069 | fileType = archive.ar;
1070 | path = libRCTAnimation.a;
1071 | remoteRef = 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */;
1072 | sourceTree = BUILT_PRODUCTS_DIR;
1073 | };
1074 | 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */ = {
1075 | isa = PBXReferenceProxy;
1076 | fileType = archive.ar;
1077 | path = libRCTAnimation.a;
1078 | remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */;
1079 | sourceTree = BUILT_PRODUCTS_DIR;
1080 | };
1081 | 78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = {
1082 | isa = PBXReferenceProxy;
1083 | fileType = archive.ar;
1084 | path = libRCTLinking.a;
1085 | remoteRef = 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */;
1086 | sourceTree = BUILT_PRODUCTS_DIR;
1087 | };
1088 | 832341B51AAA6A8300B99B32 /* libRCTText.a */ = {
1089 | isa = PBXReferenceProxy;
1090 | fileType = archive.ar;
1091 | path = libRCTText.a;
1092 | remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */;
1093 | sourceTree = BUILT_PRODUCTS_DIR;
1094 | };
1095 | 967858A8206135D5007C6F7B /* libRNCamera.a */ = {
1096 | isa = PBXReferenceProxy;
1097 | fileType = archive.ar;
1098 | path = libRNCamera.a;
1099 | remoteRef = 967858A7206135D5007C6F7B /* PBXContainerItemProxy */;
1100 | sourceTree = BUILT_PRODUCTS_DIR;
1101 | };
1102 | 967858AC206135D5007C6F7B /* libRNFS.a */ = {
1103 | isa = PBXReferenceProxy;
1104 | fileType = archive.ar;
1105 | path = libRNFS.a;
1106 | remoteRef = 967858AB206135D5007C6F7B /* PBXContainerItemProxy */;
1107 | sourceTree = BUILT_PRODUCTS_DIR;
1108 | };
1109 | 967858AE206135D5007C6F7B /* libRNFS.a */ = {
1110 | isa = PBXReferenceProxy;
1111 | fileType = archive.ar;
1112 | path = libRNFS.a;
1113 | remoteRef = 967858AD206135D5007C6F7B /* PBXContainerItemProxy */;
1114 | sourceTree = BUILT_PRODUCTS_DIR;
1115 | };
1116 | 967858EA20613C81007C6F7B /* libRNSVG.a */ = {
1117 | isa = PBXReferenceProxy;
1118 | fileType = archive.ar;
1119 | path = libRNSVG.a;
1120 | remoteRef = 967858E920613C81007C6F7B /* PBXContainerItemProxy */;
1121 | sourceTree = BUILT_PRODUCTS_DIR;
1122 | };
1123 | 967858EC20613C81007C6F7B /* libRNSVG-tvOS.a */ = {
1124 | isa = PBXReferenceProxy;
1125 | fileType = archive.ar;
1126 | path = "libRNSVG-tvOS.a";
1127 | remoteRef = 967858EB20613C81007C6F7B /* PBXContainerItemProxy */;
1128 | sourceTree = BUILT_PRODUCTS_DIR;
1129 | };
1130 | 969D3BCF205FDD8E00D0FF11 /* libjsinspector.a */ = {
1131 | isa = PBXReferenceProxy;
1132 | fileType = archive.ar;
1133 | path = libjsinspector.a;
1134 | remoteRef = 969D3BCE205FDD8E00D0FF11 /* PBXContainerItemProxy */;
1135 | sourceTree = BUILT_PRODUCTS_DIR;
1136 | };
1137 | 969D3BD1205FDD8E00D0FF11 /* libjsinspector-tvOS.a */ = {
1138 | isa = PBXReferenceProxy;
1139 | fileType = archive.ar;
1140 | path = "libjsinspector-tvOS.a";
1141 | remoteRef = 969D3BD0205FDD8E00D0FF11 /* PBXContainerItemProxy */;
1142 | sourceTree = BUILT_PRODUCTS_DIR;
1143 | };
1144 | 969D3BD3205FDD8E00D0FF11 /* libthird-party.a */ = {
1145 | isa = PBXReferenceProxy;
1146 | fileType = archive.ar;
1147 | path = "libthird-party.a";
1148 | remoteRef = 969D3BD2205FDD8E00D0FF11 /* PBXContainerItemProxy */;
1149 | sourceTree = BUILT_PRODUCTS_DIR;
1150 | };
1151 | 969D3BD5205FDD8E00D0FF11 /* libthird-party.a */ = {
1152 | isa = PBXReferenceProxy;
1153 | fileType = archive.ar;
1154 | path = "libthird-party.a";
1155 | remoteRef = 969D3BD4205FDD8E00D0FF11 /* PBXContainerItemProxy */;
1156 | sourceTree = BUILT_PRODUCTS_DIR;
1157 | };
1158 | 969D3BD7205FDD8E00D0FF11 /* libdouble-conversion.a */ = {
1159 | isa = PBXReferenceProxy;
1160 | fileType = archive.ar;
1161 | path = "libdouble-conversion.a";
1162 | remoteRef = 969D3BD6205FDD8E00D0FF11 /* PBXContainerItemProxy */;
1163 | sourceTree = BUILT_PRODUCTS_DIR;
1164 | };
1165 | 969D3BD9205FDD8E00D0FF11 /* libdouble-conversion.a */ = {
1166 | isa = PBXReferenceProxy;
1167 | fileType = archive.ar;
1168 | path = "libdouble-conversion.a";
1169 | remoteRef = 969D3BD8205FDD8E00D0FF11 /* PBXContainerItemProxy */;
1170 | sourceTree = BUILT_PRODUCTS_DIR;
1171 | };
1172 | 969D3BDB205FDD8E00D0FF11 /* libprivatedata.a */ = {
1173 | isa = PBXReferenceProxy;
1174 | fileType = archive.ar;
1175 | path = libprivatedata.a;
1176 | remoteRef = 969D3BDA205FDD8E00D0FF11 /* PBXContainerItemProxy */;
1177 | sourceTree = BUILT_PRODUCTS_DIR;
1178 | };
1179 | 969D3BDD205FDD8E00D0FF11 /* libprivatedata-tvOS.a */ = {
1180 | isa = PBXReferenceProxy;
1181 | fileType = archive.ar;
1182 | path = "libprivatedata-tvOS.a";
1183 | remoteRef = 969D3BDC205FDD8E00D0FF11 /* PBXContainerItemProxy */;
1184 | sourceTree = BUILT_PRODUCTS_DIR;
1185 | };
1186 | ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */ = {
1187 | isa = PBXReferenceProxy;
1188 | fileType = archive.ar;
1189 | path = libRCTBlob.a;
1190 | remoteRef = ADBDB9261DFEBF0700ED6528 /* PBXContainerItemProxy */;
1191 | sourceTree = BUILT_PRODUCTS_DIR;
1192 | };
1193 | /* End PBXReferenceProxy section */
1194 |
1195 | /* Begin PBXResourcesBuildPhase section */
1196 | 00E356EC1AD99517003FC87E /* Resources */ = {
1197 | isa = PBXResourcesBuildPhase;
1198 | buildActionMask = 2147483647;
1199 | files = (
1200 | );
1201 | runOnlyForDeploymentPostprocessing = 0;
1202 | };
1203 | 13B07F8E1A680F5B00A75B9A /* Resources */ = {
1204 | isa = PBXResourcesBuildPhase;
1205 | buildActionMask = 2147483647;
1206 | files = (
1207 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
1208 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */,
1209 | );
1210 | runOnlyForDeploymentPostprocessing = 0;
1211 | };
1212 | 2D02E4791E0B4A5D006451C7 /* Resources */ = {
1213 | isa = PBXResourcesBuildPhase;
1214 | buildActionMask = 2147483647;
1215 | files = (
1216 | 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */,
1217 | );
1218 | runOnlyForDeploymentPostprocessing = 0;
1219 | };
1220 | 2D02E48E1E0B4A5D006451C7 /* Resources */ = {
1221 | isa = PBXResourcesBuildPhase;
1222 | buildActionMask = 2147483647;
1223 | files = (
1224 | );
1225 | runOnlyForDeploymentPostprocessing = 0;
1226 | };
1227 | /* End PBXResourcesBuildPhase section */
1228 |
1229 | /* Begin PBXShellScriptBuildPhase section */
1230 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = {
1231 | isa = PBXShellScriptBuildPhase;
1232 | buildActionMask = 2147483647;
1233 | files = (
1234 | );
1235 | inputPaths = (
1236 | );
1237 | name = "Bundle React Native code and images";
1238 | outputPaths = (
1239 | );
1240 | runOnlyForDeploymentPostprocessing = 0;
1241 | shellPath = /bin/sh;
1242 | shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
1243 | };
1244 | 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = {
1245 | isa = PBXShellScriptBuildPhase;
1246 | buildActionMask = 2147483647;
1247 | files = (
1248 | );
1249 | inputPaths = (
1250 | );
1251 | name = "Bundle React Native Code And Images";
1252 | outputPaths = (
1253 | );
1254 | runOnlyForDeploymentPostprocessing = 0;
1255 | shellPath = /bin/sh;
1256 | shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
1257 | };
1258 | /* End PBXShellScriptBuildPhase section */
1259 |
1260 | /* Begin PBXSourcesBuildPhase section */
1261 | 00E356EA1AD99517003FC87E /* Sources */ = {
1262 | isa = PBXSourcesBuildPhase;
1263 | buildActionMask = 2147483647;
1264 | files = (
1265 | 00E356F31AD99517003FC87E /* reactNativeOpencvTutorialTests.m in Sources */,
1266 | );
1267 | runOnlyForDeploymentPostprocessing = 0;
1268 | };
1269 | 13B07F871A680F5B00A75B9A /* Sources */ = {
1270 | isa = PBXSourcesBuildPhase;
1271 | buildActionMask = 2147483647;
1272 | files = (
1273 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */,
1274 | 13B07FC11A68108700A75B9A /* main.m in Sources */,
1275 | 9678586F206005DC007C6F7B /* RNOpenCvLibrary.mm in Sources */,
1276 | );
1277 | runOnlyForDeploymentPostprocessing = 0;
1278 | };
1279 | 2D02E4771E0B4A5D006451C7 /* Sources */ = {
1280 | isa = PBXSourcesBuildPhase;
1281 | buildActionMask = 2147483647;
1282 | files = (
1283 | 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */,
1284 | 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */,
1285 | );
1286 | runOnlyForDeploymentPostprocessing = 0;
1287 | };
1288 | 2D02E48C1E0B4A5D006451C7 /* Sources */ = {
1289 | isa = PBXSourcesBuildPhase;
1290 | buildActionMask = 2147483647;
1291 | files = (
1292 | 2DCD954D1E0B4F2C00145EB5 /* reactNativeOpencvTutorialTests.m in Sources */,
1293 | );
1294 | runOnlyForDeploymentPostprocessing = 0;
1295 | };
1296 | /* End PBXSourcesBuildPhase section */
1297 |
1298 | /* Begin PBXTargetDependency section */
1299 | 00E356F51AD99517003FC87E /* PBXTargetDependency */ = {
1300 | isa = PBXTargetDependency;
1301 | target = 13B07F861A680F5B00A75B9A /* reactNativeOpencvTutorial */;
1302 | targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */;
1303 | };
1304 | 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */ = {
1305 | isa = PBXTargetDependency;
1306 | target = 2D02E47A1E0B4A5D006451C7 /* reactNativeOpencvTutorial-tvOS */;
1307 | targetProxy = 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */;
1308 | };
1309 | /* End PBXTargetDependency section */
1310 |
1311 | /* Begin PBXVariantGroup section */
1312 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = {
1313 | isa = PBXVariantGroup;
1314 | children = (
1315 | 13B07FB21A68108700A75B9A /* Base */,
1316 | );
1317 | name = LaunchScreen.xib;
1318 | path = reactNativeOpencvTutorial;
1319 | sourceTree = "";
1320 | };
1321 | /* End PBXVariantGroup section */
1322 |
1323 | /* Begin XCBuildConfiguration section */
1324 | 00E356F61AD99517003FC87E /* Debug */ = {
1325 | isa = XCBuildConfiguration;
1326 | buildSettings = {
1327 | BUNDLE_LOADER = "$(TEST_HOST)";
1328 | GCC_PREPROCESSOR_DEFINITIONS = (
1329 | "DEBUG=1",
1330 | "$(inherited)",
1331 | );
1332 | HEADER_SEARCH_PATHS = (
1333 | "$(inherited)",
1334 | "$(SRCROOT)/../node_modules/react-native-camera/ios/**",
1335 | "$(SRCROOT)/../node_modules/react-native-fs/**",
1336 | "$(SRCROOT)/../node_modules/react-native-svg/ios/**",
1337 | );
1338 | INFOPLIST_FILE = reactNativeOpencvTutorialTests/Info.plist;
1339 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1340 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1341 | LIBRARY_SEARCH_PATHS = (
1342 | "$(inherited)",
1343 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1344 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1345 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1346 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1347 | );
1348 | OTHER_LDFLAGS = (
1349 | "-ObjC",
1350 | "-lc++",
1351 | );
1352 | PRODUCT_NAME = "$(TARGET_NAME)";
1353 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/reactNativeOpencvTutorial.app/reactNativeOpencvTutorial";
1354 | };
1355 | name = Debug;
1356 | };
1357 | 00E356F71AD99517003FC87E /* Release */ = {
1358 | isa = XCBuildConfiguration;
1359 | buildSettings = {
1360 | BUNDLE_LOADER = "$(TEST_HOST)";
1361 | COPY_PHASE_STRIP = NO;
1362 | HEADER_SEARCH_PATHS = (
1363 | "$(inherited)",
1364 | "$(SRCROOT)/../node_modules/react-native-camera/ios/**",
1365 | "$(SRCROOT)/../node_modules/react-native-fs/**",
1366 | "$(SRCROOT)/../node_modules/react-native-svg/ios/**",
1367 | );
1368 | INFOPLIST_FILE = reactNativeOpencvTutorialTests/Info.plist;
1369 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1370 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1371 | LIBRARY_SEARCH_PATHS = (
1372 | "$(inherited)",
1373 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1374 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1375 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1376 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1377 | );
1378 | OTHER_LDFLAGS = (
1379 | "-ObjC",
1380 | "-lc++",
1381 | );
1382 | PRODUCT_NAME = "$(TARGET_NAME)";
1383 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/reactNativeOpencvTutorial.app/reactNativeOpencvTutorial";
1384 | };
1385 | name = Release;
1386 | };
1387 | 13B07F941A680F5B00A75B9A /* Debug */ = {
1388 | isa = XCBuildConfiguration;
1389 | buildSettings = {
1390 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1391 | CURRENT_PROJECT_VERSION = 1;
1392 | DEAD_CODE_STRIPPING = NO;
1393 | DEVELOPMENT_TEAM = W7ZYY3P2YY;
1394 | FRAMEWORK_SEARCH_PATHS = (
1395 | "$(inherited)",
1396 | "$(PROJECT_DIR)",
1397 | );
1398 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
1399 | GCC_PREFIX_HEADER = "$(PROJECT_DIR)/OpenCV/PrefixHeader.pch";
1400 | HEADER_SEARCH_PATHS = (
1401 | "$(inherited)",
1402 | "$(SRCROOT)/../node_modules/react-native-camera/ios/**",
1403 | "$(SRCROOT)/../node_modules/react-native-fs/**",
1404 | "$(SRCROOT)/../node_modules/react-native-svg/ios/**",
1405 | );
1406 | INFOPLIST_FILE = reactNativeOpencvTutorial/Info.plist;
1407 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1408 | OTHER_LDFLAGS = (
1409 | "$(inherited)",
1410 | "-ObjC",
1411 | "-lc++",
1412 | );
1413 | PRODUCT_NAME = reactNativeOpencvTutorial;
1414 | VERSIONING_SYSTEM = "apple-generic";
1415 | };
1416 | name = Debug;
1417 | };
1418 | 13B07F951A680F5B00A75B9A /* Release */ = {
1419 | isa = XCBuildConfiguration;
1420 | buildSettings = {
1421 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1422 | CURRENT_PROJECT_VERSION = 1;
1423 | DEVELOPMENT_TEAM = W7ZYY3P2YY;
1424 | FRAMEWORK_SEARCH_PATHS = (
1425 | "$(inherited)",
1426 | "$(PROJECT_DIR)",
1427 | );
1428 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
1429 | GCC_PREFIX_HEADER = "$(PROJECT_DIR)/OpenCV/PrefixHeader.pch";
1430 | HEADER_SEARCH_PATHS = (
1431 | "$(inherited)",
1432 | "$(SRCROOT)/../node_modules/react-native-camera/ios/**",
1433 | "$(SRCROOT)/../node_modules/react-native-fs/**",
1434 | "$(SRCROOT)/../node_modules/react-native-svg/ios/**",
1435 | );
1436 | INFOPLIST_FILE = reactNativeOpencvTutorial/Info.plist;
1437 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1438 | OTHER_LDFLAGS = (
1439 | "$(inherited)",
1440 | "-ObjC",
1441 | "-lc++",
1442 | );
1443 | PRODUCT_NAME = reactNativeOpencvTutorial;
1444 | VERSIONING_SYSTEM = "apple-generic";
1445 | };
1446 | name = Release;
1447 | };
1448 | 2D02E4971E0B4A5E006451C7 /* Debug */ = {
1449 | isa = XCBuildConfiguration;
1450 | buildSettings = {
1451 | ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
1452 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
1453 | CLANG_ANALYZER_NONNULL = YES;
1454 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
1455 | CLANG_WARN_INFINITE_RECURSION = YES;
1456 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
1457 | DEBUG_INFORMATION_FORMAT = dwarf;
1458 | ENABLE_TESTABILITY = YES;
1459 | GCC_NO_COMMON_BLOCKS = YES;
1460 | HEADER_SEARCH_PATHS = (
1461 | "$(inherited)",
1462 | "$(SRCROOT)/../node_modules/react-native-camera/ios/**",
1463 | "$(SRCROOT)/../node_modules/react-native-fs/**",
1464 | "$(SRCROOT)/../node_modules/react-native-svg/ios/**",
1465 | );
1466 | INFOPLIST_FILE = "reactNativeOpencvTutorial-tvOS/Info.plist";
1467 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1468 | LIBRARY_SEARCH_PATHS = (
1469 | "$(inherited)",
1470 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1471 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1472 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1473 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1474 | );
1475 | OTHER_LDFLAGS = (
1476 | "-ObjC",
1477 | "-lc++",
1478 | );
1479 | PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.reactNativeOpencvTutorial-tvOS";
1480 | PRODUCT_NAME = "$(TARGET_NAME)";
1481 | SDKROOT = appletvos;
1482 | TARGETED_DEVICE_FAMILY = 3;
1483 | TVOS_DEPLOYMENT_TARGET = 9.2;
1484 | };
1485 | name = Debug;
1486 | };
1487 | 2D02E4981E0B4A5E006451C7 /* Release */ = {
1488 | isa = XCBuildConfiguration;
1489 | buildSettings = {
1490 | ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
1491 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
1492 | CLANG_ANALYZER_NONNULL = YES;
1493 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
1494 | CLANG_WARN_INFINITE_RECURSION = YES;
1495 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
1496 | COPY_PHASE_STRIP = NO;
1497 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
1498 | GCC_NO_COMMON_BLOCKS = YES;
1499 | HEADER_SEARCH_PATHS = (
1500 | "$(inherited)",
1501 | "$(SRCROOT)/../node_modules/react-native-camera/ios/**",
1502 | "$(SRCROOT)/../node_modules/react-native-fs/**",
1503 | "$(SRCROOT)/../node_modules/react-native-svg/ios/**",
1504 | );
1505 | INFOPLIST_FILE = "reactNativeOpencvTutorial-tvOS/Info.plist";
1506 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1507 | LIBRARY_SEARCH_PATHS = (
1508 | "$(inherited)",
1509 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1510 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1511 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1512 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1513 | );
1514 | OTHER_LDFLAGS = (
1515 | "-ObjC",
1516 | "-lc++",
1517 | );
1518 | PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.reactNativeOpencvTutorial-tvOS";
1519 | PRODUCT_NAME = "$(TARGET_NAME)";
1520 | SDKROOT = appletvos;
1521 | TARGETED_DEVICE_FAMILY = 3;
1522 | TVOS_DEPLOYMENT_TARGET = 9.2;
1523 | };
1524 | name = Release;
1525 | };
1526 | 2D02E4991E0B4A5E006451C7 /* Debug */ = {
1527 | isa = XCBuildConfiguration;
1528 | buildSettings = {
1529 | BUNDLE_LOADER = "$(TEST_HOST)";
1530 | CLANG_ANALYZER_NONNULL = YES;
1531 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
1532 | CLANG_WARN_INFINITE_RECURSION = YES;
1533 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
1534 | DEBUG_INFORMATION_FORMAT = dwarf;
1535 | ENABLE_TESTABILITY = YES;
1536 | GCC_NO_COMMON_BLOCKS = YES;
1537 | INFOPLIST_FILE = "reactNativeOpencvTutorial-tvOSTests/Info.plist";
1538 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1539 | LIBRARY_SEARCH_PATHS = (
1540 | "$(inherited)",
1541 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1542 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1543 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1544 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1545 | );
1546 | PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.reactNativeOpencvTutorial-tvOSTests";
1547 | PRODUCT_NAME = "$(TARGET_NAME)";
1548 | SDKROOT = appletvos;
1549 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/reactNativeOpencvTutorial-tvOS.app/reactNativeOpencvTutorial-tvOS";
1550 | TVOS_DEPLOYMENT_TARGET = 10.1;
1551 | };
1552 | name = Debug;
1553 | };
1554 | 2D02E49A1E0B4A5E006451C7 /* Release */ = {
1555 | isa = XCBuildConfiguration;
1556 | buildSettings = {
1557 | BUNDLE_LOADER = "$(TEST_HOST)";
1558 | CLANG_ANALYZER_NONNULL = YES;
1559 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
1560 | CLANG_WARN_INFINITE_RECURSION = YES;
1561 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
1562 | COPY_PHASE_STRIP = NO;
1563 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
1564 | GCC_NO_COMMON_BLOCKS = YES;
1565 | INFOPLIST_FILE = "reactNativeOpencvTutorial-tvOSTests/Info.plist";
1566 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1567 | LIBRARY_SEARCH_PATHS = (
1568 | "$(inherited)",
1569 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1570 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1571 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1572 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
1573 | );
1574 | PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.reactNativeOpencvTutorial-tvOSTests";
1575 | PRODUCT_NAME = "$(TARGET_NAME)";
1576 | SDKROOT = appletvos;
1577 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/reactNativeOpencvTutorial-tvOS.app/reactNativeOpencvTutorial-tvOS";
1578 | TVOS_DEPLOYMENT_TARGET = 10.1;
1579 | };
1580 | name = Release;
1581 | };
1582 | 83CBBA201A601CBA00E9B192 /* Debug */ = {
1583 | isa = XCBuildConfiguration;
1584 | buildSettings = {
1585 | ALWAYS_SEARCH_USER_PATHS = NO;
1586 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
1587 | CLANG_CXX_LIBRARY = "libc++";
1588 | CLANG_ENABLE_MODULES = YES;
1589 | CLANG_ENABLE_OBJC_ARC = YES;
1590 | CLANG_WARN_BOOL_CONVERSION = YES;
1591 | CLANG_WARN_CONSTANT_CONVERSION = YES;
1592 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
1593 | CLANG_WARN_EMPTY_BODY = YES;
1594 | CLANG_WARN_ENUM_CONVERSION = YES;
1595 | CLANG_WARN_INT_CONVERSION = YES;
1596 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
1597 | CLANG_WARN_UNREACHABLE_CODE = YES;
1598 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
1599 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
1600 | COPY_PHASE_STRIP = NO;
1601 | ENABLE_STRICT_OBJC_MSGSEND = YES;
1602 | GCC_C_LANGUAGE_STANDARD = gnu99;
1603 | GCC_DYNAMIC_NO_PIC = NO;
1604 | GCC_OPTIMIZATION_LEVEL = 0;
1605 | GCC_PREPROCESSOR_DEFINITIONS = (
1606 | "DEBUG=1",
1607 | "$(inherited)",
1608 | );
1609 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
1610 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
1611 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
1612 | GCC_WARN_UNDECLARED_SELECTOR = YES;
1613 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
1614 | GCC_WARN_UNUSED_FUNCTION = YES;
1615 | GCC_WARN_UNUSED_VARIABLE = YES;
1616 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1617 | MTL_ENABLE_DEBUG_INFO = YES;
1618 | ONLY_ACTIVE_ARCH = YES;
1619 | SDKROOT = iphoneos;
1620 | };
1621 | name = Debug;
1622 | };
1623 | 83CBBA211A601CBA00E9B192 /* Release */ = {
1624 | isa = XCBuildConfiguration;
1625 | buildSettings = {
1626 | ALWAYS_SEARCH_USER_PATHS = NO;
1627 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
1628 | CLANG_CXX_LIBRARY = "libc++";
1629 | CLANG_ENABLE_MODULES = YES;
1630 | CLANG_ENABLE_OBJC_ARC = YES;
1631 | CLANG_WARN_BOOL_CONVERSION = YES;
1632 | CLANG_WARN_CONSTANT_CONVERSION = YES;
1633 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
1634 | CLANG_WARN_EMPTY_BODY = YES;
1635 | CLANG_WARN_ENUM_CONVERSION = YES;
1636 | CLANG_WARN_INT_CONVERSION = YES;
1637 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
1638 | CLANG_WARN_UNREACHABLE_CODE = YES;
1639 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
1640 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
1641 | COPY_PHASE_STRIP = YES;
1642 | ENABLE_NS_ASSERTIONS = NO;
1643 | ENABLE_STRICT_OBJC_MSGSEND = YES;
1644 | GCC_C_LANGUAGE_STANDARD = gnu99;
1645 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
1646 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
1647 | GCC_WARN_UNDECLARED_SELECTOR = YES;
1648 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
1649 | GCC_WARN_UNUSED_FUNCTION = YES;
1650 | GCC_WARN_UNUSED_VARIABLE = YES;
1651 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1652 | MTL_ENABLE_DEBUG_INFO = NO;
1653 | SDKROOT = iphoneos;
1654 | VALIDATE_PRODUCT = YES;
1655 | };
1656 | name = Release;
1657 | };
1658 | /* End XCBuildConfiguration section */
1659 |
1660 | /* Begin XCConfigurationList section */
1661 | 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "reactNativeOpencvTutorialTests" */ = {
1662 | isa = XCConfigurationList;
1663 | buildConfigurations = (
1664 | 00E356F61AD99517003FC87E /* Debug */,
1665 | 00E356F71AD99517003FC87E /* Release */,
1666 | );
1667 | defaultConfigurationIsVisible = 0;
1668 | defaultConfigurationName = Release;
1669 | };
1670 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "reactNativeOpencvTutorial" */ = {
1671 | isa = XCConfigurationList;
1672 | buildConfigurations = (
1673 | 13B07F941A680F5B00A75B9A /* Debug */,
1674 | 13B07F951A680F5B00A75B9A /* Release */,
1675 | );
1676 | defaultConfigurationIsVisible = 0;
1677 | defaultConfigurationName = Release;
1678 | };
1679 | 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "reactNativeOpencvTutorial-tvOS" */ = {
1680 | isa = XCConfigurationList;
1681 | buildConfigurations = (
1682 | 2D02E4971E0B4A5E006451C7 /* Debug */,
1683 | 2D02E4981E0B4A5E006451C7 /* Release */,
1684 | );
1685 | defaultConfigurationIsVisible = 0;
1686 | defaultConfigurationName = Release;
1687 | };
1688 | 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "reactNativeOpencvTutorial-tvOSTests" */ = {
1689 | isa = XCConfigurationList;
1690 | buildConfigurations = (
1691 | 2D02E4991E0B4A5E006451C7 /* Debug */,
1692 | 2D02E49A1E0B4A5E006451C7 /* Release */,
1693 | );
1694 | defaultConfigurationIsVisible = 0;
1695 | defaultConfigurationName = Release;
1696 | };
1697 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "reactNativeOpencvTutorial" */ = {
1698 | isa = XCConfigurationList;
1699 | buildConfigurations = (
1700 | 83CBBA201A601CBA00E9B192 /* Debug */,
1701 | 83CBBA211A601CBA00E9B192 /* Release */,
1702 | );
1703 | defaultConfigurationIsVisible = 0;
1704 | defaultConfigurationName = Release;
1705 | };
1706 | /* End XCConfigurationList section */
1707 | };
1708 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
1709 | }
1710 |
--------------------------------------------------------------------------------