├── .babelrc ├── .buckconfig ├── .flowconfig ├── .gitattributes ├── .gitignore ├── .watchmanconfig ├── App.js ├── README.md ├── __tests__ └── App.js ├── android ├── app │ ├── BUCK │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ └── fonts │ │ │ ├── AntDesign.ttf │ │ │ ├── Entypo.ttf │ │ │ ├── EvilIcons.ttf │ │ │ ├── Feather.ttf │ │ │ ├── FontAwesome.ttf │ │ │ ├── FontAwesome5_Brands.ttf │ │ │ ├── FontAwesome5_Regular.ttf │ │ │ ├── FontAwesome5_Solid.ttf │ │ │ ├── Foundation.ttf │ │ │ ├── Ionicons.ttf │ │ │ ├── MaterialCommunityIcons.ttf │ │ │ ├── MaterialIcons.ttf │ │ │ ├── Octicons.ttf │ │ │ ├── SimpleLineIcons.ttf │ │ │ └── Zocial.ttf │ │ ├── java │ │ └── com │ │ │ └── demo │ │ │ ├── MainActivity.java │ │ │ └── MainApplication.java │ │ └── res │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ └── values │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── keystores │ ├── BUCK │ └── debug.keystore.properties └── settings.gradle ├── app.json ├── index.js ├── ios ├── demo-tvOS │ └── Info.plist ├── demo-tvOSTests │ └── Info.plist ├── demo.xcodeproj │ ├── project.pbxproj │ └── xcshareddata │ │ └── xcschemes │ │ ├── demo-tvOS.xcscheme │ │ └── demo.xcscheme ├── demo │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Base.lproj │ │ └── LaunchScreen.xib │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Info.plist │ └── main.m └── demoTests │ ├── Info.plist │ └── demoTests.m ├── package.json ├── src ├── app.launch.js ├── index.js ├── navigator.config.js ├── source │ └── svg │ │ └── index.js ├── store │ ├── account.js │ ├── find.js │ └── index.js ├── utils │ ├── global.js │ └── index.js ├── view │ └── find │ │ └── index.js └── views │ ├── account │ └── index.js │ ├── find │ └── index.js │ ├── friends │ └── index.js │ ├── index.js │ ├── login │ └── index.js │ ├── mine │ └── index.js │ └── video │ └── index.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["module:metro-react-native-babel-preset"] 3 | } 4 | -------------------------------------------------------------------------------- /.buckconfig: -------------------------------------------------------------------------------- 1 | 2 | [android] 3 | target = Google Inc.:Google APIs:23 4 | 5 | [maven_repositories] 6 | central = https://repo1.maven.org/maven2 7 | -------------------------------------------------------------------------------- /.flowconfig: -------------------------------------------------------------------------------- 1 | [ignore] 2 | ; We fork some components by platform 3 | .*/*[.]android.js 4 | 5 | ; Ignore "BUCK" generated dirs 6 | /\.buckd/ 7 | 8 | ; Ignore unexpected extra "@providesModule" 9 | .*/node_modules/.*/node_modules/fbjs/.* 10 | 11 | ; Ignore duplicate module providers 12 | ; For RN Apps installed via npm, "Libraries" folder is inside 13 | ; "node_modules/react-native" but in the source repo it is in the root 14 | .*/Libraries/react-native/React.js 15 | 16 | ; Ignore polyfills 17 | .*/Libraries/polyfills/.* 18 | 19 | ; Ignore metro 20 | .*/node_modules/metro/.* 21 | 22 | [include] 23 | 24 | [libs] 25 | node_modules/react-native/Libraries/react-native/react-native-interface.js 26 | node_modules/react-native/flow/ 27 | node_modules/react-native/flow-github/ 28 | 29 | [options] 30 | emoji=true 31 | 32 | module.system=haste 33 | 34 | munge_underscores=true 35 | 36 | module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub' 37 | 38 | module.file_ext=.js 39 | module.file_ext=.jsx 40 | module.file_ext=.json 41 | module.file_ext=.native.js 42 | 43 | suppress_type=$FlowIssue 44 | suppress_type=$FlowFixMe 45 | suppress_type=$FlowFixMeProps 46 | suppress_type=$FlowFixMeState 47 | 48 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) 49 | suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ 50 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy 51 | suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError 52 | 53 | [version] 54 | ^0.63.0 55 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.pbxproj -text 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | project.xcworkspace 24 | 25 | # Android/IntelliJ 26 | # 27 | build/ 28 | .idea 29 | .gradle 30 | local.properties 31 | *.iml 32 | 33 | # node.js 34 | # 35 | node_modules/ 36 | npm-debug.log 37 | yarn-error.log 38 | 39 | # BUCK 40 | buck-out/ 41 | \.buckd/ 42 | *.keystore 43 | 44 | # fastlane 45 | # 46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 47 | # screenshots whenever they are needed. 48 | # For more information about the recommended setup visit: 49 | # https://docs.fastlane.tools/best-practices/source-control/ 50 | 51 | */fastlane/report.xml 52 | */fastlane/Preview.html 53 | */fastlane/screenshots 54 | -------------------------------------------------------------------------------- /.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /App.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Sample React Native App 3 | * https://github.com/facebook/react-native 4 | * 5 | * @format 6 | * @flow 7 | */ 8 | 9 | import React, {Component} from 'react'; 10 | import {Platform, StyleSheet, Text, View} from 'react-native'; 11 | 12 | const instructions = Platform.select({ 13 | ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu', 14 | android: 15 | 'Double tap R on your keyboard to reload,\n' + 16 | 'Shake or press menu button for dev menu', 17 | }); 18 | 19 | type Props = {}; 20 | export default class App extends Component { 21 | render() { 22 | return ( 23 | 24 | Welcome to React Native! 25 | To get started, edit App.js 26 | {instructions} 27 | 28 | ); 29 | } 30 | } 31 | 32 | const styles = StyleSheet.create({ 33 | container: { 34 | flex: 1, 35 | justifyContent: 'center', 36 | alignItems: 'center', 37 | backgroundColor: '#F5FCFF', 38 | }, 39 | welcome: { 40 | fontSize: 20, 41 | textAlign: 'center', 42 | margin: 10, 43 | }, 44 | instructions: { 45 | textAlign: 'center', 46 | color: '#333333', 47 | marginBottom: 5, 48 | }, 49 | }); 50 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # react-native + redux + react-navigation 2 | 3 | ## Git clone 4 | 5 | ## run-android run-ios 6 | 7 | -------------------------------------------------------------------------------- /__tests__/App.js: -------------------------------------------------------------------------------- 1 | import 'react-native'; 2 | import React from 'react'; 3 | import App from '../App'; 4 | 5 | // Note: test renderer must be required after react-native. 6 | import renderer from 'react-test-renderer'; 7 | 8 | it('renders correctly', () => { 9 | const tree = renderer.create( 10 | 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /android/app/BUCK: -------------------------------------------------------------------------------- 1 | # To learn about Buck see [Docs](https://buckbuild.com/). 2 | # To run your application with Buck: 3 | # - install Buck 4 | # - `npm start` - to start the packager 5 | # - `cd android` 6 | # - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` 7 | # - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck 8 | # - `buck install -r android/app` - compile, install and run application 9 | # 10 | 11 | lib_deps = [] 12 | 13 | for jarfile in glob(['libs/*.jar']): 14 | name = 'jars__' + jarfile[jarfile.rindex('/') + 1: jarfile.rindex('.jar')] 15 | lib_deps.append(':' + name) 16 | prebuilt_jar( 17 | name = name, 18 | binary_jar = jarfile, 19 | ) 20 | 21 | for aarfile in glob(['libs/*.aar']): 22 | name = 'aars__' + aarfile[aarfile.rindex('/') + 1: aarfile.rindex('.aar')] 23 | lib_deps.append(':' + name) 24 | android_prebuilt_aar( 25 | name = name, 26 | aar = aarfile, 27 | ) 28 | 29 | android_library( 30 | name = "all-libs", 31 | exported_deps = lib_deps, 32 | ) 33 | 34 | android_library( 35 | name = "app-code", 36 | srcs = glob([ 37 | "src/main/java/**/*.java", 38 | ]), 39 | deps = [ 40 | ":all-libs", 41 | ":build_config", 42 | ":res", 43 | ], 44 | ) 45 | 46 | android_build_config( 47 | name = "build_config", 48 | package = "com.demo", 49 | ) 50 | 51 | android_resource( 52 | name = "res", 53 | package = "com.demo", 54 | res = "src/main/res", 55 | ) 56 | 57 | android_binary( 58 | name = "app", 59 | keystore = "//android/keystores:debug", 60 | manifest = "src/main/AndroidManifest.xml", 61 | package_type = "debug", 62 | deps = [ 63 | ":app-code", 64 | ], 65 | ) 66 | -------------------------------------------------------------------------------- /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.demo" 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-splash-screen') 142 | compile project(':react-native-gesture-handler') 143 | compile project(':react-native-linear-gradient') 144 | compile project(':react-native-vector-icons') 145 | compile fileTree(dir: "libs", include: ["*.jar"]) 146 | compile "com.android.support:appcompat-v7:23.0.1" 147 | compile "com.facebook.react:react-native:+" // From node_modules 148 | } 149 | 150 | // Run this once to be able to run the application with BUCK 151 | // puts all compile dependencies into folder libs for BUCK to use 152 | task copyDownloadableDepsToLibs(type: Copy) { 153 | from configurations.compile 154 | into 'libs' 155 | } 156 | -------------------------------------------------------------------------------- /android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | # Disabling obfuscation is useful if you collect stack traces from production crashes 20 | # (unless you are using a system that supports de-obfuscate the stack traces). 21 | -dontobfuscate 22 | 23 | # React Native 24 | 25 | # Keep our interfaces so they can be used by other ProGuard rules. 26 | # See http://sourceforge.net/p/proguard/bugs/466/ 27 | -keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip 28 | -keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters 29 | -keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip 30 | 31 | # Do not strip any method/class that is annotated with @DoNotStrip 32 | -keep @com.facebook.proguard.annotations.DoNotStrip class * 33 | -keep @com.facebook.common.internal.DoNotStrip class * 34 | -keepclassmembers class * { 35 | @com.facebook.proguard.annotations.DoNotStrip *; 36 | @com.facebook.common.internal.DoNotStrip *; 37 | } 38 | 39 | -keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * { 40 | void set*(***); 41 | *** get*(); 42 | } 43 | 44 | -keep class * extends com.facebook.react.bridge.JavaScriptModule { *; } 45 | -keep class * extends com.facebook.react.bridge.NativeModule { *; } 46 | -keepclassmembers,includedescriptorclasses class * { native ; } 47 | -keepclassmembers class * { @com.facebook.react.uimanager.UIProp ; } 48 | -keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp ; } 49 | -keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup ; } 50 | 51 | -dontwarn com.facebook.react.** 52 | 53 | # TextLayoutBuilder uses a non-public Android constructor within StaticLayout. 54 | # See libs/proxy/src/main/java/com/facebook/fbui/textlayoutbuilder/proxy for details. 55 | -dontwarn android.text.StaticLayout 56 | 57 | # okhttp 58 | 59 | -keepattributes Signature 60 | -keepattributes *Annotation* 61 | -keep class okhttp3.** { *; } 62 | -keep interface okhttp3.** { *; } 63 | -dontwarn okhttp3.** 64 | 65 | # okio 66 | 67 | -keep class sun.misc.Unsafe { *; } 68 | -dontwarn java.nio.file.* 69 | -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement 70 | -dontwarn okio.** 71 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | 19 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/AntDesign.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/assets/fonts/AntDesign.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Entypo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/assets/fonts/Entypo.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/EvilIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/assets/fonts/EvilIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Feather.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/assets/fonts/Feather.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/assets/fonts/FontAwesome.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Foundation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/assets/fonts/Foundation.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/assets/fonts/Ionicons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/MaterialIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/assets/fonts/MaterialIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Octicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/assets/fonts/Octicons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/SimpleLineIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/assets/fonts/SimpleLineIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Zocial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/assets/fonts/Zocial.ttf -------------------------------------------------------------------------------- /android/app/src/main/java/com/demo/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.demo; 2 | 3 | import com.facebook.react.ReactActivity; 4 | 5 | public class MainActivity extends ReactActivity { 6 | 7 | /** 8 | * Returns the name of the main component registered from JavaScript. 9 | * This is used to schedule rendering of the component. 10 | */ 11 | @Override 12 | protected String getMainComponentName() { 13 | return "demo"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /android/app/src/main/java/com/demo/MainApplication.java: -------------------------------------------------------------------------------- 1 | package com.demo; 2 | 3 | import android.app.Application; 4 | 5 | import com.facebook.react.ReactApplication; 6 | import com.horcrux.svg.SvgPackage; 7 | import org.devio.rn.splashscreen.SplashScreenReactPackage; 8 | import com.swmansion.gesturehandler.react.RNGestureHandlerPackage; 9 | import com.BV.LinearGradient.LinearGradientPackage; 10 | import com.lwansbrough.RCTCamera.RCTCameraPackage; 11 | import com.oblador.vectoricons.VectorIconsPackage; 12 | import com.facebook.react.ReactNativeHost; 13 | import com.facebook.react.ReactPackage; 14 | import com.facebook.react.shell.MainReactPackage; 15 | import com.facebook.soloader.SoLoader; 16 | 17 | import java.util.Arrays; 18 | import java.util.List; 19 | 20 | public class MainApplication extends Application implements ReactApplication { 21 | 22 | private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { 23 | @Override 24 | public boolean getUseDeveloperSupport() { 25 | return BuildConfig.DEBUG; 26 | } 27 | 28 | @Override 29 | protected List getPackages() { 30 | return Arrays.asList( 31 | new MainReactPackage(), 32 | new SvgPackage(), 33 | new SplashScreenReactPackage(), 34 | new RNGestureHandlerPackage(), 35 | new LinearGradientPackage(), 36 | new RCTCameraPackage(), 37 | new VectorIconsPackage() 38 | ); 39 | } 40 | 41 | @Override 42 | protected String getJSMainModuleName() { 43 | return "index"; 44 | } 45 | }; 46 | 47 | @Override 48 | public ReactNativeHost getReactNativeHost() { 49 | return mReactNativeHost; 50 | } 51 | 52 | @Override 53 | public void onCreate() { 54 | super.onCreate(); 55 | SoLoader.init(this, /* native exopackage */ false); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | demo 3 | 4 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:2.2.3' 9 | 10 | // NOTE: Do not place your application dependencies here; they belong 11 | // in the individual module build.gradle files 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | mavenLocal() 18 | jcenter() 19 | maven { 20 | // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm 21 | url "$rootDir/../node_modules/react-native/android" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | 20 | android.useDeprecatedNdk=true 21 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip 6 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /android/keystores/BUCK: -------------------------------------------------------------------------------- 1 | keystore( 2 | name = "debug", 3 | properties = "debug.keystore.properties", 4 | store = "debug.keystore", 5 | visibility = [ 6 | "PUBLIC", 7 | ], 8 | ) 9 | -------------------------------------------------------------------------------- /android/keystores/debug.keystore.properties: -------------------------------------------------------------------------------- 1 | key.store=debug.keystore 2 | key.alias=androiddebugkey 3 | key.store.password=android 4 | key.alias.password=android 5 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'demo' 2 | include ':react-native-svg' 3 | project(':react-native-svg').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-svg/android') 4 | include ':react-native-splash-screen' 5 | project(':react-native-splash-screen').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-splash-screen/android') 6 | include ':react-native-gesture-handler' 7 | project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/android') 8 | include ':react-native-linear-gradient' 9 | project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android') 10 | include ':react-native-vector-icons' 11 | project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android') 12 | 13 | include ':app' 14 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demo", 3 | "displayName": "demo" 4 | } -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | import { AppRegistry } from 'react-native'; 2 | import App from './src'; 3 | 4 | AppRegistry.registerComponent('demo', () => App); 5 | -------------------------------------------------------------------------------- /ios/demo-tvOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | UIViewControllerBasedStatusBarAppearance 38 | 39 | NSLocationWhenInUseUsageDescription 40 | 41 | NSAppTransportSecurity 42 | 43 | 44 | NSExceptionDomains 45 | 46 | localhost 47 | 48 | NSExceptionAllowsInsecureHTTPLoads 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /ios/demo-tvOSTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /ios/demo.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 /* demoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* demoTests.m */; }; 16 | 0EBD98EBACF5494F823985D5 /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 73668844ACB9452FBEB5FFC9 /* SimpleLineIcons.ttf */; }; 17 | 0F3763463CA9440885806FC9 /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 2C1C555FF36F48439BA8D5FC /* EvilIcons.ttf */; }; 18 | 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; }; 19 | 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; }; 20 | 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; }; 21 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; 22 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; 23 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 24 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 25 | 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 26 | 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 27 | 18D1FC753FE7459EB80EE89C /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 90A4D34D3648450CA8B728ED /* Ionicons.ttf */; }; 28 | 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; 29 | 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 30 | 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 31 | 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; 32 | 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */; }; 33 | 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */; }; 34 | 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */; }; 35 | 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */; }; 36 | 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */; }; 37 | 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; }; 38 | 2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D16E6891FA4F8E400B85C8A /* libReact.a */; }; 39 | 2DCD954D1E0B4F2C00145EB5 /* demoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* demoTests.m */; }; 40 | 363B65C5BDD24982AC0EA94A /* FontAwesome5_Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = FDCA5F42ABFC4442B457A2F9 /* FontAwesome5_Regular.ttf */; }; 41 | 39636179B6054D58A22303A1 /* AntDesign.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9E1BD482B988447C9C2CC016 /* AntDesign.ttf */; }; 42 | 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; 43 | 64A68D0A49F04C928EAA60EB /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1FB709AFD9B3415BBFC94E1A /* FontAwesome.ttf */; }; 44 | 668E9E6C8A9E4C4C81D7085C /* FontAwesome5_Brands.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B462B2C3020A43AF9D443DAD /* FontAwesome5_Brands.ttf */; }; 45 | 75991DCC820844CF8529C03A /* MaterialCommunityIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B99B00A11896486C9A26F4F0 /* MaterialCommunityIcons.ttf */; }; 46 | 7673CCCFFFD4479CB893FF79 /* libRNGestureHandler.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D6B6334CC01C4907A8556D22 /* libRNGestureHandler.a */; }; 47 | 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; 48 | 98FAC4D3F3734EB69FFD402A /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B0773E45CAAC41398C69C609 /* MaterialIcons.ttf */; }; 49 | 99A4F8A5E9A5487BBE1DC41C /* libRNSVG.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C2267DDF2CB4F95BDF707CF /* libRNSVG.a */; }; 50 | A305EC2D62194995A7D45179 /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1BE2B734387D43E78FD836F7 /* Entypo.ttf */; }; 51 | AC3CC72A551A40A68BC7018A /* libRNSVG-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F63596C00A742BF96E43A76 /* libRNSVG-tvOS.a */; }; 52 | ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; }; 53 | B494A54B098A4827A190B5DA /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C8774AD7A0BF46109022B141 /* libRNVectorIcons.a */; }; 54 | BB9B4721145042C88A6DD7EF /* libSplashScreen.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B32497C22854ECFACA0CDD4 /* libSplashScreen.a */; }; 55 | BF07BAD2FF47408D887A674E /* FontAwesome5_Solid.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 57CFC5E96A164E99870143FA /* FontAwesome5_Solid.ttf */; }; 56 | D2DC19C78F0C478E8B4CB50E /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 74942DD1DDA6427A95ECECF3 /* Octicons.ttf */; }; 57 | DC728A0C42B84BB7B10DE7BB /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1B1F4B80CC664E4BB74412CE /* Feather.ttf */; }; 58 | FE90E8C5E2654C29A2639B3E /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = DE04A4EFA54245FEA0FEFE0A /* Zocial.ttf */; }; 59 | FEE9E255BF36457FAB7154F4 /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 8EA65C80E425418A979F80E7 /* Foundation.ttf */; }; 60 | /* End PBXBuildFile section */ 61 | 62 | /* Begin PBXContainerItemProxy section */ 63 | 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */ = { 64 | isa = PBXContainerItemProxy; 65 | containerPortal = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; 66 | proxyType = 2; 67 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 68 | remoteInfo = RCTActionSheet; 69 | }; 70 | 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */ = { 71 | isa = PBXContainerItemProxy; 72 | containerPortal = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; 73 | proxyType = 2; 74 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 75 | remoteInfo = RCTGeolocation; 76 | }; 77 | 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */ = { 78 | isa = PBXContainerItemProxy; 79 | containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; 80 | proxyType = 2; 81 | remoteGlobalIDString = 58B5115D1A9E6B3D00147676; 82 | remoteInfo = RCTImage; 83 | }; 84 | 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */ = { 85 | isa = PBXContainerItemProxy; 86 | containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; 87 | proxyType = 2; 88 | remoteGlobalIDString = 58B511DB1A9E6C8500147676; 89 | remoteInfo = RCTNetwork; 90 | }; 91 | 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */ = { 92 | isa = PBXContainerItemProxy; 93 | containerPortal = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; 94 | proxyType = 2; 95 | remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; 96 | remoteInfo = RCTVibration; 97 | }; 98 | 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { 99 | isa = PBXContainerItemProxy; 100 | containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; 101 | proxyType = 1; 102 | remoteGlobalIDString = 13B07F861A680F5B00A75B9A; 103 | remoteInfo = demo; 104 | }; 105 | 048219DC202D7E94007846C2 /* PBXContainerItemProxy */ = { 106 | isa = PBXContainerItemProxy; 107 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 108 | proxyType = 2; 109 | remoteGlobalIDString = 139D7ECE1E25DB7D00323FB7; 110 | remoteInfo = "third-party"; 111 | }; 112 | 048219DE202D7E94007846C2 /* PBXContainerItemProxy */ = { 113 | isa = PBXContainerItemProxy; 114 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 115 | proxyType = 2; 116 | remoteGlobalIDString = 3D383D3C1EBD27B6005632C8; 117 | remoteInfo = "third-party-tvOS"; 118 | }; 119 | 048219E0202D7E94007846C2 /* PBXContainerItemProxy */ = { 120 | isa = PBXContainerItemProxy; 121 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 122 | proxyType = 2; 123 | remoteGlobalIDString = 139D7E881E25C6D100323FB7; 124 | remoteInfo = "double-conversion"; 125 | }; 126 | 048219E2202D7E94007846C2 /* PBXContainerItemProxy */ = { 127 | isa = PBXContainerItemProxy; 128 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 129 | proxyType = 2; 130 | remoteGlobalIDString = 3D383D621EBD27B9005632C8; 131 | remoteInfo = "double-conversion-tvOS"; 132 | }; 133 | 048219E4202D7E94007846C2 /* PBXContainerItemProxy */ = { 134 | isa = PBXContainerItemProxy; 135 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 136 | proxyType = 2; 137 | remoteGlobalIDString = 9936F3131F5F2E4B0010BF04; 138 | remoteInfo = privatedata; 139 | }; 140 | 048219E6202D7E94007846C2 /* PBXContainerItemProxy */ = { 141 | isa = PBXContainerItemProxy; 142 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 143 | proxyType = 2; 144 | remoteGlobalIDString = 9936F32F1F5F2E5B0010BF04; 145 | remoteInfo = "privatedata-tvOS"; 146 | }; 147 | 048859D1202E9B25001FCA07 /* PBXContainerItemProxy */ = { 148 | isa = PBXContainerItemProxy; 149 | containerPortal = D88C2A738AFD4F738290DE7E /* RNVectorIcons.xcodeproj */; 150 | proxyType = 2; 151 | remoteGlobalIDString = 5DBEB1501B18CEA900B34395; 152 | remoteInfo = RNVectorIcons; 153 | }; 154 | 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = { 155 | isa = PBXContainerItemProxy; 156 | containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; 157 | proxyType = 2; 158 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 159 | remoteInfo = RCTSettings; 160 | }; 161 | 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */ = { 162 | isa = PBXContainerItemProxy; 163 | containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; 164 | proxyType = 2; 165 | remoteGlobalIDString = 3C86DF461ADF2C930047B81A; 166 | remoteInfo = RCTWebSocket; 167 | }; 168 | 146834031AC3E56700842450 /* PBXContainerItemProxy */ = { 169 | isa = PBXContainerItemProxy; 170 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 171 | proxyType = 2; 172 | remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; 173 | remoteInfo = React; 174 | }; 175 | 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = { 176 | isa = PBXContainerItemProxy; 177 | containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; 178 | proxyType = 1; 179 | remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7; 180 | remoteInfo = "demo-tvOS"; 181 | }; 182 | 2D16E6711FA4F8DC00B85C8A /* PBXContainerItemProxy */ = { 183 | isa = PBXContainerItemProxy; 184 | containerPortal = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */; 185 | proxyType = 2; 186 | remoteGlobalIDString = ADD01A681E09402E00F6D226; 187 | remoteInfo = "RCTBlob-tvOS"; 188 | }; 189 | 2D16E6831FA4F8DC00B85C8A /* PBXContainerItemProxy */ = { 190 | isa = PBXContainerItemProxy; 191 | containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; 192 | proxyType = 2; 193 | remoteGlobalIDString = 3DBE0D001F3B181A0099AA32; 194 | remoteInfo = fishhook; 195 | }; 196 | 2D16E6851FA4F8DC00B85C8A /* PBXContainerItemProxy */ = { 197 | isa = PBXContainerItemProxy; 198 | containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; 199 | proxyType = 2; 200 | remoteGlobalIDString = 3DBE0D0D1F3B181C0099AA32; 201 | remoteInfo = "fishhook-tvOS"; 202 | }; 203 | 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */ = { 204 | isa = PBXContainerItemProxy; 205 | containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; 206 | proxyType = 2; 207 | remoteGlobalIDString = 2D2A283A1D9B042B00D4039D; 208 | remoteInfo = "RCTImage-tvOS"; 209 | }; 210 | 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */ = { 211 | isa = PBXContainerItemProxy; 212 | containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; 213 | proxyType = 2; 214 | remoteGlobalIDString = 2D2A28471D9B043800D4039D; 215 | remoteInfo = "RCTLinking-tvOS"; 216 | }; 217 | 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */ = { 218 | isa = PBXContainerItemProxy; 219 | containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; 220 | proxyType = 2; 221 | remoteGlobalIDString = 2D2A28541D9B044C00D4039D; 222 | remoteInfo = "RCTNetwork-tvOS"; 223 | }; 224 | 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */ = { 225 | isa = PBXContainerItemProxy; 226 | containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; 227 | proxyType = 2; 228 | remoteGlobalIDString = 2D2A28611D9B046600D4039D; 229 | remoteInfo = "RCTSettings-tvOS"; 230 | }; 231 | 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */ = { 232 | isa = PBXContainerItemProxy; 233 | containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; 234 | proxyType = 2; 235 | remoteGlobalIDString = 2D2A287B1D9B048500D4039D; 236 | remoteInfo = "RCTText-tvOS"; 237 | }; 238 | 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */ = { 239 | isa = PBXContainerItemProxy; 240 | containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; 241 | proxyType = 2; 242 | remoteGlobalIDString = 2D2A28881D9B049200D4039D; 243 | remoteInfo = "RCTWebSocket-tvOS"; 244 | }; 245 | 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */ = { 246 | isa = PBXContainerItemProxy; 247 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 248 | proxyType = 2; 249 | remoteGlobalIDString = 2D2A28131D9B038B00D4039D; 250 | remoteInfo = "React-tvOS"; 251 | }; 252 | 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */ = { 253 | isa = PBXContainerItemProxy; 254 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 255 | proxyType = 2; 256 | remoteGlobalIDString = 3D3C059A1DE3340900C268FA; 257 | remoteInfo = yoga; 258 | }; 259 | 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */ = { 260 | isa = PBXContainerItemProxy; 261 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 262 | proxyType = 2; 263 | remoteGlobalIDString = 3D3C06751DE3340C00C268FA; 264 | remoteInfo = "yoga-tvOS"; 265 | }; 266 | 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */ = { 267 | isa = PBXContainerItemProxy; 268 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 269 | proxyType = 2; 270 | remoteGlobalIDString = 3D3CD9251DE5FBEC00167DC4; 271 | remoteInfo = cxxreact; 272 | }; 273 | 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */ = { 274 | isa = PBXContainerItemProxy; 275 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 276 | proxyType = 2; 277 | remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4; 278 | remoteInfo = "cxxreact-tvOS"; 279 | }; 280 | 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */ = { 281 | isa = PBXContainerItemProxy; 282 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 283 | proxyType = 2; 284 | remoteGlobalIDString = 3D3CD90B1DE5FBD600167DC4; 285 | remoteInfo = jschelpers; 286 | }; 287 | 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */ = { 288 | isa = PBXContainerItemProxy; 289 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 290 | proxyType = 2; 291 | remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4; 292 | remoteInfo = "jschelpers-tvOS"; 293 | }; 294 | 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { 295 | isa = PBXContainerItemProxy; 296 | containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; 297 | proxyType = 2; 298 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 299 | remoteInfo = RCTAnimation; 300 | }; 301 | 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { 302 | isa = PBXContainerItemProxy; 303 | containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; 304 | proxyType = 2; 305 | remoteGlobalIDString = 2D2A28201D9B03D100D4039D; 306 | remoteInfo = "RCTAnimation-tvOS"; 307 | }; 308 | 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = { 309 | isa = PBXContainerItemProxy; 310 | containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; 311 | proxyType = 2; 312 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 313 | remoteInfo = RCTLinking; 314 | }; 315 | 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */ = { 316 | isa = PBXContainerItemProxy; 317 | containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; 318 | proxyType = 2; 319 | remoteGlobalIDString = 58B5119B1A9E6C1200147676; 320 | remoteInfo = RCTText; 321 | }; 322 | ADBDB9261DFEBF0700ED6528 /* PBXContainerItemProxy */ = { 323 | isa = PBXContainerItemProxy; 324 | containerPortal = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */; 325 | proxyType = 2; 326 | remoteGlobalIDString = 358F4ED71D1E81A9004DF814; 327 | remoteInfo = RCTBlob; 328 | }; 329 | D85CA7AB21DF1A4900D164E2 /* PBXContainerItemProxy */ = { 330 | isa = PBXContainerItemProxy; 331 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 332 | proxyType = 2; 333 | remoteGlobalIDString = EBF21BDC1FC498900052F4D5; 334 | remoteInfo = jsinspector; 335 | }; 336 | D85CA7AD21DF1A4900D164E2 /* PBXContainerItemProxy */ = { 337 | isa = PBXContainerItemProxy; 338 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 339 | proxyType = 2; 340 | remoteGlobalIDString = EBF21BFA1FC4989A0052F4D5; 341 | remoteInfo = "jsinspector-tvOS"; 342 | }; 343 | D85CA7B121DF1A4900D164E2 /* PBXContainerItemProxy */ = { 344 | isa = PBXContainerItemProxy; 345 | containerPortal = D88C2A738AFD4F738290DE7E /* RNVectorIcons.xcodeproj */; 346 | proxyType = 2; 347 | remoteGlobalIDString = A39873CE1EA65EE60051E01A; 348 | remoteInfo = "RNVectorIcons-tvOS"; 349 | }; 350 | D85CA7BA21DF1A4C00D164E2 /* PBXContainerItemProxy */ = { 351 | isa = PBXContainerItemProxy; 352 | containerPortal = B9C471476A7F4255A2AB7A28 /* RNGestureHandler.xcodeproj */; 353 | proxyType = 2; 354 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 355 | remoteInfo = RNGestureHandler; 356 | }; 357 | D85CA7BE21DF1A4C00D164E2 /* PBXContainerItemProxy */ = { 358 | isa = PBXContainerItemProxy; 359 | containerPortal = CDAE3BCC8DCB4FEA9CDCDC72 /* RNSVG.xcodeproj */; 360 | proxyType = 2; 361 | remoteGlobalIDString = 0CF68AC11AF0540F00FF9E5C; 362 | remoteInfo = RNSVG; 363 | }; 364 | D85CA7C021DF1A4C00D164E2 /* PBXContainerItemProxy */ = { 365 | isa = PBXContainerItemProxy; 366 | containerPortal = CDAE3BCC8DCB4FEA9CDCDC72 /* RNSVG.xcodeproj */; 367 | proxyType = 2; 368 | remoteGlobalIDString = 94DDAC5C1F3D024300EED511; 369 | remoteInfo = "RNSVG-tvOS"; 370 | }; 371 | D85CA7C321DF1A4C00D164E2 /* PBXContainerItemProxy */ = { 372 | isa = PBXContainerItemProxy; 373 | containerPortal = A310891D02A940999A3747C3 /* SplashScreen.xcodeproj */; 374 | proxyType = 2; 375 | remoteGlobalIDString = 3D7682761D8E76B80014119E; 376 | remoteInfo = SplashScreen; 377 | }; 378 | /* End PBXContainerItemProxy section */ 379 | 380 | /* Begin PBXFileReference section */ 381 | 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; 382 | 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = ""; }; 383 | 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = ""; }; 384 | 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = ""; }; 385 | 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = ""; }; 386 | 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = ""; }; 387 | 00E356EE1AD99517003FC87E /* demoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = demoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 388 | 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 389 | 00E356F21AD99517003FC87E /* demoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = demoTests.m; sourceTree = ""; }; 390 | 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; 391 | 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; }; 392 | 13B07F961A680F5B00A75B9A /* demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = demo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 393 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = demo/AppDelegate.h; sourceTree = ""; }; 394 | 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = demo/AppDelegate.m; sourceTree = ""; }; 395 | 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 396 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = demo/Images.xcassets; sourceTree = ""; }; 397 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = demo/Info.plist; sourceTree = ""; }; 398 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = demo/main.m; sourceTree = ""; }; 399 | 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; 400 | 1B1F4B80CC664E4BB74412CE /* Feather.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Feather.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Feather.ttf"; sourceTree = ""; }; 401 | 1BE2B734387D43E78FD836F7 /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = ""; }; 402 | 1F63596C00A742BF96E43A76 /* libRNSVG-tvOS.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = "libRNSVG-tvOS.a"; sourceTree = ""; }; 403 | 1FB709AFD9B3415BBFC94E1A /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = ""; }; 404 | 2C1C555FF36F48439BA8D5FC /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = ""; }; 405 | 2D02E47B1E0B4A5D006451C7 /* demo-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "demo-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 406 | 2D02E4901E0B4A5D006451C7 /* demo-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "demo-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 407 | 2D16E6891FA4F8E400B85C8A /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; }; 408 | 4C2267DDF2CB4F95BDF707CF /* libRNSVG.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNSVG.a; sourceTree = ""; }; 409 | 57CFC5E96A164E99870143FA /* FontAwesome5_Solid.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Solid.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf"; sourceTree = ""; }; 410 | 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = ""; }; 411 | 73668844ACB9452FBEB5FFC9 /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = SimpleLineIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"; sourceTree = ""; }; 412 | 74942DD1DDA6427A95ECECF3 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; }; 413 | 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; 414 | 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; 415 | 8B32497C22854ECFACA0CDD4 /* libSplashScreen.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libSplashScreen.a; sourceTree = ""; }; 416 | 8D7E7D1AF22F4BC49A3C0704 /* libBVLinearGradient.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libBVLinearGradient.a; sourceTree = ""; }; 417 | 8EA65C80E425418A979F80E7 /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; }; 418 | 90A4D34D3648450CA8B728ED /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = ""; }; 419 | 9E1BD482B988447C9C2CC016 /* AntDesign.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = AntDesign.ttf; path = "../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf"; sourceTree = ""; }; 420 | A22A7346125748FDA36F5D20 /* libRCTCamera.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRCTCamera.a; sourceTree = ""; }; 421 | A310891D02A940999A3747C3 /* SplashScreen.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = SplashScreen.xcodeproj; path = "../node_modules/react-native-splash-screen/ios/SplashScreen.xcodeproj"; sourceTree = ""; }; 422 | ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = ""; }; 423 | B0773E45CAAC41398C69C609 /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; }; 424 | B462B2C3020A43AF9D443DAD /* FontAwesome5_Brands.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Brands.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf"; sourceTree = ""; }; 425 | B99B00A11896486C9A26F4F0 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialCommunityIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = ""; }; 426 | B9C471476A7F4255A2AB7A28 /* RNGestureHandler.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNGestureHandler.xcodeproj; path = "../node_modules/react-native-gesture-handler/ios/RNGestureHandler.xcodeproj"; sourceTree = ""; }; 427 | C8774AD7A0BF46109022B141 /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = ""; }; 428 | CDAE3BCC8DCB4FEA9CDCDC72 /* 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 = ""; }; 429 | D6B6334CC01C4907A8556D22 /* libRNGestureHandler.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNGestureHandler.a; sourceTree = ""; }; 430 | D88C2A738AFD4F738290DE7E /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = ""; }; 431 | DE04A4EFA54245FEA0FEFE0A /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = ""; }; 432 | FDCA5F42ABFC4442B457A2F9 /* FontAwesome5_Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Regular.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf"; sourceTree = ""; }; 433 | /* End PBXFileReference section */ 434 | 435 | /* Begin PBXFrameworksBuildPhase section */ 436 | 00E356EB1AD99517003FC87E /* Frameworks */ = { 437 | isa = PBXFrameworksBuildPhase; 438 | buildActionMask = 2147483647; 439 | files = ( 440 | 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */, 441 | ); 442 | runOnlyForDeploymentPostprocessing = 0; 443 | }; 444 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { 445 | isa = PBXFrameworksBuildPhase; 446 | buildActionMask = 2147483647; 447 | files = ( 448 | ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */, 449 | 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */, 450 | 146834051AC3E58100842450 /* libReact.a in Frameworks */, 451 | 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */, 452 | 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */, 453 | 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */, 454 | 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */, 455 | 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */, 456 | 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */, 457 | 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */, 458 | 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, 459 | 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, 460 | 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, 461 | B494A54B098A4827A190B5DA /* libRNVectorIcons.a in Frameworks */, 462 | 7673CCCFFFD4479CB893FF79 /* libRNGestureHandler.a in Frameworks */, 463 | BB9B4721145042C88A6DD7EF /* libSplashScreen.a in Frameworks */, 464 | 99A4F8A5E9A5487BBE1DC41C /* libRNSVG.a in Frameworks */, 465 | ); 466 | runOnlyForDeploymentPostprocessing = 0; 467 | }; 468 | 2D02E4781E0B4A5D006451C7 /* Frameworks */ = { 469 | isa = PBXFrameworksBuildPhase; 470 | buildActionMask = 2147483647; 471 | files = ( 472 | 2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */, 473 | 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation.a in Frameworks */, 474 | 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */, 475 | 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */, 476 | 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */, 477 | 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */, 478 | 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */, 479 | 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */, 480 | AC3CC72A551A40A68BC7018A /* libRNSVG-tvOS.a in Frameworks */, 481 | ); 482 | runOnlyForDeploymentPostprocessing = 0; 483 | }; 484 | 2D02E48D1E0B4A5D006451C7 /* Frameworks */ = { 485 | isa = PBXFrameworksBuildPhase; 486 | buildActionMask = 2147483647; 487 | files = ( 488 | ); 489 | runOnlyForDeploymentPostprocessing = 0; 490 | }; 491 | /* End PBXFrameworksBuildPhase section */ 492 | 493 | /* Begin PBXGroup section */ 494 | 00C302A81ABCB8CE00DB3ED1 /* Products */ = { 495 | isa = PBXGroup; 496 | children = ( 497 | 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */, 498 | ); 499 | name = Products; 500 | sourceTree = ""; 501 | }; 502 | 00C302B61ABCB90400DB3ED1 /* Products */ = { 503 | isa = PBXGroup; 504 | children = ( 505 | 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */, 506 | ); 507 | name = Products; 508 | sourceTree = ""; 509 | }; 510 | 00C302BC1ABCB91800DB3ED1 /* Products */ = { 511 | isa = PBXGroup; 512 | children = ( 513 | 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */, 514 | 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */, 515 | ); 516 | name = Products; 517 | sourceTree = ""; 518 | }; 519 | 00C302D41ABCB9D200DB3ED1 /* Products */ = { 520 | isa = PBXGroup; 521 | children = ( 522 | 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */, 523 | 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */, 524 | ); 525 | name = Products; 526 | sourceTree = ""; 527 | }; 528 | 00C302E01ABCB9EE00DB3ED1 /* Products */ = { 529 | isa = PBXGroup; 530 | children = ( 531 | 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */, 532 | ); 533 | name = Products; 534 | sourceTree = ""; 535 | }; 536 | 00E356EF1AD99517003FC87E /* demoTests */ = { 537 | isa = PBXGroup; 538 | children = ( 539 | 00E356F21AD99517003FC87E /* demoTests.m */, 540 | 00E356F01AD99517003FC87E /* Supporting Files */, 541 | ); 542 | path = demoTests; 543 | sourceTree = ""; 544 | }; 545 | 00E356F01AD99517003FC87E /* Supporting Files */ = { 546 | isa = PBXGroup; 547 | children = ( 548 | 00E356F11AD99517003FC87E /* Info.plist */, 549 | ); 550 | name = "Supporting Files"; 551 | sourceTree = ""; 552 | }; 553 | 048859AA202E9B23001FCA07 /* Recovered References */ = { 554 | isa = PBXGroup; 555 | children = ( 556 | C8774AD7A0BF46109022B141 /* libRNVectorIcons.a */, 557 | A22A7346125748FDA36F5D20 /* libRCTCamera.a */, 558 | 8D7E7D1AF22F4BC49A3C0704 /* libBVLinearGradient.a */, 559 | D6B6334CC01C4907A8556D22 /* libRNGestureHandler.a */, 560 | 8B32497C22854ECFACA0CDD4 /* libSplashScreen.a */, 561 | 4C2267DDF2CB4F95BDF707CF /* libRNSVG.a */, 562 | 1F63596C00A742BF96E43A76 /* libRNSVG-tvOS.a */, 563 | ); 564 | name = "Recovered References"; 565 | sourceTree = ""; 566 | }; 567 | 048859CE202E9B25001FCA07 /* Products */ = { 568 | isa = PBXGroup; 569 | children = ( 570 | 048859D2202E9B25001FCA07 /* libRNVectorIcons.a */, 571 | D85CA7B221DF1A4900D164E2 /* libRNVectorIcons-tvOS.a */, 572 | ); 573 | name = Products; 574 | sourceTree = ""; 575 | }; 576 | 139105B71AF99BAD00B5F7CC /* Products */ = { 577 | isa = PBXGroup; 578 | children = ( 579 | 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */, 580 | 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */, 581 | ); 582 | name = Products; 583 | sourceTree = ""; 584 | }; 585 | 139FDEE71B06529A00C62182 /* Products */ = { 586 | isa = PBXGroup; 587 | children = ( 588 | 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */, 589 | 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */, 590 | 2D16E6841FA4F8DC00B85C8A /* libfishhook.a */, 591 | 2D16E6861FA4F8DC00B85C8A /* libfishhook-tvOS.a */, 592 | ); 593 | name = Products; 594 | sourceTree = ""; 595 | }; 596 | 13B07FAE1A68108700A75B9A /* demo */ = { 597 | isa = PBXGroup; 598 | children = ( 599 | 008F07F21AC5B25A0029DE68 /* main.jsbundle */, 600 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 601 | 13B07FB01A68108700A75B9A /* AppDelegate.m */, 602 | 13B07FB51A68108700A75B9A /* Images.xcassets */, 603 | 13B07FB61A68108700A75B9A /* Info.plist */, 604 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, 605 | 13B07FB71A68108700A75B9A /* main.m */, 606 | ); 607 | name = demo; 608 | sourceTree = ""; 609 | }; 610 | 146834001AC3E56700842450 /* Products */ = { 611 | isa = PBXGroup; 612 | children = ( 613 | 146834041AC3E56700842450 /* libReact.a */, 614 | 3DAD3EA31DF850E9000B6D8A /* libReact.a */, 615 | 3DAD3EA51DF850E9000B6D8A /* libyoga.a */, 616 | 3DAD3EA71DF850E9000B6D8A /* libyoga.a */, 617 | 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */, 618 | 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */, 619 | 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */, 620 | 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */, 621 | D85CA7AC21DF1A4900D164E2 /* libjsinspector.a */, 622 | D85CA7AE21DF1A4900D164E2 /* libjsinspector-tvOS.a */, 623 | 048219DD202D7E94007846C2 /* libthird-party.a */, 624 | 048219DF202D7E94007846C2 /* libthird-party.a */, 625 | 048219E1202D7E94007846C2 /* libdouble-conversion.a */, 626 | 048219E3202D7E94007846C2 /* libdouble-conversion.a */, 627 | 048219E5202D7E94007846C2 /* libprivatedata.a */, 628 | 048219E7202D7E94007846C2 /* libprivatedata-tvOS.a */, 629 | ); 630 | name = Products; 631 | sourceTree = ""; 632 | }; 633 | 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { 634 | isa = PBXGroup; 635 | children = ( 636 | 2D16E6891FA4F8E400B85C8A /* libReact.a */, 637 | ); 638 | name = Frameworks; 639 | sourceTree = ""; 640 | }; 641 | 4A1A8B0A435045B994A5EA6D /* Resources */ = { 642 | isa = PBXGroup; 643 | children = ( 644 | 1BE2B734387D43E78FD836F7 /* Entypo.ttf */, 645 | 2C1C555FF36F48439BA8D5FC /* EvilIcons.ttf */, 646 | 1B1F4B80CC664E4BB74412CE /* Feather.ttf */, 647 | 1FB709AFD9B3415BBFC94E1A /* FontAwesome.ttf */, 648 | 8EA65C80E425418A979F80E7 /* Foundation.ttf */, 649 | 90A4D34D3648450CA8B728ED /* Ionicons.ttf */, 650 | B99B00A11896486C9A26F4F0 /* MaterialCommunityIcons.ttf */, 651 | B0773E45CAAC41398C69C609 /* MaterialIcons.ttf */, 652 | 74942DD1DDA6427A95ECECF3 /* Octicons.ttf */, 653 | 73668844ACB9452FBEB5FFC9 /* SimpleLineIcons.ttf */, 654 | DE04A4EFA54245FEA0FEFE0A /* Zocial.ttf */, 655 | 9E1BD482B988447C9C2CC016 /* AntDesign.ttf */, 656 | B462B2C3020A43AF9D443DAD /* FontAwesome5_Brands.ttf */, 657 | FDCA5F42ABFC4442B457A2F9 /* FontAwesome5_Regular.ttf */, 658 | 57CFC5E96A164E99870143FA /* FontAwesome5_Solid.ttf */, 659 | ); 660 | name = Resources; 661 | sourceTree = ""; 662 | }; 663 | 5E91572E1DD0AC6500FF2AA8 /* Products */ = { 664 | isa = PBXGroup; 665 | children = ( 666 | 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */, 667 | 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */, 668 | ); 669 | name = Products; 670 | sourceTree = ""; 671 | }; 672 | 78C398B11ACF4ADC00677621 /* Products */ = { 673 | isa = PBXGroup; 674 | children = ( 675 | 78C398B91ACF4ADC00677621 /* libRCTLinking.a */, 676 | 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */, 677 | ); 678 | name = Products; 679 | sourceTree = ""; 680 | }; 681 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = { 682 | isa = PBXGroup; 683 | children = ( 684 | 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */, 685 | 146833FF1AC3E56700842450 /* React.xcodeproj */, 686 | 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */, 687 | ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */, 688 | 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */, 689 | 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */, 690 | 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */, 691 | 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */, 692 | 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */, 693 | 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */, 694 | 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */, 695 | 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */, 696 | D88C2A738AFD4F738290DE7E /* RNVectorIcons.xcodeproj */, 697 | B9C471476A7F4255A2AB7A28 /* RNGestureHandler.xcodeproj */, 698 | A310891D02A940999A3747C3 /* SplashScreen.xcodeproj */, 699 | CDAE3BCC8DCB4FEA9CDCDC72 /* RNSVG.xcodeproj */, 700 | ); 701 | name = Libraries; 702 | sourceTree = ""; 703 | }; 704 | 832341B11AAA6A8300B99B32 /* Products */ = { 705 | isa = PBXGroup; 706 | children = ( 707 | 832341B51AAA6A8300B99B32 /* libRCTText.a */, 708 | 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */, 709 | ); 710 | name = Products; 711 | sourceTree = ""; 712 | }; 713 | 83CBB9F61A601CBA00E9B192 = { 714 | isa = PBXGroup; 715 | children = ( 716 | 13B07FAE1A68108700A75B9A /* demo */, 717 | 832341AE1AAA6A7D00B99B32 /* Libraries */, 718 | 00E356EF1AD99517003FC87E /* demoTests */, 719 | 83CBBA001A601CBA00E9B192 /* Products */, 720 | 2D16E6871FA4F8E400B85C8A /* Frameworks */, 721 | 4A1A8B0A435045B994A5EA6D /* Resources */, 722 | 048859AA202E9B23001FCA07 /* Recovered References */, 723 | ); 724 | indentWidth = 2; 725 | sourceTree = ""; 726 | tabWidth = 2; 727 | usesTabs = 0; 728 | }; 729 | 83CBBA001A601CBA00E9B192 /* Products */ = { 730 | isa = PBXGroup; 731 | children = ( 732 | 13B07F961A680F5B00A75B9A /* demo.app */, 733 | 00E356EE1AD99517003FC87E /* demoTests.xctest */, 734 | 2D02E47B1E0B4A5D006451C7 /* demo-tvOS.app */, 735 | 2D02E4901E0B4A5D006451C7 /* demo-tvOSTests.xctest */, 736 | ); 737 | name = Products; 738 | sourceTree = ""; 739 | }; 740 | ADBDB9201DFEBF0600ED6528 /* Products */ = { 741 | isa = PBXGroup; 742 | children = ( 743 | ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */, 744 | 2D16E6721FA4F8DC00B85C8A /* libRCTBlob-tvOS.a */, 745 | ); 746 | name = Products; 747 | sourceTree = ""; 748 | }; 749 | D85CA7B321DF1A4B00D164E2 /* Products */ = { 750 | isa = PBXGroup; 751 | children = ( 752 | D85CA7BB21DF1A4C00D164E2 /* libRNGestureHandler.a */, 753 | ); 754 | name = Products; 755 | sourceTree = ""; 756 | }; 757 | D85CA7B521DF1A4C00D164E2 /* Products */ = { 758 | isa = PBXGroup; 759 | children = ( 760 | D85CA7C421DF1A4C00D164E2 /* libSplashScreen.a */, 761 | ); 762 | name = Products; 763 | sourceTree = ""; 764 | }; 765 | D85CA7B721DF1A4C00D164E2 /* Products */ = { 766 | isa = PBXGroup; 767 | children = ( 768 | D85CA7BF21DF1A4C00D164E2 /* libRNSVG.a */, 769 | D85CA7C121DF1A4C00D164E2 /* libRNSVG-tvOS.a */, 770 | ); 771 | name = Products; 772 | sourceTree = ""; 773 | }; 774 | /* End PBXGroup section */ 775 | 776 | /* Begin PBXNativeTarget section */ 777 | 00E356ED1AD99517003FC87E /* demoTests */ = { 778 | isa = PBXNativeTarget; 779 | buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "demoTests" */; 780 | buildPhases = ( 781 | 00E356EA1AD99517003FC87E /* Sources */, 782 | 00E356EB1AD99517003FC87E /* Frameworks */, 783 | 00E356EC1AD99517003FC87E /* Resources */, 784 | ); 785 | buildRules = ( 786 | ); 787 | dependencies = ( 788 | 00E356F51AD99517003FC87E /* PBXTargetDependency */, 789 | ); 790 | name = demoTests; 791 | productName = demoTests; 792 | productReference = 00E356EE1AD99517003FC87E /* demoTests.xctest */; 793 | productType = "com.apple.product-type.bundle.unit-test"; 794 | }; 795 | 13B07F861A680F5B00A75B9A /* demo */ = { 796 | isa = PBXNativeTarget; 797 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "demo" */; 798 | buildPhases = ( 799 | 13B07F871A680F5B00A75B9A /* Sources */, 800 | 13B07F8C1A680F5B00A75B9A /* Frameworks */, 801 | 13B07F8E1A680F5B00A75B9A /* Resources */, 802 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, 803 | ); 804 | buildRules = ( 805 | ); 806 | dependencies = ( 807 | ); 808 | name = demo; 809 | productName = "Hello World"; 810 | productReference = 13B07F961A680F5B00A75B9A /* demo.app */; 811 | productType = "com.apple.product-type.application"; 812 | }; 813 | 2D02E47A1E0B4A5D006451C7 /* demo-tvOS */ = { 814 | isa = PBXNativeTarget; 815 | buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "demo-tvOS" */; 816 | buildPhases = ( 817 | 2D02E4771E0B4A5D006451C7 /* Sources */, 818 | 2D02E4781E0B4A5D006451C7 /* Frameworks */, 819 | 2D02E4791E0B4A5D006451C7 /* Resources */, 820 | 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */, 821 | ); 822 | buildRules = ( 823 | ); 824 | dependencies = ( 825 | ); 826 | name = "demo-tvOS"; 827 | productName = "demo-tvOS"; 828 | productReference = 2D02E47B1E0B4A5D006451C7 /* demo-tvOS.app */; 829 | productType = "com.apple.product-type.application"; 830 | }; 831 | 2D02E48F1E0B4A5D006451C7 /* demo-tvOSTests */ = { 832 | isa = PBXNativeTarget; 833 | buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "demo-tvOSTests" */; 834 | buildPhases = ( 835 | 2D02E48C1E0B4A5D006451C7 /* Sources */, 836 | 2D02E48D1E0B4A5D006451C7 /* Frameworks */, 837 | 2D02E48E1E0B4A5D006451C7 /* Resources */, 838 | ); 839 | buildRules = ( 840 | ); 841 | dependencies = ( 842 | 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */, 843 | ); 844 | name = "demo-tvOSTests"; 845 | productName = "demo-tvOSTests"; 846 | productReference = 2D02E4901E0B4A5D006451C7 /* demo-tvOSTests.xctest */; 847 | productType = "com.apple.product-type.bundle.unit-test"; 848 | }; 849 | /* End PBXNativeTarget section */ 850 | 851 | /* Begin PBXProject section */ 852 | 83CBB9F71A601CBA00E9B192 /* Project object */ = { 853 | isa = PBXProject; 854 | attributes = { 855 | LastUpgradeCheck = 610; 856 | ORGANIZATIONNAME = Facebook; 857 | TargetAttributes = { 858 | 00E356ED1AD99517003FC87E = { 859 | CreatedOnToolsVersion = 6.2; 860 | TestTargetID = 13B07F861A680F5B00A75B9A; 861 | }; 862 | 2D02E47A1E0B4A5D006451C7 = { 863 | CreatedOnToolsVersion = 8.2.1; 864 | ProvisioningStyle = Automatic; 865 | }; 866 | 2D02E48F1E0B4A5D006451C7 = { 867 | CreatedOnToolsVersion = 8.2.1; 868 | ProvisioningStyle = Automatic; 869 | TestTargetID = 2D02E47A1E0B4A5D006451C7; 870 | }; 871 | }; 872 | }; 873 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "demo" */; 874 | compatibilityVersion = "Xcode 3.2"; 875 | developmentRegion = English; 876 | hasScannedForEncodings = 0; 877 | knownRegions = ( 878 | en, 879 | Base, 880 | ); 881 | mainGroup = 83CBB9F61A601CBA00E9B192; 882 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; 883 | projectDirPath = ""; 884 | projectReferences = ( 885 | { 886 | ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */; 887 | ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; 888 | }, 889 | { 890 | ProductGroup = 5E91572E1DD0AC6500FF2AA8 /* Products */; 891 | ProjectRef = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; 892 | }, 893 | { 894 | ProductGroup = ADBDB9201DFEBF0600ED6528 /* Products */; 895 | ProjectRef = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */; 896 | }, 897 | { 898 | ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */; 899 | ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; 900 | }, 901 | { 902 | ProductGroup = 00C302BC1ABCB91800DB3ED1 /* Products */; 903 | ProjectRef = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; 904 | }, 905 | { 906 | ProductGroup = 78C398B11ACF4ADC00677621 /* Products */; 907 | ProjectRef = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; 908 | }, 909 | { 910 | ProductGroup = 00C302D41ABCB9D200DB3ED1 /* Products */; 911 | ProjectRef = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; 912 | }, 913 | { 914 | ProductGroup = 139105B71AF99BAD00B5F7CC /* Products */; 915 | ProjectRef = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; 916 | }, 917 | { 918 | ProductGroup = 832341B11AAA6A8300B99B32 /* Products */; 919 | ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; 920 | }, 921 | { 922 | ProductGroup = 00C302E01ABCB9EE00DB3ED1 /* Products */; 923 | ProjectRef = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; 924 | }, 925 | { 926 | ProductGroup = 139FDEE71B06529A00C62182 /* Products */; 927 | ProjectRef = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; 928 | }, 929 | { 930 | ProductGroup = 146834001AC3E56700842450 /* Products */; 931 | ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; 932 | }, 933 | { 934 | ProductGroup = D85CA7B321DF1A4B00D164E2 /* Products */; 935 | ProjectRef = B9C471476A7F4255A2AB7A28 /* RNGestureHandler.xcodeproj */; 936 | }, 937 | { 938 | ProductGroup = D85CA7B721DF1A4C00D164E2 /* Products */; 939 | ProjectRef = CDAE3BCC8DCB4FEA9CDCDC72 /* RNSVG.xcodeproj */; 940 | }, 941 | { 942 | ProductGroup = 048859CE202E9B25001FCA07 /* Products */; 943 | ProjectRef = D88C2A738AFD4F738290DE7E /* RNVectorIcons.xcodeproj */; 944 | }, 945 | { 946 | ProductGroup = D85CA7B521DF1A4C00D164E2 /* Products */; 947 | ProjectRef = A310891D02A940999A3747C3 /* SplashScreen.xcodeproj */; 948 | }, 949 | ); 950 | projectRoot = ""; 951 | targets = ( 952 | 13B07F861A680F5B00A75B9A /* demo */, 953 | 00E356ED1AD99517003FC87E /* demoTests */, 954 | 2D02E47A1E0B4A5D006451C7 /* demo-tvOS */, 955 | 2D02E48F1E0B4A5D006451C7 /* demo-tvOSTests */, 956 | ); 957 | }; 958 | /* End PBXProject section */ 959 | 960 | /* Begin PBXReferenceProxy section */ 961 | 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */ = { 962 | isa = PBXReferenceProxy; 963 | fileType = archive.ar; 964 | path = libRCTActionSheet.a; 965 | remoteRef = 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */; 966 | sourceTree = BUILT_PRODUCTS_DIR; 967 | }; 968 | 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */ = { 969 | isa = PBXReferenceProxy; 970 | fileType = archive.ar; 971 | path = libRCTGeolocation.a; 972 | remoteRef = 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */; 973 | sourceTree = BUILT_PRODUCTS_DIR; 974 | }; 975 | 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */ = { 976 | isa = PBXReferenceProxy; 977 | fileType = archive.ar; 978 | path = libRCTImage.a; 979 | remoteRef = 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */; 980 | sourceTree = BUILT_PRODUCTS_DIR; 981 | }; 982 | 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */ = { 983 | isa = PBXReferenceProxy; 984 | fileType = archive.ar; 985 | path = libRCTNetwork.a; 986 | remoteRef = 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */; 987 | sourceTree = BUILT_PRODUCTS_DIR; 988 | }; 989 | 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */ = { 990 | isa = PBXReferenceProxy; 991 | fileType = archive.ar; 992 | path = libRCTVibration.a; 993 | remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */; 994 | sourceTree = BUILT_PRODUCTS_DIR; 995 | }; 996 | 048219DD202D7E94007846C2 /* libthird-party.a */ = { 997 | isa = PBXReferenceProxy; 998 | fileType = archive.ar; 999 | path = "libthird-party.a"; 1000 | remoteRef = 048219DC202D7E94007846C2 /* PBXContainerItemProxy */; 1001 | sourceTree = BUILT_PRODUCTS_DIR; 1002 | }; 1003 | 048219DF202D7E94007846C2 /* libthird-party.a */ = { 1004 | isa = PBXReferenceProxy; 1005 | fileType = archive.ar; 1006 | path = "libthird-party.a"; 1007 | remoteRef = 048219DE202D7E94007846C2 /* PBXContainerItemProxy */; 1008 | sourceTree = BUILT_PRODUCTS_DIR; 1009 | }; 1010 | 048219E1202D7E94007846C2 /* libdouble-conversion.a */ = { 1011 | isa = PBXReferenceProxy; 1012 | fileType = archive.ar; 1013 | path = "libdouble-conversion.a"; 1014 | remoteRef = 048219E0202D7E94007846C2 /* PBXContainerItemProxy */; 1015 | sourceTree = BUILT_PRODUCTS_DIR; 1016 | }; 1017 | 048219E3202D7E94007846C2 /* libdouble-conversion.a */ = { 1018 | isa = PBXReferenceProxy; 1019 | fileType = archive.ar; 1020 | path = "libdouble-conversion.a"; 1021 | remoteRef = 048219E2202D7E94007846C2 /* PBXContainerItemProxy */; 1022 | sourceTree = BUILT_PRODUCTS_DIR; 1023 | }; 1024 | 048219E5202D7E94007846C2 /* libprivatedata.a */ = { 1025 | isa = PBXReferenceProxy; 1026 | fileType = archive.ar; 1027 | path = libprivatedata.a; 1028 | remoteRef = 048219E4202D7E94007846C2 /* PBXContainerItemProxy */; 1029 | sourceTree = BUILT_PRODUCTS_DIR; 1030 | }; 1031 | 048219E7202D7E94007846C2 /* libprivatedata-tvOS.a */ = { 1032 | isa = PBXReferenceProxy; 1033 | fileType = archive.ar; 1034 | path = "libprivatedata-tvOS.a"; 1035 | remoteRef = 048219E6202D7E94007846C2 /* PBXContainerItemProxy */; 1036 | sourceTree = BUILT_PRODUCTS_DIR; 1037 | }; 1038 | 048859D2202E9B25001FCA07 /* libRNVectorIcons.a */ = { 1039 | isa = PBXReferenceProxy; 1040 | fileType = archive.ar; 1041 | path = libRNVectorIcons.a; 1042 | remoteRef = 048859D1202E9B25001FCA07 /* PBXContainerItemProxy */; 1043 | sourceTree = BUILT_PRODUCTS_DIR; 1044 | }; 1045 | 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = { 1046 | isa = PBXReferenceProxy; 1047 | fileType = archive.ar; 1048 | path = libRCTSettings.a; 1049 | remoteRef = 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */; 1050 | sourceTree = BUILT_PRODUCTS_DIR; 1051 | }; 1052 | 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */ = { 1053 | isa = PBXReferenceProxy; 1054 | fileType = archive.ar; 1055 | path = libRCTWebSocket.a; 1056 | remoteRef = 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */; 1057 | sourceTree = BUILT_PRODUCTS_DIR; 1058 | }; 1059 | 146834041AC3E56700842450 /* libReact.a */ = { 1060 | isa = PBXReferenceProxy; 1061 | fileType = archive.ar; 1062 | path = libReact.a; 1063 | remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */; 1064 | sourceTree = BUILT_PRODUCTS_DIR; 1065 | }; 1066 | 2D16E6721FA4F8DC00B85C8A /* libRCTBlob-tvOS.a */ = { 1067 | isa = PBXReferenceProxy; 1068 | fileType = archive.ar; 1069 | path = "libRCTBlob-tvOS.a"; 1070 | remoteRef = 2D16E6711FA4F8DC00B85C8A /* PBXContainerItemProxy */; 1071 | sourceTree = BUILT_PRODUCTS_DIR; 1072 | }; 1073 | 2D16E6841FA4F8DC00B85C8A /* libfishhook.a */ = { 1074 | isa = PBXReferenceProxy; 1075 | fileType = archive.ar; 1076 | path = libfishhook.a; 1077 | remoteRef = 2D16E6831FA4F8DC00B85C8A /* PBXContainerItemProxy */; 1078 | sourceTree = BUILT_PRODUCTS_DIR; 1079 | }; 1080 | 2D16E6861FA4F8DC00B85C8A /* libfishhook-tvOS.a */ = { 1081 | isa = PBXReferenceProxy; 1082 | fileType = archive.ar; 1083 | path = "libfishhook-tvOS.a"; 1084 | remoteRef = 2D16E6851FA4F8DC00B85C8A /* PBXContainerItemProxy */; 1085 | sourceTree = BUILT_PRODUCTS_DIR; 1086 | }; 1087 | 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */ = { 1088 | isa = PBXReferenceProxy; 1089 | fileType = archive.ar; 1090 | path = "libRCTImage-tvOS.a"; 1091 | remoteRef = 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */; 1092 | sourceTree = BUILT_PRODUCTS_DIR; 1093 | }; 1094 | 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */ = { 1095 | isa = PBXReferenceProxy; 1096 | fileType = archive.ar; 1097 | path = "libRCTLinking-tvOS.a"; 1098 | remoteRef = 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */; 1099 | sourceTree = BUILT_PRODUCTS_DIR; 1100 | }; 1101 | 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */ = { 1102 | isa = PBXReferenceProxy; 1103 | fileType = archive.ar; 1104 | path = "libRCTNetwork-tvOS.a"; 1105 | remoteRef = 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */; 1106 | sourceTree = BUILT_PRODUCTS_DIR; 1107 | }; 1108 | 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */ = { 1109 | isa = PBXReferenceProxy; 1110 | fileType = archive.ar; 1111 | path = "libRCTSettings-tvOS.a"; 1112 | remoteRef = 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */; 1113 | sourceTree = BUILT_PRODUCTS_DIR; 1114 | }; 1115 | 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */ = { 1116 | isa = PBXReferenceProxy; 1117 | fileType = archive.ar; 1118 | path = "libRCTText-tvOS.a"; 1119 | remoteRef = 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */; 1120 | sourceTree = BUILT_PRODUCTS_DIR; 1121 | }; 1122 | 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */ = { 1123 | isa = PBXReferenceProxy; 1124 | fileType = archive.ar; 1125 | path = "libRCTWebSocket-tvOS.a"; 1126 | remoteRef = 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */; 1127 | sourceTree = BUILT_PRODUCTS_DIR; 1128 | }; 1129 | 3DAD3EA31DF850E9000B6D8A /* libReact.a */ = { 1130 | isa = PBXReferenceProxy; 1131 | fileType = archive.ar; 1132 | path = libReact.a; 1133 | remoteRef = 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */; 1134 | sourceTree = BUILT_PRODUCTS_DIR; 1135 | }; 1136 | 3DAD3EA51DF850E9000B6D8A /* libyoga.a */ = { 1137 | isa = PBXReferenceProxy; 1138 | fileType = archive.ar; 1139 | path = libyoga.a; 1140 | remoteRef = 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */; 1141 | sourceTree = BUILT_PRODUCTS_DIR; 1142 | }; 1143 | 3DAD3EA71DF850E9000B6D8A /* libyoga.a */ = { 1144 | isa = PBXReferenceProxy; 1145 | fileType = archive.ar; 1146 | path = libyoga.a; 1147 | remoteRef = 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */; 1148 | sourceTree = BUILT_PRODUCTS_DIR; 1149 | }; 1150 | 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */ = { 1151 | isa = PBXReferenceProxy; 1152 | fileType = archive.ar; 1153 | path = libcxxreact.a; 1154 | remoteRef = 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */; 1155 | sourceTree = BUILT_PRODUCTS_DIR; 1156 | }; 1157 | 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */ = { 1158 | isa = PBXReferenceProxy; 1159 | fileType = archive.ar; 1160 | path = libcxxreact.a; 1161 | remoteRef = 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */; 1162 | sourceTree = BUILT_PRODUCTS_DIR; 1163 | }; 1164 | 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */ = { 1165 | isa = PBXReferenceProxy; 1166 | fileType = archive.ar; 1167 | path = libjschelpers.a; 1168 | remoteRef = 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */; 1169 | sourceTree = BUILT_PRODUCTS_DIR; 1170 | }; 1171 | 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */ = { 1172 | isa = PBXReferenceProxy; 1173 | fileType = archive.ar; 1174 | path = libjschelpers.a; 1175 | remoteRef = 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */; 1176 | sourceTree = BUILT_PRODUCTS_DIR; 1177 | }; 1178 | 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = { 1179 | isa = PBXReferenceProxy; 1180 | fileType = archive.ar; 1181 | path = libRCTAnimation.a; 1182 | remoteRef = 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */; 1183 | sourceTree = BUILT_PRODUCTS_DIR; 1184 | }; 1185 | 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */ = { 1186 | isa = PBXReferenceProxy; 1187 | fileType = archive.ar; 1188 | path = libRCTAnimation.a; 1189 | remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */; 1190 | sourceTree = BUILT_PRODUCTS_DIR; 1191 | }; 1192 | 78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = { 1193 | isa = PBXReferenceProxy; 1194 | fileType = archive.ar; 1195 | path = libRCTLinking.a; 1196 | remoteRef = 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */; 1197 | sourceTree = BUILT_PRODUCTS_DIR; 1198 | }; 1199 | 832341B51AAA6A8300B99B32 /* libRCTText.a */ = { 1200 | isa = PBXReferenceProxy; 1201 | fileType = archive.ar; 1202 | path = libRCTText.a; 1203 | remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */; 1204 | sourceTree = BUILT_PRODUCTS_DIR; 1205 | }; 1206 | ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */ = { 1207 | isa = PBXReferenceProxy; 1208 | fileType = archive.ar; 1209 | path = libRCTBlob.a; 1210 | remoteRef = ADBDB9261DFEBF0700ED6528 /* PBXContainerItemProxy */; 1211 | sourceTree = BUILT_PRODUCTS_DIR; 1212 | }; 1213 | D85CA7AC21DF1A4900D164E2 /* libjsinspector.a */ = { 1214 | isa = PBXReferenceProxy; 1215 | fileType = archive.ar; 1216 | path = libjsinspector.a; 1217 | remoteRef = D85CA7AB21DF1A4900D164E2 /* PBXContainerItemProxy */; 1218 | sourceTree = BUILT_PRODUCTS_DIR; 1219 | }; 1220 | D85CA7AE21DF1A4900D164E2 /* libjsinspector-tvOS.a */ = { 1221 | isa = PBXReferenceProxy; 1222 | fileType = archive.ar; 1223 | path = "libjsinspector-tvOS.a"; 1224 | remoteRef = D85CA7AD21DF1A4900D164E2 /* PBXContainerItemProxy */; 1225 | sourceTree = BUILT_PRODUCTS_DIR; 1226 | }; 1227 | D85CA7B221DF1A4900D164E2 /* libRNVectorIcons-tvOS.a */ = { 1228 | isa = PBXReferenceProxy; 1229 | fileType = archive.ar; 1230 | path = "libRNVectorIcons-tvOS.a"; 1231 | remoteRef = D85CA7B121DF1A4900D164E2 /* PBXContainerItemProxy */; 1232 | sourceTree = BUILT_PRODUCTS_DIR; 1233 | }; 1234 | D85CA7BB21DF1A4C00D164E2 /* libRNGestureHandler.a */ = { 1235 | isa = PBXReferenceProxy; 1236 | fileType = archive.ar; 1237 | path = libRNGestureHandler.a; 1238 | remoteRef = D85CA7BA21DF1A4C00D164E2 /* PBXContainerItemProxy */; 1239 | sourceTree = BUILT_PRODUCTS_DIR; 1240 | }; 1241 | D85CA7BF21DF1A4C00D164E2 /* libRNSVG.a */ = { 1242 | isa = PBXReferenceProxy; 1243 | fileType = archive.ar; 1244 | path = libRNSVG.a; 1245 | remoteRef = D85CA7BE21DF1A4C00D164E2 /* PBXContainerItemProxy */; 1246 | sourceTree = BUILT_PRODUCTS_DIR; 1247 | }; 1248 | D85CA7C121DF1A4C00D164E2 /* libRNSVG-tvOS.a */ = { 1249 | isa = PBXReferenceProxy; 1250 | fileType = archive.ar; 1251 | path = "libRNSVG-tvOS.a"; 1252 | remoteRef = D85CA7C021DF1A4C00D164E2 /* PBXContainerItemProxy */; 1253 | sourceTree = BUILT_PRODUCTS_DIR; 1254 | }; 1255 | D85CA7C421DF1A4C00D164E2 /* libSplashScreen.a */ = { 1256 | isa = PBXReferenceProxy; 1257 | fileType = archive.ar; 1258 | path = libSplashScreen.a; 1259 | remoteRef = D85CA7C321DF1A4C00D164E2 /* PBXContainerItemProxy */; 1260 | sourceTree = BUILT_PRODUCTS_DIR; 1261 | }; 1262 | /* End PBXReferenceProxy section */ 1263 | 1264 | /* Begin PBXResourcesBuildPhase section */ 1265 | 00E356EC1AD99517003FC87E /* Resources */ = { 1266 | isa = PBXResourcesBuildPhase; 1267 | buildActionMask = 2147483647; 1268 | files = ( 1269 | ); 1270 | runOnlyForDeploymentPostprocessing = 0; 1271 | }; 1272 | 13B07F8E1A680F5B00A75B9A /* Resources */ = { 1273 | isa = PBXResourcesBuildPhase; 1274 | buildActionMask = 2147483647; 1275 | files = ( 1276 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 1277 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, 1278 | A305EC2D62194995A7D45179 /* Entypo.ttf in Resources */, 1279 | 0F3763463CA9440885806FC9 /* EvilIcons.ttf in Resources */, 1280 | DC728A0C42B84BB7B10DE7BB /* Feather.ttf in Resources */, 1281 | 64A68D0A49F04C928EAA60EB /* FontAwesome.ttf in Resources */, 1282 | FEE9E255BF36457FAB7154F4 /* Foundation.ttf in Resources */, 1283 | 18D1FC753FE7459EB80EE89C /* Ionicons.ttf in Resources */, 1284 | 75991DCC820844CF8529C03A /* MaterialCommunityIcons.ttf in Resources */, 1285 | 98FAC4D3F3734EB69FFD402A /* MaterialIcons.ttf in Resources */, 1286 | D2DC19C78F0C478E8B4CB50E /* Octicons.ttf in Resources */, 1287 | 0EBD98EBACF5494F823985D5 /* SimpleLineIcons.ttf in Resources */, 1288 | FE90E8C5E2654C29A2639B3E /* Zocial.ttf in Resources */, 1289 | 39636179B6054D58A22303A1 /* AntDesign.ttf in Resources */, 1290 | 668E9E6C8A9E4C4C81D7085C /* FontAwesome5_Brands.ttf in Resources */, 1291 | 363B65C5BDD24982AC0EA94A /* FontAwesome5_Regular.ttf in Resources */, 1292 | BF07BAD2FF47408D887A674E /* FontAwesome5_Solid.ttf in Resources */, 1293 | ); 1294 | runOnlyForDeploymentPostprocessing = 0; 1295 | }; 1296 | 2D02E4791E0B4A5D006451C7 /* Resources */ = { 1297 | isa = PBXResourcesBuildPhase; 1298 | buildActionMask = 2147483647; 1299 | files = ( 1300 | 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */, 1301 | ); 1302 | runOnlyForDeploymentPostprocessing = 0; 1303 | }; 1304 | 2D02E48E1E0B4A5D006451C7 /* Resources */ = { 1305 | isa = PBXResourcesBuildPhase; 1306 | buildActionMask = 2147483647; 1307 | files = ( 1308 | ); 1309 | runOnlyForDeploymentPostprocessing = 0; 1310 | }; 1311 | /* End PBXResourcesBuildPhase section */ 1312 | 1313 | /* Begin PBXShellScriptBuildPhase section */ 1314 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { 1315 | isa = PBXShellScriptBuildPhase; 1316 | buildActionMask = 2147483647; 1317 | files = ( 1318 | ); 1319 | inputPaths = ( 1320 | ); 1321 | name = "Bundle React Native code and images"; 1322 | outputPaths = ( 1323 | ); 1324 | runOnlyForDeploymentPostprocessing = 0; 1325 | shellPath = /bin/sh; 1326 | shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; 1327 | }; 1328 | 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { 1329 | isa = PBXShellScriptBuildPhase; 1330 | buildActionMask = 2147483647; 1331 | files = ( 1332 | ); 1333 | inputPaths = ( 1334 | ); 1335 | name = "Bundle React Native Code And Images"; 1336 | outputPaths = ( 1337 | ); 1338 | runOnlyForDeploymentPostprocessing = 0; 1339 | shellPath = /bin/sh; 1340 | shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; 1341 | }; 1342 | /* End PBXShellScriptBuildPhase section */ 1343 | 1344 | /* Begin PBXSourcesBuildPhase section */ 1345 | 00E356EA1AD99517003FC87E /* Sources */ = { 1346 | isa = PBXSourcesBuildPhase; 1347 | buildActionMask = 2147483647; 1348 | files = ( 1349 | 00E356F31AD99517003FC87E /* demoTests.m in Sources */, 1350 | ); 1351 | runOnlyForDeploymentPostprocessing = 0; 1352 | }; 1353 | 13B07F871A680F5B00A75B9A /* Sources */ = { 1354 | isa = PBXSourcesBuildPhase; 1355 | buildActionMask = 2147483647; 1356 | files = ( 1357 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, 1358 | 13B07FC11A68108700A75B9A /* main.m in Sources */, 1359 | ); 1360 | runOnlyForDeploymentPostprocessing = 0; 1361 | }; 1362 | 2D02E4771E0B4A5D006451C7 /* Sources */ = { 1363 | isa = PBXSourcesBuildPhase; 1364 | buildActionMask = 2147483647; 1365 | files = ( 1366 | 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */, 1367 | 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */, 1368 | ); 1369 | runOnlyForDeploymentPostprocessing = 0; 1370 | }; 1371 | 2D02E48C1E0B4A5D006451C7 /* Sources */ = { 1372 | isa = PBXSourcesBuildPhase; 1373 | buildActionMask = 2147483647; 1374 | files = ( 1375 | 2DCD954D1E0B4F2C00145EB5 /* demoTests.m in Sources */, 1376 | ); 1377 | runOnlyForDeploymentPostprocessing = 0; 1378 | }; 1379 | /* End PBXSourcesBuildPhase section */ 1380 | 1381 | /* Begin PBXTargetDependency section */ 1382 | 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { 1383 | isa = PBXTargetDependency; 1384 | target = 13B07F861A680F5B00A75B9A /* demo */; 1385 | targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; 1386 | }; 1387 | 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */ = { 1388 | isa = PBXTargetDependency; 1389 | target = 2D02E47A1E0B4A5D006451C7 /* demo-tvOS */; 1390 | targetProxy = 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */; 1391 | }; 1392 | /* End PBXTargetDependency section */ 1393 | 1394 | /* Begin PBXVariantGroup section */ 1395 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { 1396 | isa = PBXVariantGroup; 1397 | children = ( 1398 | 13B07FB21A68108700A75B9A /* Base */, 1399 | ); 1400 | name = LaunchScreen.xib; 1401 | path = demo; 1402 | sourceTree = ""; 1403 | }; 1404 | /* End PBXVariantGroup section */ 1405 | 1406 | /* Begin XCBuildConfiguration section */ 1407 | 00E356F61AD99517003FC87E /* Debug */ = { 1408 | isa = XCBuildConfiguration; 1409 | buildSettings = { 1410 | BUNDLE_LOADER = "$(TEST_HOST)"; 1411 | GCC_PREPROCESSOR_DEFINITIONS = ( 1412 | "DEBUG=1", 1413 | "$(inherited)", 1414 | ); 1415 | HEADER_SEARCH_PATHS = ( 1416 | "$(inherited)", 1417 | "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", 1418 | "$(SRCROOT)/../node_modules/react-native-camera/ios/**", 1419 | "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", 1420 | "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", 1421 | "$(SRCROOT)/../node_modules/react-native-splash-screen/ios", 1422 | "$(SRCROOT)/../node_modules/react-native-svg/ios/**", 1423 | ); 1424 | INFOPLIST_FILE = demoTests/Info.plist; 1425 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 1426 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1427 | LIBRARY_SEARCH_PATHS = ( 1428 | "$(inherited)", 1429 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1430 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1431 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1432 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1433 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1434 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1435 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1436 | ); 1437 | OTHER_LDFLAGS = ( 1438 | "-ObjC", 1439 | "-lc++", 1440 | ); 1441 | PRODUCT_NAME = "$(TARGET_NAME)"; 1442 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/demo.app/demo"; 1443 | }; 1444 | name = Debug; 1445 | }; 1446 | 00E356F71AD99517003FC87E /* Release */ = { 1447 | isa = XCBuildConfiguration; 1448 | buildSettings = { 1449 | BUNDLE_LOADER = "$(TEST_HOST)"; 1450 | COPY_PHASE_STRIP = NO; 1451 | HEADER_SEARCH_PATHS = ( 1452 | "$(inherited)", 1453 | "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", 1454 | "$(SRCROOT)/../node_modules/react-native-camera/ios/**", 1455 | "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", 1456 | "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", 1457 | "$(SRCROOT)/../node_modules/react-native-splash-screen/ios", 1458 | "$(SRCROOT)/../node_modules/react-native-svg/ios/**", 1459 | ); 1460 | INFOPLIST_FILE = demoTests/Info.plist; 1461 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 1462 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1463 | LIBRARY_SEARCH_PATHS = ( 1464 | "$(inherited)", 1465 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1466 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1467 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1468 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1469 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1470 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1471 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1472 | ); 1473 | OTHER_LDFLAGS = ( 1474 | "-ObjC", 1475 | "-lc++", 1476 | ); 1477 | PRODUCT_NAME = "$(TARGET_NAME)"; 1478 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/demo.app/demo"; 1479 | }; 1480 | name = Release; 1481 | }; 1482 | 13B07F941A680F5B00A75B9A /* Debug */ = { 1483 | isa = XCBuildConfiguration; 1484 | buildSettings = { 1485 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 1486 | CURRENT_PROJECT_VERSION = 1; 1487 | DEAD_CODE_STRIPPING = NO; 1488 | DEVELOPMENT_TEAM = ""; 1489 | HEADER_SEARCH_PATHS = ( 1490 | "$(inherited)", 1491 | "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", 1492 | "$(SRCROOT)/../node_modules/react-native-camera/ios/**", 1493 | "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", 1494 | "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", 1495 | "$(SRCROOT)/../node_modules/react-native-splash-screen/ios", 1496 | "$(SRCROOT)/../node_modules/react-native-svg/ios/**", 1497 | ); 1498 | INFOPLIST_FILE = demo/Info.plist; 1499 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 1500 | OTHER_LDFLAGS = ( 1501 | "$(inherited)", 1502 | "-ObjC", 1503 | "-lc++", 1504 | ); 1505 | PRODUCT_NAME = demo; 1506 | VERSIONING_SYSTEM = "apple-generic"; 1507 | }; 1508 | name = Debug; 1509 | }; 1510 | 13B07F951A680F5B00A75B9A /* Release */ = { 1511 | isa = XCBuildConfiguration; 1512 | buildSettings = { 1513 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 1514 | CURRENT_PROJECT_VERSION = 1; 1515 | DEVELOPMENT_TEAM = ""; 1516 | HEADER_SEARCH_PATHS = ( 1517 | "$(inherited)", 1518 | "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", 1519 | "$(SRCROOT)/../node_modules/react-native-camera/ios/**", 1520 | "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", 1521 | "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", 1522 | "$(SRCROOT)/../node_modules/react-native-splash-screen/ios", 1523 | "$(SRCROOT)/../node_modules/react-native-svg/ios/**", 1524 | ); 1525 | INFOPLIST_FILE = demo/Info.plist; 1526 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 1527 | OTHER_LDFLAGS = ( 1528 | "$(inherited)", 1529 | "-ObjC", 1530 | "-lc++", 1531 | ); 1532 | PRODUCT_NAME = demo; 1533 | VERSIONING_SYSTEM = "apple-generic"; 1534 | }; 1535 | name = Release; 1536 | }; 1537 | 2D02E4971E0B4A5E006451C7 /* Debug */ = { 1538 | isa = XCBuildConfiguration; 1539 | buildSettings = { 1540 | ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; 1541 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 1542 | CLANG_ANALYZER_NONNULL = YES; 1543 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1544 | CLANG_WARN_INFINITE_RECURSION = YES; 1545 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1546 | DEBUG_INFORMATION_FORMAT = dwarf; 1547 | ENABLE_TESTABILITY = YES; 1548 | GCC_NO_COMMON_BLOCKS = YES; 1549 | HEADER_SEARCH_PATHS = ( 1550 | "$(inherited)", 1551 | "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", 1552 | "$(SRCROOT)/../node_modules/react-native-camera/ios/**", 1553 | "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", 1554 | "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", 1555 | "$(SRCROOT)/../node_modules/react-native-splash-screen/ios", 1556 | "$(SRCROOT)/../node_modules/react-native-svg/ios/**", 1557 | ); 1558 | INFOPLIST_FILE = "demo-tvOS/Info.plist"; 1559 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 1560 | LIBRARY_SEARCH_PATHS = ( 1561 | "$(inherited)", 1562 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1563 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1564 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1565 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1566 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1567 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1568 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1569 | ); 1570 | OTHER_LDFLAGS = ( 1571 | "-ObjC", 1572 | "-lc++", 1573 | ); 1574 | PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.demo-tvOS"; 1575 | PRODUCT_NAME = "$(TARGET_NAME)"; 1576 | SDKROOT = appletvos; 1577 | TARGETED_DEVICE_FAMILY = 3; 1578 | TVOS_DEPLOYMENT_TARGET = 9.2; 1579 | }; 1580 | name = Debug; 1581 | }; 1582 | 2D02E4981E0B4A5E006451C7 /* Release */ = { 1583 | isa = XCBuildConfiguration; 1584 | buildSettings = { 1585 | ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; 1586 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 1587 | CLANG_ANALYZER_NONNULL = YES; 1588 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1589 | CLANG_WARN_INFINITE_RECURSION = YES; 1590 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1591 | COPY_PHASE_STRIP = NO; 1592 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 1593 | GCC_NO_COMMON_BLOCKS = YES; 1594 | HEADER_SEARCH_PATHS = ( 1595 | "$(inherited)", 1596 | "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", 1597 | "$(SRCROOT)/../node_modules/react-native-camera/ios/**", 1598 | "$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient", 1599 | "$(SRCROOT)/../node_modules/react-native-gesture-handler/ios/**", 1600 | "$(SRCROOT)/../node_modules/react-native-splash-screen/ios", 1601 | "$(SRCROOT)/../node_modules/react-native-svg/ios/**", 1602 | ); 1603 | INFOPLIST_FILE = "demo-tvOS/Info.plist"; 1604 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 1605 | LIBRARY_SEARCH_PATHS = ( 1606 | "$(inherited)", 1607 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1608 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1609 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1610 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1611 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1612 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1613 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1614 | ); 1615 | OTHER_LDFLAGS = ( 1616 | "-ObjC", 1617 | "-lc++", 1618 | ); 1619 | PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.demo-tvOS"; 1620 | PRODUCT_NAME = "$(TARGET_NAME)"; 1621 | SDKROOT = appletvos; 1622 | TARGETED_DEVICE_FAMILY = 3; 1623 | TVOS_DEPLOYMENT_TARGET = 9.2; 1624 | }; 1625 | name = Release; 1626 | }; 1627 | 2D02E4991E0B4A5E006451C7 /* Debug */ = { 1628 | isa = XCBuildConfiguration; 1629 | buildSettings = { 1630 | BUNDLE_LOADER = "$(TEST_HOST)"; 1631 | CLANG_ANALYZER_NONNULL = YES; 1632 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1633 | CLANG_WARN_INFINITE_RECURSION = YES; 1634 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1635 | DEBUG_INFORMATION_FORMAT = dwarf; 1636 | ENABLE_TESTABILITY = YES; 1637 | GCC_NO_COMMON_BLOCKS = YES; 1638 | INFOPLIST_FILE = "demo-tvOSTests/Info.plist"; 1639 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1640 | LIBRARY_SEARCH_PATHS = ( 1641 | "$(inherited)", 1642 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1643 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1644 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1645 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1646 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1647 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1648 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1649 | ); 1650 | PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.demo-tvOSTests"; 1651 | PRODUCT_NAME = "$(TARGET_NAME)"; 1652 | SDKROOT = appletvos; 1653 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/demo-tvOS.app/demo-tvOS"; 1654 | TVOS_DEPLOYMENT_TARGET = 10.1; 1655 | }; 1656 | name = Debug; 1657 | }; 1658 | 2D02E49A1E0B4A5E006451C7 /* Release */ = { 1659 | isa = XCBuildConfiguration; 1660 | buildSettings = { 1661 | BUNDLE_LOADER = "$(TEST_HOST)"; 1662 | CLANG_ANALYZER_NONNULL = YES; 1663 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1664 | CLANG_WARN_INFINITE_RECURSION = YES; 1665 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1666 | COPY_PHASE_STRIP = NO; 1667 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 1668 | GCC_NO_COMMON_BLOCKS = YES; 1669 | INFOPLIST_FILE = "demo-tvOSTests/Info.plist"; 1670 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1671 | LIBRARY_SEARCH_PATHS = ( 1672 | "$(inherited)", 1673 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1674 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1675 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1676 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1677 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1678 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1679 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 1680 | ); 1681 | PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.demo-tvOSTests"; 1682 | PRODUCT_NAME = "$(TARGET_NAME)"; 1683 | SDKROOT = appletvos; 1684 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/demo-tvOS.app/demo-tvOS"; 1685 | TVOS_DEPLOYMENT_TARGET = 10.1; 1686 | }; 1687 | name = Release; 1688 | }; 1689 | 83CBBA201A601CBA00E9B192 /* Debug */ = { 1690 | isa = XCBuildConfiguration; 1691 | buildSettings = { 1692 | ALWAYS_SEARCH_USER_PATHS = NO; 1693 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 1694 | CLANG_CXX_LIBRARY = "libc++"; 1695 | CLANG_ENABLE_MODULES = YES; 1696 | CLANG_ENABLE_OBJC_ARC = YES; 1697 | CLANG_WARN_BOOL_CONVERSION = YES; 1698 | CLANG_WARN_CONSTANT_CONVERSION = YES; 1699 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1700 | CLANG_WARN_EMPTY_BODY = YES; 1701 | CLANG_WARN_ENUM_CONVERSION = YES; 1702 | CLANG_WARN_INT_CONVERSION = YES; 1703 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1704 | CLANG_WARN_UNREACHABLE_CODE = YES; 1705 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1706 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 1707 | COPY_PHASE_STRIP = NO; 1708 | ENABLE_STRICT_OBJC_MSGSEND = YES; 1709 | GCC_C_LANGUAGE_STANDARD = gnu99; 1710 | GCC_DYNAMIC_NO_PIC = NO; 1711 | GCC_OPTIMIZATION_LEVEL = 0; 1712 | GCC_PREPROCESSOR_DEFINITIONS = ( 1713 | "DEBUG=1", 1714 | "$(inherited)", 1715 | ); 1716 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 1717 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1718 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1719 | GCC_WARN_UNDECLARED_SELECTOR = YES; 1720 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1721 | GCC_WARN_UNUSED_FUNCTION = YES; 1722 | GCC_WARN_UNUSED_VARIABLE = YES; 1723 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 1724 | MTL_ENABLE_DEBUG_INFO = YES; 1725 | ONLY_ACTIVE_ARCH = YES; 1726 | SDKROOT = iphoneos; 1727 | }; 1728 | name = Debug; 1729 | }; 1730 | 83CBBA211A601CBA00E9B192 /* Release */ = { 1731 | isa = XCBuildConfiguration; 1732 | buildSettings = { 1733 | ALWAYS_SEARCH_USER_PATHS = NO; 1734 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 1735 | CLANG_CXX_LIBRARY = "libc++"; 1736 | CLANG_ENABLE_MODULES = YES; 1737 | CLANG_ENABLE_OBJC_ARC = YES; 1738 | CLANG_WARN_BOOL_CONVERSION = YES; 1739 | CLANG_WARN_CONSTANT_CONVERSION = YES; 1740 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1741 | CLANG_WARN_EMPTY_BODY = YES; 1742 | CLANG_WARN_ENUM_CONVERSION = YES; 1743 | CLANG_WARN_INT_CONVERSION = YES; 1744 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1745 | CLANG_WARN_UNREACHABLE_CODE = YES; 1746 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1747 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 1748 | COPY_PHASE_STRIP = YES; 1749 | ENABLE_NS_ASSERTIONS = NO; 1750 | ENABLE_STRICT_OBJC_MSGSEND = YES; 1751 | GCC_C_LANGUAGE_STANDARD = gnu99; 1752 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1753 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1754 | GCC_WARN_UNDECLARED_SELECTOR = YES; 1755 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1756 | GCC_WARN_UNUSED_FUNCTION = YES; 1757 | GCC_WARN_UNUSED_VARIABLE = YES; 1758 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 1759 | MTL_ENABLE_DEBUG_INFO = NO; 1760 | SDKROOT = iphoneos; 1761 | VALIDATE_PRODUCT = YES; 1762 | }; 1763 | name = Release; 1764 | }; 1765 | /* End XCBuildConfiguration section */ 1766 | 1767 | /* Begin XCConfigurationList section */ 1768 | 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "demoTests" */ = { 1769 | isa = XCConfigurationList; 1770 | buildConfigurations = ( 1771 | 00E356F61AD99517003FC87E /* Debug */, 1772 | 00E356F71AD99517003FC87E /* Release */, 1773 | ); 1774 | defaultConfigurationIsVisible = 0; 1775 | defaultConfigurationName = Release; 1776 | }; 1777 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "demo" */ = { 1778 | isa = XCConfigurationList; 1779 | buildConfigurations = ( 1780 | 13B07F941A680F5B00A75B9A /* Debug */, 1781 | 13B07F951A680F5B00A75B9A /* Release */, 1782 | ); 1783 | defaultConfigurationIsVisible = 0; 1784 | defaultConfigurationName = Release; 1785 | }; 1786 | 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "demo-tvOS" */ = { 1787 | isa = XCConfigurationList; 1788 | buildConfigurations = ( 1789 | 2D02E4971E0B4A5E006451C7 /* Debug */, 1790 | 2D02E4981E0B4A5E006451C7 /* Release */, 1791 | ); 1792 | defaultConfigurationIsVisible = 0; 1793 | defaultConfigurationName = Release; 1794 | }; 1795 | 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "demo-tvOSTests" */ = { 1796 | isa = XCConfigurationList; 1797 | buildConfigurations = ( 1798 | 2D02E4991E0B4A5E006451C7 /* Debug */, 1799 | 2D02E49A1E0B4A5E006451C7 /* Release */, 1800 | ); 1801 | defaultConfigurationIsVisible = 0; 1802 | defaultConfigurationName = Release; 1803 | }; 1804 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "demo" */ = { 1805 | isa = XCConfigurationList; 1806 | buildConfigurations = ( 1807 | 83CBBA201A601CBA00E9B192 /* Debug */, 1808 | 83CBBA211A601CBA00E9B192 /* Release */, 1809 | ); 1810 | defaultConfigurationIsVisible = 0; 1811 | defaultConfigurationName = Release; 1812 | }; 1813 | /* End XCConfigurationList section */ 1814 | }; 1815 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; 1816 | } 1817 | -------------------------------------------------------------------------------- /ios/demo.xcodeproj/xcshareddata/xcschemes/demo-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 | -------------------------------------------------------------------------------- /ios/demo.xcodeproj/xcshareddata/xcschemes/demo.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 | -------------------------------------------------------------------------------- /ios/demo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Facebook, Inc. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @interface AppDelegate : UIResponder 13 | 14 | @property (nonatomic, strong) UIWindow *window; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /ios/demo/AppDelegate.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Facebook, Inc. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "AppDelegate.h" 11 | 12 | #import 13 | #import 14 | 15 | @implementation AppDelegate 16 | 17 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 18 | { 19 | NSURL *jsCodeLocation; 20 | 21 | jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; 22 | 23 | RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation 24 | moduleName:@"demo" 25 | initialProperties:nil 26 | launchOptions:launchOptions]; 27 | rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; 28 | 29 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 30 | UIViewController *rootViewController = [UIViewController new]; 31 | rootViewController.view = rootView; 32 | self.window.rootViewController = rootViewController; 33 | [self.window makeKeyAndVisible]; 34 | return YES; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /ios/demo/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 | -------------------------------------------------------------------------------- /ios/demo/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /ios/demo/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ios/demo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | demo 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | LSRequiresIPhoneOS 26 | 27 | UILaunchStoryboardName 28 | LaunchScreen 29 | NSCameraUsageDescription 30 | Your message to user when the camera is accessed for the first time 31 | NSPhotoLibraryUsageDescription 32 | Your message to user when the photo library is accessed for the first time 33 | NSMicrophoneUsageDescription 34 | Your message to user when the microphone is accessed for the first time 35 | UIRequiredDeviceCapabilities 36 | 37 | armv7 38 | 39 | UISupportedInterfaceOrientations 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationLandscapeLeft 43 | UIInterfaceOrientationLandscapeRight 44 | 45 | UIViewControllerBasedStatusBarAppearance 46 | 47 | NSLocationWhenInUseUsageDescription 48 | 49 | NSAppTransportSecurity 50 | 51 | NSExceptionDomains 52 | 53 | localhost 54 | 55 | NSExceptionAllowsInsecureHTTPLoads 56 | 57 | 58 | 59 | 60 | UIAppFonts 61 | 62 | Entypo.ttf 63 | EvilIcons.ttf 64 | Feather.ttf 65 | FontAwesome.ttf 66 | Foundation.ttf 67 | Ionicons.ttf 68 | MaterialCommunityIcons.ttf 69 | MaterialIcons.ttf 70 | Octicons.ttf 71 | SimpleLineIcons.ttf 72 | Zocial.ttf 73 | AntDesign.ttf 74 | FontAwesome5_Brands.ttf 75 | FontAwesome5_Regular.ttf 76 | FontAwesome5_Solid.ttf 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /ios/demo/main.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Facebook, Inc. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "AppDelegate.h" 13 | 14 | int main(int argc, char * argv[]) { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ios/demoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /ios/demoTests/demoTests.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Facebook, Inc. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | #define TIMEOUT_SECONDS 600 17 | #define TEXT_TO_LOOK_FOR @"Welcome to React Native!" 18 | 19 | @interface demoTests : XCTestCase 20 | 21 | @end 22 | 23 | @implementation demoTests 24 | 25 | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test 26 | { 27 | if (test(view)) { 28 | return YES; 29 | } 30 | for (UIView *subview in [view subviews]) { 31 | if ([self findSubviewInView:subview matching:test]) { 32 | return YES; 33 | } 34 | } 35 | return NO; 36 | } 37 | 38 | - (void)testRendersWelcomeScreen 39 | { 40 | UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; 41 | NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; 42 | BOOL foundElement = NO; 43 | 44 | __block NSString *redboxError = nil; 45 | RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { 46 | if (level >= RCTLogLevelError) { 47 | redboxError = message; 48 | } 49 | }); 50 | 51 | while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { 52 | [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 53 | [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 54 | 55 | foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) { 56 | if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { 57 | return YES; 58 | } 59 | return NO; 60 | }]; 61 | } 62 | 63 | RCTSetLogFunction(RCTDefaultLogFunction); 64 | 65 | XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); 66 | XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); 67 | } 68 | 69 | 70 | @end 71 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demo", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "start": "node node_modules/react-native/local-cli/cli.js start", 7 | "test": "jest" 8 | }, 9 | "dependencies": { 10 | "eslint-plugin-flowtype": "^3.2.0", 11 | "react": "16.6.3", 12 | "react-native": "0.57.8", 13 | "react-native-gesture-handler": "^1.0.12", 14 | "react-native-splash-screen": "^3.1.1", 15 | "react-native-svg": "^6.3.1", 16 | "react-native-svg-iconfont": "^1.0.4", 17 | "react-native-vector-icons": "^6.1.0", 18 | "react-navigation": "^3.0.8", 19 | "react-redux": "^5.0.6", 20 | "redux": "^3.7.2", 21 | "redux-actions": "^2.2.1", 22 | "redux-persist": "5.6.12", 23 | "redux-thunk": "^2.2.0", 24 | "uuid": "^3.2.1" 25 | }, 26 | "devDependencies": { 27 | "babel-eslint": "^10.0.1", 28 | "babel-jest": "23.6.0", 29 | "jest": "23.6.0", 30 | "metro-react-native-babel-preset": "0.51.1", 31 | "react-test-renderer": "16.6.3", 32 | "standard": "^12.0.1" 33 | }, 34 | "jest": { 35 | "preset": "react-native" 36 | }, 37 | "resolutions": { 38 | "react-devtools-core": "3.4.3" 39 | }, 40 | "standard": { 41 | "parser": "babel-eslint", 42 | "plugins": [ 43 | "flowtype" 44 | ] 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/app.launch.js: -------------------------------------------------------------------------------- 1 | import React, { PureComponent } from 'react' 2 | import { View, StatusBar, Platform, Linking, Text } from 'react-native' 3 | import { connect } from 'react-redux' 4 | import Navigator from './navigator.config' 5 | import utils from './utils' 6 | 7 | class AppLaunch extends PureComponent { 8 | render () { 9 | return ( 10 | 11 | 12 | 13 | ) 14 | } 15 | } 16 | 17 | export default connect(state => ({ 18 | account: state.account 19 | }))(AppLaunch) 20 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React, { Component, PureComponent } from 'react' 2 | import { View, StatusBar, ActivityIndicator } from 'react-native' 3 | import { Provider, connect } from 'react-redux' 4 | import Store from './store' 5 | import Launch from './app.launch' 6 | import { PersistGate } from 'redux-persist/lib/integration/react' 7 | 8 | 9 | 10 | export default class App extends Component{ 11 | render() { 12 | console.log(Store.getState(), '[11111]') 13 | const LOADING_VIEW = ( 14 | 15 | 16 | 17 | ) 18 | 19 | return ( 20 | 21 | 22 | 23 | 24 | 25 | ) 26 | } 27 | } -------------------------------------------------------------------------------- /src/navigator.config.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { TouchableOpacity, Text, StyleSheet, Image, View } from 'react-native' 3 | import { createStackNavigator, createBottomTabNavigator, createAppContainer } from 'react-navigation' 4 | import Material from 'react-native-vector-icons/MaterialIcons' 5 | import Views from './views' 6 | import SvgIcon from 'react-native-svg-iconfont' 7 | import * as iconPath from './source/svg' 8 | import Stores from './store' 9 | const _HEADER_BACK_BUTTON = (navigation) => { 10 | const { routeName } = navigation.state 11 | return ( navigation.goBack()} 15 | > 16 | {/* */} 17 | 18 | ) 19 | } 20 | const MODAL_DEFAULT_OPTIONS = { 21 | mode: 'modal', 22 | headerMode: 'none' 23 | } 24 | 25 | const TAB_BAR_DEFAULT_OPTIONS = { 26 | defaultNavigationOptions: ({ navigation }) => { 27 | console.log(Stores.getState()) 28 | const tabBarOnPress = ({ navigation, defaultHandler }) => { 29 | defaultHandler() 30 | } 31 | const tabBarIcon = ({ focused, tintColor }) => { 32 | const { routeName, params = {} } = navigation.state 33 | const badge = params?.badge ? params.badge : Stores.getState().account.badge 34 | let iconName 35 | if (routeName === 'Find') { iconName = iconPath.easy } else 36 | if (routeName === 'Video') { iconName = iconPath.video } else 37 | if (routeName === 'Mine') { iconName = iconPath.music } else 38 | if (routeName === 'Friends') { iconName = iconPath.friends } else { 39 | return 40 | 41 | 42 | {badge} 43 | 44 | 45 | } 46 | return () 47 | } 48 | let title = '' 49 | const { routeName } = navigation.state 50 | if (routeName === 'Find') { title = '发现' } else 51 | if (routeName === 'Video') { title = '视频' } else 52 | if (routeName === 'Mine') { title = '我的' } else 53 | if (routeName === 'Friends') { title = '朋友' } else { title = '账号' } 54 | 55 | return { 56 | tabBarOnPress, 57 | tabBarIcon, 58 | title 59 | } 60 | }, 61 | tabBarOptions: { 62 | style: { 63 | borderTopWidth: 0.2, 64 | borderColor: '#f9f9f9', 65 | borderTopColor: '#aaa', 66 | backgroundColor: '#f9f9f9', 67 | opacity: 1 68 | }, 69 | labelStyle: { 70 | fontSize: 10 71 | }, 72 | activeTintColor: '#d62804', 73 | inactiveTintColor: '#aaa' 74 | } 75 | } 76 | 77 | const STACKNAVIGATOR_DEFAULT_OPTIONS = { 78 | defaultNavigationOptions: ({ navigation }) => { 79 | const { routeName } = navigation.state 80 | let options = { 81 | headerTitle: ( 82 | null 83 | ), 84 | drawerLockMode: 'locked-closed', 85 | headerStyle: { 86 | backgroundColor: '#000', 87 | shadowOffset: { width: 0, height: 0 }, 88 | shadowColor: 'transparent', 89 | shadowOpacity: 0, 90 | borderBottomWidth: 0, 91 | borderBottomColor: 'transparent', 92 | elevation: 0 93 | }, 94 | headerTintColor: '#333', 95 | headerTitleStyle: { fontSize: 17, fontWeight: '600' }, 96 | headerBackTitle: null, 97 | headerRight: 98 | } 99 | if (!('index' in navigation.state)) { 100 | options = { ...options, headerLeft: _HEADER_BACK_BUTTON(navigation) } 101 | } 102 | return options 103 | } 104 | } 105 | 106 | const MainTabBar = createBottomTabNavigator({ 107 | Find: Views.Find, 108 | Video: Views.Video, 109 | Mine: Views.Mine, 110 | Friends: Views.Friends, 111 | Account: Views.Account 112 | }, { 113 | ...TAB_BAR_DEFAULT_OPTIONS, 114 | initialRouteName: 'Mine' 115 | }) 116 | 117 | /* 将Header设置到Tabbar */ 118 | MainTabBar.navigationOptions = ({ navigation }) => { 119 | const { state = {} } = navigation 120 | const { index = 0 } = state 121 | return { 122 | headerTitle: 345, 123 | headerStyle: { 124 | backgroundColor: '#ce3232', 125 | shadowOffset: { width: 0, height: 0 }, 126 | shadowColor: 'transparent', 127 | shadowOpacity: 0, 128 | borderBottomWidth: 0, 129 | borderBottomColor: 'transparent', 130 | elevation: 0 131 | }, 132 | headerTintColor: '#fff', 133 | headerTitleStyle: { fontSize: 17, fontWeight: '600' }, 134 | headerLeft: ( 135 | index === 4 ? null 136 | : {} 145 | } 146 | > 147 | 148 | 149 | 150 | ), 151 | headerRight: ( 152 | {} 161 | } 162 | > 163 | 164 | 165 | 166 | ) 167 | } 168 | } 169 | 170 | const ExtraViews = { ...Views, MainTabBar } 171 | delete ExtraViews.Find 172 | delete ExtraViews.Video 173 | delete ExtraViews.Mine 174 | delete ExtraViews.Friends 175 | delete ExtraViews.Account 176 | const AppNavigator = createStackNavigator({ ...ExtraViews }, { ...STACKNAVIGATOR_DEFAULT_OPTIONS, initialRouteName: 'MainTabBar' }) 177 | 178 | const IncludeModalContainerNavigator = createStackNavigator({ 179 | Base: { screen: AppNavigator } 180 | /* add modal screen */ 181 | }, { ...MODAL_DEFAULT_OPTIONS, initialRouteName: 'Base' }) 182 | 183 | const AppContainer = createAppContainer(IncludeModalContainerNavigator) 184 | 185 | export default AppContainer 186 | -------------------------------------------------------------------------------- /src/source/svg/index.js: -------------------------------------------------------------------------------- 1 | export const easy = ['M 812.688 443.635 c -53.338 -53.338 -122.877 -84.571 -197.517 -89.152 c -4.864 -13.476 -9.237 -28.122 -12.955 -44.445 c -5.406 -23.756 -9.41 -51.082 -11.482 -83.564 c -0.506 -7.925 -0.895 -16.16 -1.163 -24.724 c -0.258 -8.306 -0.402 -16.927 -0.421 -25.875 c -0.031 -0.003 -0.059 -0.006 -0.09 -0.013 c 0.023 -0.226 0.061 -0.45 0.087 -0.678 c 5.899 -51.69 50.605 -91.766 104.187 -90.233 c 37.757 1.079 70.706 23.047 87.364 54.811 l 50.365 -9.678 c -19.821 -49.354 -64.973 -85.924 -119.381 -93.387 c -87.442 -11.994 -163.263 51.161 -172.043 134.026 c -0.073 0.693 -0.119 2.478 -0.146 3.174 l -0.001 6.676 c 0.018 5.903 0.16 15.092 0.539 25.67 c 0.183 5.153 0.419 10.23 0.693 15.251 c 2.775 50.809 10.176 94.917 22.415 133.85 c 0.03 0.09 0.057 0.177 0.086 0.268 c -27.769 2.932 -54.72 9.59 -80.274 19.713 l -0.018 0.002 l -0.034 0.017 c -38.362 15.204 -73.57 38.233 -103.627 68.291 l 9.538 -8.534 c -40.682 39.699 -65.986 95.088 -65.986 156.285 c 0 29.763 5.99 58.148 16.817 84.031 c 25.825 61.738 79.205 109.18 144.684 126.881 c 17.221 5.375 35.525 8.272 54.494 8.272 c 10.11 0 20.029 -0.837 29.698 -2.419 c 86.973 -14.235 153.556 -89.901 153.556 -180.838 c 0 -20.773 -3.481 -40.749 -9.879 -59.378 c -13.142 -54.395 -34.294 -91.456 -54.922 -127.561 c -6.288 -11.01 -12.514 -21.913 -18.499 -33.241 c 10.198 1.718 20.194 4.039 29.951 6.925 c 106.276 31.444 184.048 129.946 184.048 246.284 c 0 59.882 -20.607 115.04 -55.097 158.762 c -24.484 27.394 -53.099 51.013 -84.861 69.881 c -53.554 31.809 -116.031 50.11 -182.708 50.11 c -27.403 0 -54.094 -3.1 -79.754 -8.944 c -159.635 -36.365 -279.132 -179.455 -279.132 -349.94 c 0 -177.598 129.68 -325.454 299.316 -353.913 l -6.546 -49.329 c -83.813 13.561 -161.087 52.819 -222.371 113.935 c -76.53 76.319 -119.827 180.26 -120.076 288.341 c -0.253 109.839 42.541 213.123 120.404 290.601 c 77.532 77.148 183.19 120.052 292.559 118.903 c 72.921 -0.765 142.794 -20.532 203.967 -56.93 c 27.007 -14.218 52.015 -32.573 74.211 -54.769 c 8.033 -8.033 15.546 -16.446 22.559 -25.174 c 43.538 -54.177 67.203 -121.031 67.203 -191.533 c 0 -31.259 -4.661 -61.796 -13.632 -90.835 c -14.522 -47.012 -40.351 -90.09 -76.132 -125.871 Z M 403.266 422.166 c 0.771 -0.633 1.557 -1.249 2.338 -1.872 c -0.835 0.662 -1.665 1.331 -2.491 2.006 l 0.151 -0.134 Z M 664.427 581.851 c 3.326 14.137 6.031 29.586 7.954 46.765 c -0.627 65.317 -48.367 119.567 -110.8 130.331 c -6.657 0.801 -13.428 1.225 -20.295 1.225 c -14.779 0 -29.116 -1.916 -42.786 -5.5 c -72.415 -18.99 -125.996 -84.994 -125.996 -163.282 c 0 -22.391 4.393 -43.772 12.346 -63.341 c 10.096 -24.843 25.936 -46.761 45.873 -64.083 c 3.514 -2.963 7.102 -5.837 10.773 -8.609 c 39.492 -29.837 87.838 -48.543 140.336 -51.408 c 4.418 9.674 8.997 18.804 13.654 27.585 c 4.962 9.356 10.011 18.32 15.036 27.143 c 1.209 2.122 2.416 4.235 3.62 6.343 c 19.814 34.679 38.772 67.897 50.285 116.832 Z'] 2 | 3 | export const video = ['M833.853335 47.910173H190.002378c-97.854679 0-177.524183 79.669504-177.524182 177.524183v520.160866c0 97.855702 79.669504 177.525206 177.524182 177.525206h321.998645c0.720408 0 1.298576 0 2.020007-0.144286 0.432859 0 36.948517-2.453888 81.256652 2.453888 55.567573 6.206352 96.844675 20.927635 119.360481 42.432415 5.773494 5.484921 13.134135 8.226359 20.4958 8.226359 7.792477 0 15.442714-3.031033 21.35947-9.093099 11.257391-11.834536 10.968819-30.453592-0.865717-41.710984-32.330336-31.175023-84.143399-50.804083-153.710824-58.597583-45.607734-5.052063-83.71054-3.175319-90.782609-2.74246H190.002378c-65.236793 0-118.349455-53.113685-118.349455-118.350479V225.434356c0-65.236793 53.112662-118.349455 118.349455-118.349456H833.998645c65.236793 0 118.349455 53.112662 118.349455 118.349456v520.160866c0 65.236793-53.112662 118.350478-118.349455 118.350479-16.309454 0-29.587875 13.278421-29.587876 29.587875s13.279445 29.587875 29.587876 29.587876c97.855702 0 177.524183-79.669504 177.524183-177.525206V225.434356c-0.144286-97.854679-79.814814-177.524183-177.669493-177.524183m0 0', 'M778.286786 469.639217L377.485377 232.074589c-9.094122-5.484921-20.4958-5.484921-29.732162-0.288572-9.237385 5.196349-14.866592 15.010879-14.866592 25.690102V739.822752c0 16.308431 13.278421 29.587875 29.587875 29.587876 16.308431 0 29.586852-13.279445 29.586852-29.587876V309.434491L706.699354 495.907487 537.258267 603.142813c-8.083096 4.906753-34.784224 18.186198-54.556547 17.175171-16.308431-0.865717-30.16502 11.69025-30.886451 27.999705-0.865717 16.309454 11.69025 30.16502 27.999704 31.03176 1.587148 0.144286 3.319605 0.144286 4.906754 0.144286 39.689954 0 78.948073-23.237237 83.566254-25.979698 0.144286-0.144286 0.288572-0.144286 0.432858-0.288572l210.43064-133.215024c8.66024-5.484921 13.855566-15.154141 13.712303-25.402553-0.288572-10.247388-5.773494-19.772322-14.576996-24.968671m0 0'] 4 | 5 | 6 | export const music = ['M 254.92 907.508 C 179.414 907.508 116.492 846.384 116.492 769.08 s 61.1239 -138.428 138.428 -138.428 c 30.562 0 59.3262 10.7866 84.4949 28.7642 l 7.19105 5.39329 V 220.762 c 0 -26.9664 21.5732 -48.5396 46.7418 -48.5396 l 462.025 -53.9329 h 3.59553 C 884.137 116.492 907.508 138.065 907.508 165.032 v 519.553 c 0 37.753 -14.3821 71.9105 -41.3485 97.0792 c -25.1687 25.1687 -61.1239 39.5508 -97.0792 39.5508 c -75.506 0 -138.428 -61.1239 -138.428 -138.428 c 0 -75.506 61.1239 -138.428 138.428 -138.428 c 30.562 0 61.1239 10.7866 84.4949 28.7642 l 7.19105 5.39329 V 337.617 l -467.418 50.3374 v 381.126 c -1.79776 77.3038 -62.9217 138.428 -138.428 138.428 Z m 1e-008 -228.316 c -50.3374 0 -91.6859 41.3485 -91.6859 91.6859 s 41.3485 91.6859 91.6859 91.6859 s 91.6859 -41.3485 91.6859 -91.6859 c -1.79776 -52.1351 -41.3485 -91.6859 -91.6859 -91.6859 Z m 514.16 -86.2926 c -50.3374 0 -91.6859 41.3485 -91.6859 91.6859 s 41.3485 91.6859 91.6859 91.6859 s 91.6859 -41.3485 91.6859 -91.6859 s -41.3485 -91.6859 -91.6859 -91.6859 Z m -377.53 -251.687 l 467.418 -50.3374 V 163.234 l -462.025 53.9329 h -5.39329 v 124.046 Z'] 7 | 8 | export const friends = ['M118 65.6h288.1M409.8 614.3c-70.8 0-137.3-27.6-187.3-77.6-50-50-77.6-116.6-77.6-187.3s27.6-137.3 77.6-187.3c50-50 116.6-77.6 187.3-77.6s137.3 27.6 187.3 77.6c50 50 77.6 116.6 77.6 187.3s-27.6 137.3-77.6 187.3-116.6 77.6-187.3 77.6z m0-487.8c-122.9 0-222.9 100-222.9 222.9s100 222.9 222.9 222.9 222.9-100 222.9-222.9-100-222.9-222.9-222.9z', 'M732.5 939.5c-11.6 0-21-9.4-21-21 0-166.4-135.4-301.8-301.8-301.8-166.3 0-301.7 135.4-301.7 301.8 0 11.6-9.4 21-21 21s-21-9.4-21-21c0-46.4 9.1-91.4 27-133.8 17.3-40.9 42.1-77.7 73.7-109.3 31.6-31.6 68.3-56.3 109.3-73.7 42.4-17.9 87.4-27 133.8-27s91.4 9.1 133.8 27c40.9 17.3 77.7 42.1 109.3 73.7 31.6 31.6 56.3 68.3 73.7 109.3 17.9 42.4 27 87.4 27 133.8-0.1 11.6-9.5 21-21.1 21z', 'M675.4 598.9c-11.6 0-21-9.4-21-21s9.4-21 21-21c97.4 0 176.7-79.3 176.7-176.7 0-97.4-79.3-176.7-176.7-176.7-11.6 0-21-9.4-21-21s9.4-21 21-21c58.4 0 113.3 22.8 154.7 64.1 41.3 41.3 64.1 96.2 64.1 154.7 0 58.4-22.8 113.3-64.1 154.7-41.4 41.2-96.3 63.9-154.7 63.9z', 'M937 862.5c-11.6 0-21-9.4-21-21 0-132.7-107.9-240.6-240.6-240.6-11.6 0-21-9.4-21-21s9.4-21 21-21c75.5 0 146.5 29.4 199.8 82.8C928.6 695 958 766 958 841.5c0 11.6-9.4 21-21 21z'] 9 | 10 | export const account = ['M501.76 563.2c-124.928 0-225.28-100.352-225.28-225.28s100.352-225.28 225.28-225.28 225.28 100.352 225.28 225.28-100.352 225.28-225.28 225.28z m0-409.6c-102.4 0-184.32 81.92-184.32 184.32s81.92 184.32 184.32 184.32 184.32-81.92 184.32-184.32-81.92-184.32-184.32-184.32z', 'M849.92 911.36c-12.288 0-20.48-8.192-20.48-20.48 0-180.224-147.456-327.68-327.68-327.68s-327.68 147.456-327.68 327.68c0 12.288-8.192 20.48-20.48 20.48s-20.48-8.192-20.48-20.48c0-202.752 165.888-368.64 368.64-368.64s368.64 165.888 368.64 368.64c0 12.288-8.192 20.48-20.48 20.48z'] 11 | 12 | export const voice = ['M928.452525 222.513131c-2.456566-19.652525-19.135354-34.521212-38.917171-34.521212s-36.460606 14.739394-38.917172 34.521212v656.937374h77.834343V222.513131zM134.464646 422.270707c-20.169697-0.905051-37.365657 14.351515-38.917171 34.521212v422.787879h77.834343V456.921212H173.252525c-1.422222-20.29899-18.747475-35.555556-38.787879-34.650505zM389.947475 98.909091c-20.040404-1.034343-37.236364 14.222222-38.917172 34.262626v746.408081h77.705051V133.30101c-1.422222-20.169697-18.747475-35.29697-38.787879-34.391919z m244.10505 212.040404c-20.040404-1.034343-37.236364 14.092929-38.917171 34.133333h-0.129293v534.49697h77.834343V345.082828c-1.551515-20.040404-18.747475-35.167677-38.787879-34.133333z'] 13 | 14 | export const cloud = ['M787.24096 331.84768C726.3232 223.90784 612.82816 157.2864 488.1408 157.2864a343.03488 343.03488 0 0 0-225.60256 84.608c-56.75008 49.5104-95.50848 116.06016-110.57152 189.18912C62.7456 456.82688 0 538.8032 0 633.28768c0 104.71936 77.80864 192.62464 178.65728 208.05632v2.48832H768.1536c141.43488 0 256.38912-114.95936 256.38912-256.39424 0.0768-134.92736-104.86272-245.79072-237.30176-255.5904z m-19.01568 453.18656H210.46784l-1.97632-0.14848c-82.48832-1.024-149.62176-68.8896-149.62176-151.52128 0-73.20064 52.14208-135.87456 124.02688-149.10976l20.76672-3.87584 3.072-20.9152c9.65632-66.98496 43.22304-128.4864 94.48448-173.31712A284.04736 284.04736 0 0 1 488.1408 216.0896c93.312 0 179.0208 45.04576 231.96672 119.63904-62.52544 12.13952-119.27552 47.17056-157.81376 99.01568a29.312 29.312 0 0 0 6.144 41.16992 29.49632 29.49632 0 0 0 41.16992-6.0672c37.7344-50.75456 95.58016-79.93344 158.6176-79.93344 108.89216 0 197.52448 88.56064 197.52448 197.52448s-88.63232 197.59616-197.52448 197.59616z'] 15 | 16 | export const identify = ['M883.200518 179.20311c0-44.26509-20.40452-89.705237-76.793434-100.11486l0 343.310194c0 1.617431 0 9.953424 0 12.80121 0 70.683137-63.052178 127.998272-140.799482 127.998272-77.774952 0-140.799482-57.315135-140.799482-127.998272 0-70.710785 63.02453-127.998272 140.799482-127.998272 23.16936 0 44.721288 5.584977 64.006048 14.598356L729.613651 38.403629C729.599827 17.183481 746.797133 0 767.989632 0c4.534338 0 12.80121 0 12.80121 0 101.607873 0 179.20311 75.977806 179.20311 179.20311C959.993952 204.791705 883.200518 204.003726 883.200518 179.20311zM665.593779 383.994816c-35.348481 0-64.006048 22.9067-64.006048 51.204838 0 28.256666 28.643743 51.204838 64.006048 51.204838 35.348481 0 64.006048-22.934349 64.006048-51.204838C729.599827 406.901516 700.956084 383.994816 665.593779 383.994816zM601.601555 230.394125c0-77.056093-74.498616-153.600691-166.401901-153.600691S269.599557 154.139835 268.797754 230.394125l0 281.598963c0 107.441686 74.498616 179.20311 166.401901 179.20311 70.752258 0 122.136811-44.845706 140.799482-76.821082 31.380935-53.734667 94.999905-12.082351 51.204838 51.218663-22.809931 32.94307-101.248444 102.395853-191.990496 102.395853-115.915921 0-243.195334-102.506446-243.195334-230.394125L192.018144 230.394125C192.00432 96.078193 300.883723 0 435.199654 0s243.195334 101.676994 243.195334 230.394125c0 0 0 17.459965 0 25.602419l-76.793434 0C601.601555 249.471521 601.601555 230.394125 601.601555 230.394125zM729.599827 639.99136c0 0 17.21113-51.633389 38.403629-51.218663 51.591916 0.981518 38.403629 51.218663 38.403629 51.218663-49.310923 147.504219-176.120314 262.936293-332.789977 279.373267l0 66.231744c0 21.192499-17.197305 38.403629-38.403629 38.403629s-38.403629-17.197305-38.403629-38.403629l0-66.204096C240.001944 902.982949 113.178729 787.73059 64.006048 639.99136c0 0 0-3.303984 0-12.80121 0-21.220148 14.473938-38.154793 35.680261-38.320684 24.593253-0.193539 41.126996 51.121893 41.126996 51.121893 49.200329 117.035681 162.862906 204.791705 294.400173 204.791705C567.220769 844.783065 680.70363 757.718251 729.599827 639.99136z'] 17 | 18 | export const recode = [''] 19 | 20 | 21 | export const addFriend = ['M512 464c88 0 160-72 160-160s-72-160-160-160-160 72-160 160 72 160 160 160z m224 288v-96c0-17.6 14.4-32 32-32s32 14.4 32 32v96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32h-96v96c0 17.6-14.4 32-32 32s-32-14.4-32-32v-96h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96z m-16-244.8c9.6 6.4 16 16 16 27.2 0 17.6-14.4 32-32 32-6.4 0-11.2-1.6-16-4.8-43.2-22.4-91.2-33.6-144-33.6h-64c-176 0-320 144-320 320 0 17.6 14.4 32 32 32h384c17.6 0 32 14.4 32 32s-14.4 32-32 32H192c-52.8 0-96-43.2-96-96 0-174.4 116.8-321.6 276.8-368-51.2-41.6-84.8-104-84.8-176 0-123.2 100.8-224 224-224s224 100.8 224 224c0 70.4-33.6 134.4-84.8 176 24 6.4 48 16 68.8 27.2z'] -------------------------------------------------------------------------------- /src/store/account.js: -------------------------------------------------------------------------------- 1 | import { handleActions } from 'redux-actions' 2 | 3 | const initialState = { 4 | isLogin: false, 5 | badge: 9 6 | } 7 | 8 | export default handleActions({ 9 | // 添加不同type,返回相应新的状态 10 | ACCOUNT_INIT: (state, action) => { 11 | return Object.assign({ init: true }, {}) 12 | } 13 | // ....... 14 | 15 | }, initialState) 16 | 17 | export const login = () => async (dispatch, getState) => { 18 | dispatch({ 19 | type: 'ACCOUNT_INIT' 20 | }) 21 | /* ****请求数据*** 22 | try{ 23 | const url = 'www.login.com'; 24 | const username='test'; 25 | const password = '123456'; 26 | //get请求 27 | const res = await GETJSON(url,{username,password}); 28 | //post 请求 29 | const res = await POSTUrlencodeJSON(url,{username,password}); 30 | 31 | }catch(e){ 32 | console.log(e) 33 | } 34 | 35 | ******完毕!****** 36 | 37 | */ 38 | 39 | console.log('hello world') 40 | } 41 | -------------------------------------------------------------------------------- /src/store/find.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/src/store/find.js -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import { createStore, applyMiddleware, combineReducers, bindActionCreators } from 'redux'; 2 | import thunk from 'redux-thunk'; 3 | import { persistStore, persistReducer } from 'redux-persist' 4 | import storage from 'redux-persist/lib/storage' 5 | import account from './account' 6 | // ...... 7 | //引入多个reducer 8 | 9 | const persistConfig = { 10 | key: 'v0.0.5', 11 | storage: storage, 12 | blacklist: ['account'] 13 | 14 | } 15 | 16 | const logMiddleware = store => next => action => { 17 | console.log(`['action']${action}`); 18 | return next(action) 19 | }; 20 | 21 | const reducers = { 22 | account 23 | //与引入的一一对应 24 | }; 25 | 26 | 27 | const middleware = applyMiddleware( 28 | logMiddleware, 29 | thunk, 30 | ); 31 | 32 | 33 | //reducer合并 34 | const rootReducer = combineReducers({ 35 | ...reducers 36 | }); 37 | const persistedReducer = persistReducer(persistConfig, rootReducer) 38 | 39 | const store = createStore(persistedReducer, {}, middleware); 40 | 41 | store.persist = persistStore(store) 42 | 43 | export default store 44 | -------------------------------------------------------------------------------- /src/utils/global.js: -------------------------------------------------------------------------------- 1 | import Stores from '../store' 2 | // import { } from 'react-navigation' 3 | 4 | type KeyMap = 'navigator' | 'toast' 5 | 6 | class Global { 7 | navigator = null 8 | toast = null 9 | store = Stores 10 | 11 | set (key: KeyMap, value) { 12 | this[key] = value 13 | } 14 | 15 | link (key: KeyMap) { 16 | return (e) => { this[key] = e } 17 | } 18 | } 19 | 20 | export default Global 21 | -------------------------------------------------------------------------------- /src/utils/index.js: -------------------------------------------------------------------------------- 1 | import Global from './global' 2 | 3 | export default { 4 | global: new Global() 5 | } 6 | -------------------------------------------------------------------------------- /src/view/find/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaiYz/react-native-redux-init/78a4e31b3e1d1ea6ba4c4bb9a99e22c78e84da05/src/view/find/index.js -------------------------------------------------------------------------------- /src/views/account/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { View, Text, DeviceEventEmitter } from 'react-native' 3 | import utils from '../../utils' 4 | import Stores from '../../store' 5 | import { connect } from 'react-redux' 6 | import { bindActionCreators } from 'redux' 7 | class AccountScreen extends React.Component { 8 | 9 | render () { 10 | console.log(this.props) 11 | return ( 12 | 13 | Account! 14 | 15 | ) 16 | } 17 | } 18 | 19 | export default connect(state => ({ 20 | account: state.account 21 | }),(dispatch) => bindActionCreators({ 22 | 23 | }, dispatch) 24 | )(AccountScreen) -------------------------------------------------------------------------------- /src/views/find/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { View, TouchableOpacity, DeviceEventEmitter } from 'react-native' 3 | import {Svg, Text} from 'react-native-svg' 4 | export default class FindScreen extends React.Component { 5 | render () { 6 | return ( 7 | 8 | find 9 | { 10 | this.props.account.add() 11 | }}> 12 | add Badge !! 13 | 14 | 15 | 19 | STROKED TEXT12富强民主文明和谐爱国诚信 28 | 29 | 30 | ) 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/views/friends/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { View, Text } from 'react-native' 3 | 4 | class FriendsScreen extends React.Component { 5 | render () { 6 | return ( 7 | 8 | Friends! 9 | 10 | ) 11 | } 12 | } 13 | 14 | 15 | export default FriendsScreen -------------------------------------------------------------------------------- /src/views/index.js: -------------------------------------------------------------------------------- 1 | const Screens = {} 2 | Screens.Find = require('./find').default 3 | Screens.Video = require('./video').default 4 | Screens.Mine = require('./mine').default 5 | Screens.Friends = require('./friends').default 6 | Screens.Account = require('./account').default 7 | Screens.Login = require('./login').default 8 | export default Screens 9 | -------------------------------------------------------------------------------- /src/views/login/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { View, Text } from 'react-native' 3 | import Splash from 'react-native-splash-screen' 4 | 5 | export default class LoginScreen extends React.Component { 6 | componentDidMount () { 7 | setTimeout(() => Splash.hide(), 100) 8 | } 9 | render () { 10 | console.log(this.props) 11 | return ( 12 | 13 | 请登录! 14 | 15 | ) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/views/mine/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { View, Text } from 'react-native' 3 | 4 | export default class MineScreen extends React.Component { 5 | render () { 6 | return ( 7 | 8 | Mine! 9 | 10 | ) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/views/video/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { View, Text } from 'react-native' 3 | 4 | export default class VideoScreen extends React.Component { 5 | render () { 6 | return ( 7 | 8 | Video! 9 | 10 | ) 11 | } 12 | } 13 | --------------------------------------------------------------------------------