├── .babelrc ├── .buckconfig ├── .flowconfig ├── .gitattributes ├── .gitignore ├── .gitmodules ├── .watchmanconfig ├── __tests__ ├── index.android.js └── index.ios.js ├── android ├── app │ ├── BUCK │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── awesomeproject │ │ │ ├── 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 ├── index.android.js ├── index.ios.js ├── ios ├── AwesomeProject.xcodeproj │ ├── project.pbxproj │ └── xcshareddata │ │ └── xcschemes │ │ └── AwesomeProject.xcscheme ├── AwesomeProject │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Base.lproj │ │ └── LaunchScreen.xib │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ └── main.m └── AwesomeProjectTests │ ├── AwesomeProjectTests.m │ └── Info.plist ├── package.json ├── shim.js └── vexflow_component.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["react-native"] 3 | } -------------------------------------------------------------------------------- /.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 | .*/Libraries/react-native/ReactNative.js 16 | 17 | [include] 18 | 19 | [libs] 20 | node_modules/react-native/Libraries/react-native/react-native-interface.js 21 | node_modules/react-native/flow 22 | flow/ 23 | 24 | [options] 25 | module.system=haste 26 | 27 | experimental.strict_type_args=true 28 | 29 | munge_underscores=true 30 | 31 | module.name_mapper='^image![a-zA-Z0-9$_-]+$' -> 'GlobalImageStub' 32 | 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' 33 | 34 | suppress_type=$FlowIssue 35 | suppress_type=$FlowFixMe 36 | suppress_type=$FixMe 37 | 38 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(3[0-5]\\|[1-2][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) 39 | suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(3[0-5]\\|1[0-9]\\|[1-2][0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ 40 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy 41 | 42 | unsafe.enable_getters_and_setters=true 43 | 44 | [version] 45 | ^0.35.0 46 | -------------------------------------------------------------------------------- /.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 | 38 | # BUCK 39 | buck-out/ 40 | \.buckd/ 41 | android/app/libs 42 | *.keystore 43 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "vexflow"] 2 | path = vexflow 3 | url = https://github.com/matt-gardner/vexflow 4 | -------------------------------------------------------------------------------- /.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /__tests__/index.android.js: -------------------------------------------------------------------------------- 1 | import 'react-native'; 2 | import React from 'react'; 3 | import Index from '../index.android.js'; 4 | 5 | // Note: test renderer must be required after react-native. 6 | import renderer from 'react-test-renderer'; 7 | 8 | it('renders correctly', () => { 9 | const tree = renderer.create( 10 | 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /__tests__/index.ios.js: -------------------------------------------------------------------------------- 1 | import 'react-native'; 2 | import React from 'react'; 3 | import Index from '../index.ios.js'; 4 | 5 | // Note: test renderer must be required after react-native. 6 | import renderer from 'react-test-renderer'; 7 | 8 | it('renders correctly', () => { 9 | const tree = renderer.create( 10 | 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /android/app/BUCK: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | # To learn about Buck see [Docs](https://buckbuild.com/). 4 | # To run your application with Buck: 5 | # - install Buck 6 | # - `npm start` - to start the packager 7 | # - `cd android` 8 | # - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` 9 | # - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck 10 | # - `buck install -r android/app` - compile, install and run application 11 | # 12 | 13 | lib_deps = [] 14 | for jarfile in glob(['libs/*.jar']): 15 | name = 'jars__' + re.sub(r'^.*/([^/]+)\.jar$', r'\1', jarfile) 16 | lib_deps.append(':' + name) 17 | prebuilt_jar( 18 | name = name, 19 | binary_jar = jarfile, 20 | ) 21 | 22 | for aarfile in glob(['libs/*.aar']): 23 | name = 'aars__' + re.sub(r'^.*/([^/]+)\.aar$', r'\1', aarfile) 24 | lib_deps.append(':' + name) 25 | android_prebuilt_aar( 26 | name = name, 27 | aar = aarfile, 28 | ) 29 | 30 | android_library( 31 | name = 'all-libs', 32 | exported_deps = lib_deps 33 | ) 34 | 35 | android_library( 36 | name = 'app-code', 37 | srcs = glob([ 38 | 'src/main/java/**/*.java', 39 | ]), 40 | deps = [ 41 | ':all-libs', 42 | ':build_config', 43 | ':res', 44 | ], 45 | ) 46 | 47 | android_build_config( 48 | name = 'build_config', 49 | package = 'com.awesomeproject', 50 | ) 51 | 52 | android_resource( 53 | name = 'res', 54 | res = 'src/main/res', 55 | package = 'com.awesomeproject', 56 | ) 57 | 58 | android_binary( 59 | name = 'app', 60 | package_type = 'debug', 61 | manifest = 'src/main/AndroidManifest.xml', 62 | keystore = '//android/keystores:debug', 63 | deps = [ 64 | ':app-code', 65 | ], 66 | ) 67 | -------------------------------------------------------------------------------- /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 | * // the root of your project, i.e. where "package.json" lives 37 | * root: "../../", 38 | * 39 | * // where to put the JS bundle asset in debug mode 40 | * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", 41 | * 42 | * // where to put the JS bundle asset in release mode 43 | * jsBundleDirRelease: "$buildDir/intermediates/assets/release", 44 | * 45 | * // where to put drawable resources / React Native assets, e.g. the ones you use via 46 | * // require('./image.png')), in debug mode 47 | * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", 48 | * 49 | * // where to put drawable resources / React Native assets, e.g. the ones you use via 50 | * // require('./image.png')), in release mode 51 | * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", 52 | * 53 | * // by default the gradle tasks are skipped if none of the JS files or assets change; this means 54 | * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to 55 | * // date; if you have any other folders that you want to ignore for performance reasons (gradle 56 | * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ 57 | * // for example, you might want to remove it from here. 58 | * inputExcludes: ["android/**", "ios/**"], 59 | * 60 | * // override which node gets called and with what additional arguments 61 | * nodeExecutableAndArgs: ["node"] 62 | * 63 | * // supply additional arguments to the packager 64 | * extraPackagerArgs: [] 65 | * ] 66 | */ 67 | 68 | apply from: "../../node_modules/react-native/react.gradle" 69 | 70 | /** 71 | * Set this to true to create two separate APKs instead of one: 72 | * - An APK that only works on ARM devices 73 | * - An APK that only works on x86 devices 74 | * The advantage is the size of the APK is reduced by about 4MB. 75 | * Upload all the APKs to the Play Store and people will download 76 | * the correct one based on the CPU architecture of their device. 77 | */ 78 | def enableSeparateBuildPerCPUArchitecture = false 79 | 80 | /** 81 | * Run Proguard to shrink the Java bytecode in release builds. 82 | */ 83 | def enableProguardInReleaseBuilds = false 84 | 85 | android { 86 | compileSdkVersion 23 87 | buildToolsVersion "23.0.1" 88 | 89 | defaultConfig { 90 | applicationId "com.awesomeproject" 91 | minSdkVersion 16 92 | targetSdkVersion 22 93 | versionCode 1 94 | versionName "1.0" 95 | ndk { 96 | abiFilters "armeabi-v7a", "x86" 97 | } 98 | } 99 | splits { 100 | abi { 101 | reset() 102 | enable enableSeparateBuildPerCPUArchitecture 103 | universalApk false // If true, also generate a universal APK 104 | include "armeabi-v7a", "x86" 105 | } 106 | } 107 | buildTypes { 108 | release { 109 | minifyEnabled enableProguardInReleaseBuilds 110 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 111 | } 112 | } 113 | // applicationVariants are e.g. debug, release 114 | applicationVariants.all { variant -> 115 | variant.outputs.each { output -> 116 | // For each separate APK per architecture, set a unique version code as described here: 117 | // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits 118 | def versionCodes = ["armeabi-v7a":1, "x86":2] 119 | def abi = output.getFilter(OutputFile.ABI) 120 | if (abi != null) { // null for the universal-debug, universal-release variants 121 | output.versionCodeOverride = 122 | versionCodes.get(abi) * 1048576 + defaultConfig.versionCode 123 | } 124 | } 125 | } 126 | } 127 | 128 | dependencies { 129 | compile project(':react-native-svg') 130 | compile fileTree(dir: "libs", include: ["*.jar"]) 131 | compile "com.android.support:appcompat-v7:23.0.1" 132 | compile "com.facebook.react:react-native:+" // From node_modules 133 | } 134 | 135 | // Run this once to be able to run the application with BUCK 136 | // puts all compile dependencies into folder libs for BUCK to use 137 | task copyDownloadableDepsToLibs(type: Copy) { 138 | from configurations.compile 139 | into 'libs' 140 | } 141 | -------------------------------------------------------------------------------- /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 | # okhttp 54 | 55 | -keepattributes Signature 56 | -keepattributes *Annotation* 57 | -keep class okhttp3.** { *; } 58 | -keep interface okhttp3.** { *; } 59 | -dontwarn okhttp3.** 60 | 61 | # okio 62 | 63 | -keep class sun.misc.Unsafe { *; } 64 | -dontwarn java.nio.file.* 65 | -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement 66 | -dontwarn okio.** 67 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | 19 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /android/app/src/main/java/com/awesomeproject/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.awesomeproject; 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 "AwesomeProject"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /android/app/src/main/java/com/awesomeproject/MainApplication.java: -------------------------------------------------------------------------------- 1 | package com.awesomeproject; 2 | 3 | import android.app.Application; 4 | import android.util.Log; 5 | 6 | import com.facebook.react.ReactApplication; 7 | import com.horcrux.svg.RNSvgPackage; 8 | import com.facebook.react.ReactInstanceManager; 9 | import com.facebook.react.ReactNativeHost; 10 | import com.facebook.react.ReactPackage; 11 | import com.facebook.react.shell.MainReactPackage; 12 | import com.facebook.soloader.SoLoader; 13 | 14 | import java.util.Arrays; 15 | import java.util.List; 16 | 17 | public class MainApplication extends Application implements ReactApplication { 18 | 19 | private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { 20 | @Override 21 | protected boolean getUseDeveloperSupport() { 22 | return BuildConfig.DEBUG; 23 | } 24 | 25 | @Override 26 | protected List getPackages() { 27 | return Arrays.asList( 28 | new MainReactPackage(), 29 | new RNSvgPackage() 30 | ); 31 | } 32 | }; 33 | 34 | @Override 35 | public ReactNativeHost getReactNativeHost() { 36 | return mReactNativeHost; 37 | } 38 | 39 | @Override 40 | public void onCreate() { 41 | super.onCreate(); 42 | SoLoader.init(this, /* native exopackage */ false); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matt-gardner/react-native-vexflow-example/d17c608e2ab3af17cdaa657ef2c31a4926a07bfe/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matt-gardner/react-native-vexflow-example/d17c608e2ab3af17cdaa657ef2c31a4926a07bfe/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matt-gardner/react-native-vexflow-example/d17c608e2ab3af17cdaa657ef2c31a4926a07bfe/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matt-gardner/react-native-vexflow-example/d17c608e2ab3af17cdaa657ef2c31a4926a07bfe/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | AwesomeProject 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:1.3.1' 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/matt-gardner/react-native-vexflow-example/d17c608e2ab3af17cdaa657ef2c31a4926a07bfe/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.4-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 | store = 'debug.keystore', 4 | properties = 'debug.keystore.properties', 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 = 'AwesomeProject' 2 | include ':react-native-svg' 3 | project(':react-native-svg').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-svg/android') 4 | 5 | include ':app' 6 | -------------------------------------------------------------------------------- /index.android.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Sample React Native App 3 | * https://github.com/facebook/react-native 4 | * @flow 5 | */ 6 | 7 | import React, { Component } from 'react'; 8 | import { 9 | AppRegistry, 10 | StyleSheet, 11 | Text, 12 | View 13 | } from 'react-native'; 14 | 15 | export default class AwesomeProject extends Component { 16 | render() { 17 | return ( 18 | 19 | 20 | Welcome to React Native! 21 | 22 | 23 | To get started, edit index.android.js 24 | 25 | 26 | Double tap R on your keyboard to reload,{'\n'} 27 | Shake or press menu button for dev menu 28 | 29 | 30 | ); 31 | } 32 | } 33 | 34 | const styles = StyleSheet.create({ 35 | container: { 36 | flex: 1, 37 | justifyContent: 'center', 38 | alignItems: 'center', 39 | backgroundColor: '#F5FCFF', 40 | }, 41 | welcome: { 42 | fontSize: 20, 43 | textAlign: 'center', 44 | margin: 10, 45 | }, 46 | instructions: { 47 | textAlign: 'center', 48 | color: '#333333', 49 | marginBottom: 5, 50 | }, 51 | }); 52 | 53 | AppRegistry.registerComponent('AwesomeProject', () => AwesomeProject); 54 | -------------------------------------------------------------------------------- /index.ios.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Sample React Native App 3 | * https://github.com/facebook/react-native 4 | * @flow 5 | */ 6 | 7 | import './shim' 8 | import React, { Component } from 'react'; 9 | import { 10 | AppRegistry, 11 | StyleSheet, 12 | Text, 13 | View 14 | } from 'react-native'; 15 | import Svg, {G, Rect, Path, Circle} from 'react-native-svg' 16 | import Vex from 'vexflow' 17 | 18 | import VexFlow from './vexflow_component' 19 | 20 | VF = Vex.Flow 21 | 22 | export default class AwesomeProject extends Component { 23 | render() { 24 | var notes = [ 25 | // A quarter-note C. 26 | new VF.StaveNote({clef: "treble", keys: ["c/4"], duration: "q" }), 27 | 28 | // A quarter-note D. 29 | new VF.StaveNote({clef: "treble", keys: ["d/4"], duration: "q" }), 30 | 31 | // A quarter-note rest. Note that the key (b/4) specifies the vertical 32 | // position of the rest. 33 | new VF.StaveNote({clef: "treble", keys: ["b/4"], duration: "qr" }), 34 | 35 | // A C-Major chord. 36 | new VF.StaveNote({clef: "treble", keys: ["c/4", "e/4", "g/4"], duration: "q" }) 37 | ]; 38 | var voice = new VF.Voice({num_beats: 4, beat_value: 4}); 39 | voice.addTickables(notes); 40 | var width = 300 41 | var stave = new VF.Stave(0, 0, width); 42 | var clefPath = "M5 69M19.0544 25.8288C19.112000000000002 25.800000000000004,19.1696 25.800000000000004,19.256 25.800000000000004C19.601599999999998 25.800000000000004,20.0048 26.088,20.5808 26.808C22.9136 29.486400000000003,24.5552 34.152,24.5552 37.9536C24.5552 38.241600000000005,24.4976 38.472,24.4976 38.760000000000005C24.2384 43.2816,22.3952 46.9968,18.7376 50.510400000000004L17.7584 51.4608L17.412799999999997 51.8352L17.412799999999997 51.9504L17.6144 52.8144L17.9312 54.3696L18.247999999999998 55.8096C18.68 57.768,18.852800000000002 58.775999999999996,18.852800000000002 58.775999999999996C18.852800000000002 58.775999999999996,18.852800000000002 58.775999999999996,18.852800000000002 58.775999999999996C18.852800000000002 58.775999999999996,18.968 58.775999999999996,19.112000000000002 58.7472C19.256 58.7472,19.7168 58.6896,20.206400000000002 58.6896C20.552 58.6896,20.897599999999997 58.7472,21.0704 58.7472C25.1312 59.2656,28.2704 62.1744,29.1632 66.264C29.336 66.9264,29.3936 67.6464,29.3936 68.3664C29.3936 72.2544,27.0608 75.9696,23.1728 77.7264C22.9424 77.8704,22.855999999999998 77.89920000000001,22.855999999999998 77.89920000000001L22.855999999999998 77.928C22.855999999999998 77.928,23.0288 78.5904,23.1728 79.3392L23.6048 81.528L24.008 83.2848C24.2384 84.408,24.3536 85.2144,24.3536 85.9344C24.3536 86.568,24.2672 87.144,24.1232 87.8064C23.144 91.8096,19.6592 94.2,16.0304 94.2C14.2448 94.2,12.4016 93.624,10.7888 92.328C9.3488 91.11840000000001,8.7152 90.024,8.7152 88.584C8.7152 86.0496,10.76 84.264,12.8912 84.264C13.64 84.264,14.3888 84.4944,15.1088 84.9264C16.3184 85.7616,16.8656 87.0288,16.8656 88.2672C16.8656 90.168,15.540799999999999 92.03999999999999,13.2656 92.184L13.0352 92.184L13.208 92.2992C14.1584 92.7024,15.1088 92.904,16.0304 92.904C18.3632 92.904,20.552 91.72319999999999,21.8768 89.6784C22.6256 88.5264,23.0288 87.1728,23.0288 85.8192C23.0288 85.3008,22.9424 84.7824,22.8272 84.2064C22.8272 84.1488,22.7408 83.688,22.6256 83.256C21.992 80.1456,21.6176 78.3312,21.6176 78.3312C21.6176 78.3312,21.6176 78.3312,21.6176 78.3312C21.56 78.3312,21.4448 78.3312,21.3584 78.3888C21.0704 78.4464,20.465600000000002 78.5904,20.206400000000002 78.6192C19.5728 78.7056,18.968 78.7344,18.392 78.7344C12.7472 78.7344,7.505599999999999 74.9328,5.6912 69.3168C5.2304 67.8192,4.9712 66.3216,4.9712 64.824C4.9712 61.8288,5.9216 58.8912,7.7648 56.2704C9.7808 53.419200000000004,11.796800000000001 50.971199999999996,14.2736 48.436800000000005L15.137599999999999 47.544L14.936 46.4784L14.5616 44.7216L14.072 42.4752C13.927999999999999 41.64,13.7552 40.833600000000004,13.7264 40.6608C13.5824 39.7104,13.496 38.7888,13.496 37.8384C13.496 34.2096,14.6768 30.724800000000002,16.894399999999997 27.931200000000004C17.5568 27.0672,18.7376 25.9152,19.0544 25.8288M20.8112 31.5312C20.7536 31.5312,20.6672 31.5312,20.5808 31.5312C19.4 31.5312,17.8736 32.6256,16.8368 34.2384C15.7712 35.8224,15.224 37.924800000000005,15.224 40.0848C15.224 40.6608,15.2528 41.2656,15.3392 41.870400000000004C15.4256 42.302400000000006,15.4544 42.5904,15.6848 43.6272L16.088 45.4416C16.2032 45.9888,16.2896 46.4208,16.2896 46.4784L16.2896 46.4784C16.3184 46.4784,17.211199999999998 45.4992,17.499200000000002 45.1536C20.379199999999997 41.8992,22.1072 38.472,22.4816 35.448C22.5104 35.160000000000004,22.5104 34.9296,22.5104 34.641600000000004C22.5104 33.7488,22.3952 32.8848,22.1936 32.424C21.9632 31.9632,21.4448 31.5888,20.8112 31.5312M16.4624 53.7936C16.4048 53.3904,16.3184 53.0736,16.3184 53.016C16.3184 53.016,16.3184 53.016,16.2896 53.016C16.232 53.016,14.993599999999999 54.456,14.1296 55.464C12.6608 57.2496,11.105599999999999 59.3808,10.472 60.4176C9.2624 62.4624,8.6576 64.7376,8.6576 66.984C8.6576 68.4528,8.945599999999999 69.864,9.463999999999999 71.2176C11.0192 75.2208,14.590399999999999 77.7264,18.4784 77.7264C18.9392 77.7264,19.4576 77.6976,19.9472 77.6112C20.5808 77.496,21.3584 77.2656,21.3584 77.1792L21.3584 77.1792C21.3584 77.1792,21.3008 76.8912,21.2144 76.5744L20.379199999999997 72.456L19.7168 69.3744L19.284799999999997 67.2432L18.823999999999998 65.1696C18.593600000000002 63.931200000000004,18.507199999999997 63.6144,18.507199999999997 63.6144C18.507199999999997 63.6144,18.507199999999997 63.5856,18.4784 63.5856C18.3056 63.5856,17.384 64.0464,16.980800000000002 64.3344C15.4832 65.3712,14.7056 67.0128,14.7056 68.6256C14.7056 70.152,15.4544 71.6784,16.894399999999997 72.5712C17.211199999999998 72.7728,17.3264 72.9456,17.3264 73.1472C17.3264 73.176,17.3264 73.2624,17.3264 73.2912C17.2688 73.6368,17.0672 73.7808,16.7792 73.7808C16.664 73.7808,16.52 73.752,16.3472 73.6656C13.6976 72.5136,11.911999999999999 69.7776,11.911999999999999 66.7824L11.911999999999999 66.7824C11.911999999999999 63.3264,14.072 60.3312,17.384 59.1504L17.5568 59.0928L17.2688 57.6528L16.4624 53.7936M20.7824 63.4128C20.552 63.384,20.3216 63.384,20.1488 63.384C20.0912 63.384,20.0048 63.384,19.9472 63.384L19.8032 63.384L19.9184 63.9024L20.5232 66.7248L20.897599999999997 68.568L21.3008 70.3824L22.1072 74.3856L22.424 75.912C22.5392 76.3152,22.596799999999998 76.6608,22.6256 76.6608C22.6256 76.6608,22.6256 76.6608,22.6256 76.6608C22.6544 76.6608,23.144 76.3728,23.4608 76.1424C24.9296 75.1056,26.024 73.4928,26.4272 71.8224C26.5712 71.2752,26.6288 70.6992,26.6288 70.152C26.6288 66.8112,24.152 63.7872,20.7824 63.4128" 43 | stave.addClef("treble").addTimeSignature("4/4"); 44 | return ( 45 | 46 | 47 | Welcome to React Native! 48 | 49 | 50 | 54 | 55 | 63 | 72 | 73 | 78 | 79 | 87 | 88 | 89 | To get started, edit index.ios.js 90 | 91 | 92 | Press Cmd+R to reload,{'\n'} Cmd+D or shake for dev menu 93 | 94 | 95 | ); 96 | } 97 | } 98 | 99 | 100 | /* 101 | */ 102 | const styles = StyleSheet.create({ 103 | container: { 104 | flex: 1, 105 | justifyContent: 'center', 106 | alignItems: 'center', 107 | backgroundColor: '#F5FCFF', 108 | }, 109 | welcome: { 110 | fontSize: 20, 111 | textAlign: 'center', 112 | margin: 10, 113 | }, 114 | instructions: { 115 | textAlign: 'center', 116 | color: '#333333', 117 | marginBottom: 5, 118 | }, 119 | }); 120 | 121 | AppRegistry.registerComponent('AwesomeProject', () => AwesomeProject); 122 | -------------------------------------------------------------------------------- /ios/AwesomeProject.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | /* Begin PBXBuildFile section */ 9 | 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; }; 10 | 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; }; 11 | 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */; }; 12 | 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; }; 13 | 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; }; 14 | 00E356F31AD99517003FC87E /* AwesomeProjectTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* AwesomeProjectTests.m */; }; 15 | 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; }; 16 | 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; }; 17 | 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; }; 18 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; 19 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; 20 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 21 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 22 | 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 23 | 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 24 | 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; 25 | 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; 26 | 6FDE9BE333D84936A5A868DF /* libRNSVG.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A5BD87EB53F84FFF8747268D /* libRNSVG.a */; }; 27 | /* End PBXBuildFile section */ 28 | 29 | /* Begin PBXContainerItemProxy section */ 30 | 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */ = { 31 | isa = PBXContainerItemProxy; 32 | containerPortal = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; 33 | proxyType = 2; 34 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 35 | remoteInfo = RCTActionSheet; 36 | }; 37 | 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */ = { 38 | isa = PBXContainerItemProxy; 39 | containerPortal = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; 40 | proxyType = 2; 41 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 42 | remoteInfo = RCTGeolocation; 43 | }; 44 | 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */ = { 45 | isa = PBXContainerItemProxy; 46 | containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; 47 | proxyType = 2; 48 | remoteGlobalIDString = 58B5115D1A9E6B3D00147676; 49 | remoteInfo = RCTImage; 50 | }; 51 | 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */ = { 52 | isa = PBXContainerItemProxy; 53 | containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; 54 | proxyType = 2; 55 | remoteGlobalIDString = 58B511DB1A9E6C8500147676; 56 | remoteInfo = RCTNetwork; 57 | }; 58 | 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */ = { 59 | isa = PBXContainerItemProxy; 60 | containerPortal = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; 61 | proxyType = 2; 62 | remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; 63 | remoteInfo = RCTVibration; 64 | }; 65 | 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { 66 | isa = PBXContainerItemProxy; 67 | containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; 68 | proxyType = 1; 69 | remoteGlobalIDString = 13B07F861A680F5B00A75B9A; 70 | remoteInfo = AwesomeProject; 71 | }; 72 | 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = { 73 | isa = PBXContainerItemProxy; 74 | containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; 75 | proxyType = 2; 76 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 77 | remoteInfo = RCTSettings; 78 | }; 79 | 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */ = { 80 | isa = PBXContainerItemProxy; 81 | containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; 82 | proxyType = 2; 83 | remoteGlobalIDString = 3C86DF461ADF2C930047B81A; 84 | remoteInfo = RCTWebSocket; 85 | }; 86 | 146834031AC3E56700842450 /* PBXContainerItemProxy */ = { 87 | isa = PBXContainerItemProxy; 88 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 89 | proxyType = 2; 90 | remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; 91 | remoteInfo = React; 92 | }; 93 | 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { 94 | isa = PBXContainerItemProxy; 95 | containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; 96 | proxyType = 2; 97 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 98 | remoteInfo = RCTAnimation; 99 | }; 100 | 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { 101 | isa = PBXContainerItemProxy; 102 | containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; 103 | proxyType = 2; 104 | remoteGlobalIDString = 2D2A28201D9B03D100D4039D; 105 | remoteInfo = "RCTAnimation-tvOS"; 106 | }; 107 | 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = { 108 | isa = PBXContainerItemProxy; 109 | containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; 110 | proxyType = 2; 111 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 112 | remoteInfo = RCTLinking; 113 | }; 114 | 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */ = { 115 | isa = PBXContainerItemProxy; 116 | containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; 117 | proxyType = 2; 118 | remoteGlobalIDString = 58B5119B1A9E6C1200147676; 119 | remoteInfo = RCTText; 120 | }; 121 | /* End PBXContainerItemProxy section */ 122 | 123 | /* Begin PBXFileReference section */ 124 | 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; 125 | 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = ""; }; 126 | 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = ""; }; 127 | 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = ""; }; 128 | 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = ""; }; 129 | 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = ""; }; 130 | 00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AwesomeProjectTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 131 | 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 132 | 00E356F21AD99517003FC87E /* AwesomeProjectTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AwesomeProjectTests.m; sourceTree = ""; }; 133 | 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; 134 | 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; }; 135 | 13B07F961A680F5B00A75B9A /* AwesomeProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AwesomeProject.app; sourceTree = BUILT_PRODUCTS_DIR; }; 136 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = AwesomeProject/AppDelegate.h; sourceTree = ""; }; 137 | 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = AwesomeProject/AppDelegate.m; sourceTree = ""; }; 138 | 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 139 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = AwesomeProject/Images.xcassets; sourceTree = ""; }; 140 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = AwesomeProject/Info.plist; sourceTree = ""; }; 141 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = AwesomeProject/main.m; sourceTree = ""; }; 142 | 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; 143 | 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = ""; }; 144 | 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; 145 | 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; 146 | 519BF198F7DA4CA8ABACE9D9 /* RNSVG.xcodeproj */ = {isa = PBXFileReference; name = "RNSVG.xcodeproj"; path = "../node_modules/react-native-svg/ios/RNSVG.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; }; 147 | A5BD87EB53F84FFF8747268D /* libRNSVG.a */ = {isa = PBXFileReference; name = "libRNSVG.a"; path = "libRNSVG.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; }; 148 | /* End PBXFileReference section */ 149 | 150 | /* Begin PBXFrameworksBuildPhase section */ 151 | 00E356EB1AD99517003FC87E /* Frameworks */ = { 152 | isa = PBXFrameworksBuildPhase; 153 | buildActionMask = 2147483647; 154 | files = ( 155 | 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */, 156 | ); 157 | runOnlyForDeploymentPostprocessing = 0; 158 | }; 159 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { 160 | isa = PBXFrameworksBuildPhase; 161 | buildActionMask = 2147483647; 162 | files = ( 163 | 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */, 164 | 146834051AC3E58100842450 /* libReact.a in Frameworks */, 165 | 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */, 166 | 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */, 167 | 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */, 168 | 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */, 169 | 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */, 170 | 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */, 171 | 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, 172 | 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, 173 | 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, 174 | 6FDE9BE333D84936A5A868DF /* libRNSVG.a in Frameworks */, 175 | ); 176 | runOnlyForDeploymentPostprocessing = 0; 177 | }; 178 | /* End PBXFrameworksBuildPhase section */ 179 | 180 | /* Begin PBXGroup section */ 181 | 00C302A81ABCB8CE00DB3ED1 /* Products */ = { 182 | isa = PBXGroup; 183 | children = ( 184 | 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */, 185 | ); 186 | name = Products; 187 | sourceTree = ""; 188 | }; 189 | 00C302B61ABCB90400DB3ED1 /* Products */ = { 190 | isa = PBXGroup; 191 | children = ( 192 | 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */, 193 | ); 194 | name = Products; 195 | sourceTree = ""; 196 | }; 197 | 00C302BC1ABCB91800DB3ED1 /* Products */ = { 198 | isa = PBXGroup; 199 | children = ( 200 | 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */, 201 | ); 202 | name = Products; 203 | sourceTree = ""; 204 | }; 205 | 00C302D41ABCB9D200DB3ED1 /* Products */ = { 206 | isa = PBXGroup; 207 | children = ( 208 | 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */, 209 | ); 210 | name = Products; 211 | sourceTree = ""; 212 | }; 213 | 00C302E01ABCB9EE00DB3ED1 /* Products */ = { 214 | isa = PBXGroup; 215 | children = ( 216 | 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */, 217 | ); 218 | name = Products; 219 | sourceTree = ""; 220 | }; 221 | 00E356EF1AD99517003FC87E /* AwesomeProjectTests */ = { 222 | isa = PBXGroup; 223 | children = ( 224 | 00E356F21AD99517003FC87E /* AwesomeProjectTests.m */, 225 | 00E356F01AD99517003FC87E /* Supporting Files */, 226 | ); 227 | path = AwesomeProjectTests; 228 | sourceTree = ""; 229 | }; 230 | 00E356F01AD99517003FC87E /* Supporting Files */ = { 231 | isa = PBXGroup; 232 | children = ( 233 | 00E356F11AD99517003FC87E /* Info.plist */, 234 | ); 235 | name = "Supporting Files"; 236 | sourceTree = ""; 237 | }; 238 | 139105B71AF99BAD00B5F7CC /* Products */ = { 239 | isa = PBXGroup; 240 | children = ( 241 | 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */, 242 | ); 243 | name = Products; 244 | sourceTree = ""; 245 | }; 246 | 139FDEE71B06529A00C62182 /* Products */ = { 247 | isa = PBXGroup; 248 | children = ( 249 | 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */, 250 | ); 251 | name = Products; 252 | sourceTree = ""; 253 | }; 254 | 13B07FAE1A68108700A75B9A /* AwesomeProject */ = { 255 | isa = PBXGroup; 256 | children = ( 257 | 008F07F21AC5B25A0029DE68 /* main.jsbundle */, 258 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 259 | 13B07FB01A68108700A75B9A /* AppDelegate.m */, 260 | 13B07FB51A68108700A75B9A /* Images.xcassets */, 261 | 13B07FB61A68108700A75B9A /* Info.plist */, 262 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, 263 | 13B07FB71A68108700A75B9A /* main.m */, 264 | ); 265 | name = AwesomeProject; 266 | sourceTree = ""; 267 | }; 268 | 146834001AC3E56700842450 /* Products */ = { 269 | isa = PBXGroup; 270 | children = ( 271 | 146834041AC3E56700842450 /* libReact.a */, 272 | ); 273 | name = Products; 274 | sourceTree = ""; 275 | }; 276 | 5E91572E1DD0AC6500FF2AA8 /* Products */ = { 277 | isa = PBXGroup; 278 | children = ( 279 | 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */, 280 | 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */, 281 | ); 282 | name = Products; 283 | sourceTree = ""; 284 | }; 285 | 78C398B11ACF4ADC00677621 /* Products */ = { 286 | isa = PBXGroup; 287 | children = ( 288 | 78C398B91ACF4ADC00677621 /* libRCTLinking.a */, 289 | ); 290 | name = Products; 291 | sourceTree = ""; 292 | }; 293 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = { 294 | isa = PBXGroup; 295 | children = ( 296 | 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */, 297 | 146833FF1AC3E56700842450 /* React.xcodeproj */, 298 | 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */, 299 | 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */, 300 | 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */, 301 | 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */, 302 | 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */, 303 | 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */, 304 | 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */, 305 | 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */, 306 | 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */, 307 | 519BF198F7DA4CA8ABACE9D9 /* RNSVG.xcodeproj */, 308 | ); 309 | name = Libraries; 310 | sourceTree = ""; 311 | }; 312 | 832341B11AAA6A8300B99B32 /* Products */ = { 313 | isa = PBXGroup; 314 | children = ( 315 | 832341B51AAA6A8300B99B32 /* libRCTText.a */, 316 | ); 317 | name = Products; 318 | sourceTree = ""; 319 | }; 320 | 83CBB9F61A601CBA00E9B192 = { 321 | isa = PBXGroup; 322 | children = ( 323 | 13B07FAE1A68108700A75B9A /* AwesomeProject */, 324 | 832341AE1AAA6A7D00B99B32 /* Libraries */, 325 | 00E356EF1AD99517003FC87E /* AwesomeProjectTests */, 326 | 83CBBA001A601CBA00E9B192 /* Products */, 327 | ); 328 | indentWidth = 2; 329 | sourceTree = ""; 330 | tabWidth = 2; 331 | }; 332 | 83CBBA001A601CBA00E9B192 /* Products */ = { 333 | isa = PBXGroup; 334 | children = ( 335 | 13B07F961A680F5B00A75B9A /* AwesomeProject.app */, 336 | 00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */, 337 | ); 338 | name = Products; 339 | sourceTree = ""; 340 | }; 341 | /* End PBXGroup section */ 342 | 343 | /* Begin PBXNativeTarget section */ 344 | 00E356ED1AD99517003FC87E /* AwesomeProjectTests */ = { 345 | isa = PBXNativeTarget; 346 | buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "AwesomeProjectTests" */; 347 | buildPhases = ( 348 | 00E356EA1AD99517003FC87E /* Sources */, 349 | 00E356EB1AD99517003FC87E /* Frameworks */, 350 | 00E356EC1AD99517003FC87E /* Resources */, 351 | ); 352 | buildRules = ( 353 | ); 354 | dependencies = ( 355 | 00E356F51AD99517003FC87E /* PBXTargetDependency */, 356 | ); 357 | name = AwesomeProjectTests; 358 | productName = AwesomeProjectTests; 359 | productReference = 00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */; 360 | productType = "com.apple.product-type.bundle.unit-test"; 361 | }; 362 | 13B07F861A680F5B00A75B9A /* AwesomeProject */ = { 363 | isa = PBXNativeTarget; 364 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AwesomeProject" */; 365 | buildPhases = ( 366 | 13B07F871A680F5B00A75B9A /* Sources */, 367 | 13B07F8C1A680F5B00A75B9A /* Frameworks */, 368 | 13B07F8E1A680F5B00A75B9A /* Resources */, 369 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, 370 | ); 371 | buildRules = ( 372 | ); 373 | dependencies = ( 374 | ); 375 | name = AwesomeProject; 376 | productName = "Hello World"; 377 | productReference = 13B07F961A680F5B00A75B9A /* AwesomeProject.app */; 378 | productType = "com.apple.product-type.application"; 379 | }; 380 | /* End PBXNativeTarget section */ 381 | 382 | /* Begin PBXProject section */ 383 | 83CBB9F71A601CBA00E9B192 /* Project object */ = { 384 | isa = PBXProject; 385 | attributes = { 386 | LastUpgradeCheck = 610; 387 | ORGANIZATIONNAME = Facebook; 388 | TargetAttributes = { 389 | 00E356ED1AD99517003FC87E = { 390 | CreatedOnToolsVersion = 6.2; 391 | TestTargetID = 13B07F861A680F5B00A75B9A; 392 | }; 393 | }; 394 | }; 395 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "AwesomeProject" */; 396 | compatibilityVersion = "Xcode 3.2"; 397 | developmentRegion = English; 398 | hasScannedForEncodings = 0; 399 | knownRegions = ( 400 | en, 401 | Base, 402 | ); 403 | mainGroup = 83CBB9F61A601CBA00E9B192; 404 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; 405 | projectDirPath = ""; 406 | projectReferences = ( 407 | { 408 | ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */; 409 | ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; 410 | }, 411 | { 412 | ProductGroup = 5E91572E1DD0AC6500FF2AA8 /* Products */; 413 | ProjectRef = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; 414 | }, 415 | { 416 | ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */; 417 | ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; 418 | }, 419 | { 420 | ProductGroup = 00C302BC1ABCB91800DB3ED1 /* Products */; 421 | ProjectRef = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; 422 | }, 423 | { 424 | ProductGroup = 78C398B11ACF4ADC00677621 /* Products */; 425 | ProjectRef = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; 426 | }, 427 | { 428 | ProductGroup = 00C302D41ABCB9D200DB3ED1 /* Products */; 429 | ProjectRef = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; 430 | }, 431 | { 432 | ProductGroup = 139105B71AF99BAD00B5F7CC /* Products */; 433 | ProjectRef = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; 434 | }, 435 | { 436 | ProductGroup = 832341B11AAA6A8300B99B32 /* Products */; 437 | ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; 438 | }, 439 | { 440 | ProductGroup = 00C302E01ABCB9EE00DB3ED1 /* Products */; 441 | ProjectRef = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; 442 | }, 443 | { 444 | ProductGroup = 139FDEE71B06529A00C62182 /* Products */; 445 | ProjectRef = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; 446 | }, 447 | { 448 | ProductGroup = 146834001AC3E56700842450 /* Products */; 449 | ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; 450 | }, 451 | ); 452 | projectRoot = ""; 453 | targets = ( 454 | 13B07F861A680F5B00A75B9A /* AwesomeProject */, 455 | 00E356ED1AD99517003FC87E /* AwesomeProjectTests */, 456 | ); 457 | }; 458 | /* End PBXProject section */ 459 | 460 | /* Begin PBXReferenceProxy section */ 461 | 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */ = { 462 | isa = PBXReferenceProxy; 463 | fileType = archive.ar; 464 | path = libRCTActionSheet.a; 465 | remoteRef = 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */; 466 | sourceTree = BUILT_PRODUCTS_DIR; 467 | }; 468 | 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */ = { 469 | isa = PBXReferenceProxy; 470 | fileType = archive.ar; 471 | path = libRCTGeolocation.a; 472 | remoteRef = 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */; 473 | sourceTree = BUILT_PRODUCTS_DIR; 474 | }; 475 | 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */ = { 476 | isa = PBXReferenceProxy; 477 | fileType = archive.ar; 478 | path = libRCTImage.a; 479 | remoteRef = 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */; 480 | sourceTree = BUILT_PRODUCTS_DIR; 481 | }; 482 | 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */ = { 483 | isa = PBXReferenceProxy; 484 | fileType = archive.ar; 485 | path = libRCTNetwork.a; 486 | remoteRef = 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */; 487 | sourceTree = BUILT_PRODUCTS_DIR; 488 | }; 489 | 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */ = { 490 | isa = PBXReferenceProxy; 491 | fileType = archive.ar; 492 | path = libRCTVibration.a; 493 | remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */; 494 | sourceTree = BUILT_PRODUCTS_DIR; 495 | }; 496 | 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = { 497 | isa = PBXReferenceProxy; 498 | fileType = archive.ar; 499 | path = libRCTSettings.a; 500 | remoteRef = 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */; 501 | sourceTree = BUILT_PRODUCTS_DIR; 502 | }; 503 | 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */ = { 504 | isa = PBXReferenceProxy; 505 | fileType = archive.ar; 506 | path = libRCTWebSocket.a; 507 | remoteRef = 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */; 508 | sourceTree = BUILT_PRODUCTS_DIR; 509 | }; 510 | 146834041AC3E56700842450 /* libReact.a */ = { 511 | isa = PBXReferenceProxy; 512 | fileType = archive.ar; 513 | path = libReact.a; 514 | remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */; 515 | sourceTree = BUILT_PRODUCTS_DIR; 516 | }; 517 | 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = { 518 | isa = PBXReferenceProxy; 519 | fileType = archive.ar; 520 | path = libRCTAnimation.a; 521 | remoteRef = 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */; 522 | sourceTree = BUILT_PRODUCTS_DIR; 523 | }; 524 | 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */ = { 525 | isa = PBXReferenceProxy; 526 | fileType = archive.ar; 527 | path = "libRCTAnimation-tvOS.a"; 528 | remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */; 529 | sourceTree = BUILT_PRODUCTS_DIR; 530 | }; 531 | 78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = { 532 | isa = PBXReferenceProxy; 533 | fileType = archive.ar; 534 | path = libRCTLinking.a; 535 | remoteRef = 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */; 536 | sourceTree = BUILT_PRODUCTS_DIR; 537 | }; 538 | 832341B51AAA6A8300B99B32 /* libRCTText.a */ = { 539 | isa = PBXReferenceProxy; 540 | fileType = archive.ar; 541 | path = libRCTText.a; 542 | remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */; 543 | sourceTree = BUILT_PRODUCTS_DIR; 544 | }; 545 | /* End PBXReferenceProxy section */ 546 | 547 | /* Begin PBXResourcesBuildPhase section */ 548 | 00E356EC1AD99517003FC87E /* Resources */ = { 549 | isa = PBXResourcesBuildPhase; 550 | buildActionMask = 2147483647; 551 | files = ( 552 | ); 553 | runOnlyForDeploymentPostprocessing = 0; 554 | }; 555 | 13B07F8E1A680F5B00A75B9A /* Resources */ = { 556 | isa = PBXResourcesBuildPhase; 557 | buildActionMask = 2147483647; 558 | files = ( 559 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 560 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, 561 | ); 562 | runOnlyForDeploymentPostprocessing = 0; 563 | }; 564 | /* End PBXResourcesBuildPhase section */ 565 | 566 | /* Begin PBXShellScriptBuildPhase section */ 567 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { 568 | isa = PBXShellScriptBuildPhase; 569 | buildActionMask = 2147483647; 570 | files = ( 571 | ); 572 | inputPaths = ( 573 | ); 574 | name = "Bundle React Native code and images"; 575 | outputPaths = ( 576 | ); 577 | runOnlyForDeploymentPostprocessing = 0; 578 | shellPath = /bin/sh; 579 | shellScript = "export NODE_BINARY=node\n../node_modules/react-native/packager/react-native-xcode.sh"; 580 | }; 581 | /* End PBXShellScriptBuildPhase section */ 582 | 583 | /* Begin PBXSourcesBuildPhase section */ 584 | 00E356EA1AD99517003FC87E /* Sources */ = { 585 | isa = PBXSourcesBuildPhase; 586 | buildActionMask = 2147483647; 587 | files = ( 588 | 00E356F31AD99517003FC87E /* AwesomeProjectTests.m in Sources */, 589 | ); 590 | runOnlyForDeploymentPostprocessing = 0; 591 | }; 592 | 13B07F871A680F5B00A75B9A /* Sources */ = { 593 | isa = PBXSourcesBuildPhase; 594 | buildActionMask = 2147483647; 595 | files = ( 596 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, 597 | 13B07FC11A68108700A75B9A /* main.m in Sources */, 598 | ); 599 | runOnlyForDeploymentPostprocessing = 0; 600 | }; 601 | /* End PBXSourcesBuildPhase section */ 602 | 603 | /* Begin PBXTargetDependency section */ 604 | 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { 605 | isa = PBXTargetDependency; 606 | target = 13B07F861A680F5B00A75B9A /* AwesomeProject */; 607 | targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; 608 | }; 609 | /* End PBXTargetDependency section */ 610 | 611 | /* Begin PBXVariantGroup section */ 612 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { 613 | isa = PBXVariantGroup; 614 | children = ( 615 | 13B07FB21A68108700A75B9A /* Base */, 616 | ); 617 | name = LaunchScreen.xib; 618 | path = AwesomeProject; 619 | sourceTree = ""; 620 | }; 621 | /* End PBXVariantGroup section */ 622 | 623 | /* Begin XCBuildConfiguration section */ 624 | 00E356F61AD99517003FC87E /* Debug */ = { 625 | isa = XCBuildConfiguration; 626 | buildSettings = { 627 | BUNDLE_LOADER = "$(TEST_HOST)"; 628 | GCC_PREPROCESSOR_DEFINITIONS = ( 629 | "DEBUG=1", 630 | "$(inherited)", 631 | ); 632 | INFOPLIST_FILE = AwesomeProjectTests/Info.plist; 633 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 634 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 635 | PRODUCT_NAME = "$(TARGET_NAME)"; 636 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AwesomeProject.app/AwesomeProject"; 637 | LIBRARY_SEARCH_PATHS = ( 638 | "$(inherited)", 639 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 640 | ); 641 | }; 642 | name = Debug; 643 | }; 644 | 00E356F71AD99517003FC87E /* Release */ = { 645 | isa = XCBuildConfiguration; 646 | buildSettings = { 647 | BUNDLE_LOADER = "$(TEST_HOST)"; 648 | COPY_PHASE_STRIP = NO; 649 | INFOPLIST_FILE = AwesomeProjectTests/Info.plist; 650 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 651 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 652 | PRODUCT_NAME = "$(TARGET_NAME)"; 653 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AwesomeProject.app/AwesomeProject"; 654 | LIBRARY_SEARCH_PATHS = ( 655 | "$(inherited)", 656 | "\"$(SRCROOT)/$(TARGET_NAME)\"", 657 | ); 658 | }; 659 | name = Release; 660 | }; 661 | 13B07F941A680F5B00A75B9A /* Debug */ = { 662 | isa = XCBuildConfiguration; 663 | buildSettings = { 664 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 665 | CURRENT_PROJECT_VERSION = 1; 666 | DEAD_CODE_STRIPPING = NO; 667 | INFOPLIST_FILE = AwesomeProject/Info.plist; 668 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 669 | OTHER_LDFLAGS = ( 670 | "$(inherited)", 671 | "-ObjC", 672 | "-lc++", 673 | ); 674 | PRODUCT_NAME = AwesomeProject; 675 | VERSIONING_SYSTEM = "apple-generic"; 676 | }; 677 | name = Debug; 678 | }; 679 | 13B07F951A680F5B00A75B9A /* Release */ = { 680 | isa = XCBuildConfiguration; 681 | buildSettings = { 682 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 683 | CURRENT_PROJECT_VERSION = 1; 684 | INFOPLIST_FILE = AwesomeProject/Info.plist; 685 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 686 | OTHER_LDFLAGS = ( 687 | "$(inherited)", 688 | "-ObjC", 689 | "-lc++", 690 | ); 691 | PRODUCT_NAME = AwesomeProject; 692 | VERSIONING_SYSTEM = "apple-generic"; 693 | }; 694 | name = Release; 695 | }; 696 | 83CBBA201A601CBA00E9B192 /* Debug */ = { 697 | isa = XCBuildConfiguration; 698 | buildSettings = { 699 | ALWAYS_SEARCH_USER_PATHS = NO; 700 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 701 | CLANG_CXX_LIBRARY = "libc++"; 702 | CLANG_ENABLE_MODULES = YES; 703 | CLANG_ENABLE_OBJC_ARC = YES; 704 | CLANG_WARN_BOOL_CONVERSION = YES; 705 | CLANG_WARN_CONSTANT_CONVERSION = YES; 706 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 707 | CLANG_WARN_EMPTY_BODY = YES; 708 | CLANG_WARN_ENUM_CONVERSION = YES; 709 | CLANG_WARN_INT_CONVERSION = YES; 710 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 711 | CLANG_WARN_UNREACHABLE_CODE = YES; 712 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 713 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 714 | COPY_PHASE_STRIP = NO; 715 | ENABLE_STRICT_OBJC_MSGSEND = YES; 716 | GCC_C_LANGUAGE_STANDARD = gnu99; 717 | GCC_DYNAMIC_NO_PIC = NO; 718 | GCC_OPTIMIZATION_LEVEL = 0; 719 | GCC_PREPROCESSOR_DEFINITIONS = ( 720 | "DEBUG=1", 721 | "$(inherited)", 722 | ); 723 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 724 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 725 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 726 | GCC_WARN_UNDECLARED_SELECTOR = YES; 727 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 728 | GCC_WARN_UNUSED_FUNCTION = YES; 729 | GCC_WARN_UNUSED_VARIABLE = YES; 730 | HEADER_SEARCH_PATHS = ( 731 | "$(inherited)", 732 | "$(SRCROOT)/../node_modules/react-native/React/**", 733 | "$(SRCROOT)/../node_modules/react-native/ReactCommon/**", 734 | "$(SRCROOT)/../node_modules/react-native-svg/ios/**", 735 | ); 736 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 737 | MTL_ENABLE_DEBUG_INFO = YES; 738 | ONLY_ACTIVE_ARCH = YES; 739 | SDKROOT = iphoneos; 740 | }; 741 | name = Debug; 742 | }; 743 | 83CBBA211A601CBA00E9B192 /* Release */ = { 744 | isa = XCBuildConfiguration; 745 | buildSettings = { 746 | ALWAYS_SEARCH_USER_PATHS = NO; 747 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 748 | CLANG_CXX_LIBRARY = "libc++"; 749 | CLANG_ENABLE_MODULES = YES; 750 | CLANG_ENABLE_OBJC_ARC = YES; 751 | CLANG_WARN_BOOL_CONVERSION = YES; 752 | CLANG_WARN_CONSTANT_CONVERSION = YES; 753 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 754 | CLANG_WARN_EMPTY_BODY = YES; 755 | CLANG_WARN_ENUM_CONVERSION = YES; 756 | CLANG_WARN_INT_CONVERSION = YES; 757 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 758 | CLANG_WARN_UNREACHABLE_CODE = YES; 759 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 760 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 761 | COPY_PHASE_STRIP = YES; 762 | ENABLE_NS_ASSERTIONS = NO; 763 | ENABLE_STRICT_OBJC_MSGSEND = YES; 764 | GCC_C_LANGUAGE_STANDARD = gnu99; 765 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 766 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 767 | GCC_WARN_UNDECLARED_SELECTOR = YES; 768 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 769 | GCC_WARN_UNUSED_FUNCTION = YES; 770 | GCC_WARN_UNUSED_VARIABLE = YES; 771 | HEADER_SEARCH_PATHS = ( 772 | "$(inherited)", 773 | "$(SRCROOT)/../node_modules/react-native/React/**", 774 | "$(SRCROOT)/../node_modules/react-native/ReactCommon/**", 775 | "$(SRCROOT)/../node_modules/react-native-svg/ios/**", 776 | ); 777 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 778 | MTL_ENABLE_DEBUG_INFO = NO; 779 | SDKROOT = iphoneos; 780 | VALIDATE_PRODUCT = YES; 781 | }; 782 | name = Release; 783 | }; 784 | /* End XCBuildConfiguration section */ 785 | 786 | /* Begin XCConfigurationList section */ 787 | 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "AwesomeProjectTests" */ = { 788 | isa = XCConfigurationList; 789 | buildConfigurations = ( 790 | 00E356F61AD99517003FC87E /* Debug */, 791 | 00E356F71AD99517003FC87E /* Release */, 792 | ); 793 | defaultConfigurationIsVisible = 0; 794 | defaultConfigurationName = Release; 795 | }; 796 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AwesomeProject" */ = { 797 | isa = XCConfigurationList; 798 | buildConfigurations = ( 799 | 13B07F941A680F5B00A75B9A /* Debug */, 800 | 13B07F951A680F5B00A75B9A /* Release */, 801 | ); 802 | defaultConfigurationIsVisible = 0; 803 | defaultConfigurationName = Release; 804 | }; 805 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "AwesomeProject" */ = { 806 | isa = XCConfigurationList; 807 | buildConfigurations = ( 808 | 83CBBA201A601CBA00E9B192 /* Debug */, 809 | 83CBBA211A601CBA00E9B192 /* Release */, 810 | ); 811 | defaultConfigurationIsVisible = 0; 812 | defaultConfigurationName = Release; 813 | }; 814 | /* End XCConfigurationList section */ 815 | }; 816 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; 817 | } 818 | -------------------------------------------------------------------------------- /ios/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 44 | 45 | 47 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 65 | 66 | 75 | 77 | 83 | 84 | 85 | 86 | 87 | 88 | 94 | 96 | 102 | 103 | 104 | 105 | 107 | 108 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /ios/AwesomeProject/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/AwesomeProject/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 "RCTBundleURLProvider.h" 13 | #import "RCTRootView.h" 14 | 15 | @implementation AppDelegate 16 | 17 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 18 | { 19 | NSURL *jsCodeLocation; 20 | 21 | jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]; 22 | 23 | RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation 24 | moduleName:@"AwesomeProject" 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/AwesomeProject/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/AwesomeProject/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/AwesomeProject/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/AwesomeProject/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/AwesomeProjectTests/AwesomeProjectTests.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 "RCTLog.h" 14 | #import "RCTRootView.h" 15 | 16 | #define TIMEOUT_SECONDS 600 17 | #define TEXT_TO_LOOK_FOR @"Welcome to React Native!" 18 | 19 | @interface AwesomeProjectTests : XCTestCase 20 | 21 | @end 22 | 23 | @implementation AwesomeProjectTests 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 = [[[[UIApplication sharedApplication] 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 | -------------------------------------------------------------------------------- /ios/AwesomeProjectTests/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 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "AwesomeProject", 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 | "postinstall": "node_modules/.bin/rn-nodeify --install buffer,fs,events,util,stream,process,path --hack" 9 | }, 10 | "dependencies": { 11 | "asyncstorage-down": "3.0.0", 12 | "buffer": "^3.6.0", 13 | "events": "^1.1.1", 14 | "https-browserify": "0.0.1", 15 | "opentype.js": "^0.6.6", 16 | "path-browserify": "0.0.0", 17 | "process": "^0.11.9", 18 | "react": "15.4.1", 19 | "react-dom": "15.4.1", 20 | "react-native": "0.39.2", 21 | "react-native-crypto": "^2.0.1", 22 | "react-native-level-fs": "^3.0.0", 23 | "react-native-randombytes": "^2.2.0", 24 | "react-native-svg": "^4.4.1", 25 | "readable-stream": "^1.0.33", 26 | "rn-nodeify": "^7.0.1", 27 | "stream-browserify": "^1.0.0", 28 | "svg-path-bounding-box": "^1.0.4", 29 | "util": "^0.10.3" 30 | }, 31 | "devDependencies": { 32 | "babel-jest": "18.0.0", 33 | "babel-preset-react-native": "1.9.1", 34 | "jest": "18.1.0", 35 | "react-test-renderer": "15.4.1" 36 | }, 37 | "jest": { 38 | "preset": "react-native" 39 | }, 40 | "react-native": { 41 | "crypto": "react-native-crypto", 42 | "https": "https-browserify", 43 | "fs": "react-native-level-fs", 44 | "_stream_transform": "readable-stream/transform", 45 | "_stream_readable": "readable-stream/readable", 46 | "_stream_writable": "readable-stream/writable", 47 | "_stream_duplex": "readable-stream/duplex", 48 | "_stream_passthrough": "readable-stream/passthrough", 49 | "stream": "stream-browserify", 50 | "path": "path-browserify" 51 | }, 52 | "browser": { 53 | "crypto": "react-native-crypto", 54 | "https": "https-browserify", 55 | "fs": "react-native-level-fs", 56 | "_stream_transform": "readable-stream/transform", 57 | "_stream_readable": "readable-stream/readable", 58 | "_stream_writable": "readable-stream/writable", 59 | "_stream_duplex": "readable-stream/duplex", 60 | "_stream_passthrough": "readable-stream/passthrough", 61 | "stream": "stream-browserify", 62 | "path": "path-browserify" 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /shim.js: -------------------------------------------------------------------------------- 1 | if (typeof __dirname === 'undefined') global.__dirname = '/' 2 | if (typeof __filename === 'undefined') global.__filename = '' 3 | if (typeof process === 'undefined') { 4 | global.process = require('process') 5 | } else { 6 | var bProcess = require('process') 7 | for (var p in bProcess) { 8 | if (!(p in process)) { 9 | process[p] = bProcess[p] 10 | } 11 | } 12 | } 13 | 14 | process.browser = false 15 | if (typeof Buffer === 'undefined') global.Buffer = require('buffer').Buffer 16 | 17 | // global.location = global.location || { port: 80 } 18 | var isDev = typeof __DEV__ === 'boolean' && __DEV__ 19 | process.env['NODE_ENV'] = isDev ? 'development' : 'production' 20 | if (typeof localStorage !== 'undefined') { 21 | localStorage.debug = isDev ? '*' : '' 22 | } 23 | -------------------------------------------------------------------------------- /vexflow_component.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | import { Text, View } from 'react-native' 3 | import Vex from 'vexflow' 4 | import Svg, {G, Rect, Path} from 'react-native-svg' 5 | 6 | VF = Vex.Flow 7 | 8 | function loadOpentypeFont(filename) { 9 | return new Promise((resolve, reject) => { 10 | opentype.load(filename, (error, font) => { 11 | if (error) { 12 | reject(error); 13 | return; 14 | } 15 | resolve(font); 16 | }); 17 | }); 18 | } 19 | 20 | async function loadFontPack() { 21 | return { 22 | NotoSans: { 23 | regular: await loadOpentypeFont('./fonts/NotoSans-Regular.ttf'), 24 | italic: await loadOpentypeFont('./fonts/NotoSans-Italic.ttf'), 25 | bold: await loadOpentypeFont('./fonts/NotoSans-Bold.ttf'), 26 | bolditalic: await loadOpentypeFont('./fonts/NotoSans-BoldItalic.ttf') 27 | }, 28 | NotoSerif: { 29 | regular: await loadOpentypeFont('./fonts/NotoSerif-Regular.ttf'), 30 | italic: await loadOpentypeFont('./fonts/NotoSerif-Italic.ttf'), 31 | bold: await loadOpentypeFont('./fonts/NotoSerif-Bold.ttf'), 32 | bolditalic: await loadOpentypeFont('./fonts/NotoSerif-BoldItalic.ttf') 33 | }, 34 | getFont: function(style) { 35 | /* 36 | times, Times, Times New Roman, serif, Serif => Noto Serif 37 | Arial, sans-serif... default => Noto Sans 38 | */ 39 | var fontName = /(times|serif)+/i.test(style['font-family']) ? 40 | 'NotoSerif' : 'NotoSans'; 41 | 42 | var fontStyle = ''; 43 | if (style['font-weight'] === 'bold') fontStyle = 'bold'; 44 | if (style['font-style'] === 'italic') fontStyle += 'italic'; 45 | if (fontStyle.length === 0) fontStyle = 'regular'; 46 | 47 | return this[fontName][fontStyle]; 48 | } 49 | }; 50 | } 51 | 52 | var getBoundingBox = require('svg-path-bounding-box'); 53 | var opentype = require('opentype.js'); 54 | var fontPack = loadFontPack(); 55 | 56 | var options = { 57 | React: React, 58 | Components: {'g': G, 'svg': Svg, 'rect': Rect, 'path': Path, 'text': Text}, 59 | getBoundingBox: getBoundingBox, 60 | fontPack: fontPack 61 | }; 62 | 63 | export default class VexFlow extends Component { 64 | 65 | constructor(props) { 66 | super(props); 67 | 68 | this._renderer = null; 69 | this._context = null; 70 | } 71 | 72 | componentDidMount() { this.handleProps() } 73 | componentDidUpdate() { this.handleProps() } 74 | 75 | handleProps() { 76 | 77 | console.log("HANDLING PROPS"); 78 | this.clear(); 79 | 80 | const { 81 | width = 500, 82 | height = 500, 83 | font = [ 'Arial', 10, '' ], 84 | fontColor = '#eed', 85 | stave, 86 | notes, 87 | voice, 88 | } = this.props; 89 | 90 | this._context = VF.Renderer.getTextSVGContext(options, width, height); 91 | 92 | this._context 93 | .setFont(...font) 94 | .setBackgroundFillStyle(fontColor); 95 | 96 | stave.setContext(this._context).draw(); 97 | 98 | var formatter = new VF.Formatter().joinVoices([voice]).format([voice], 50, {stave: stave}); 99 | voice.draw(this._context, stave); 100 | } 101 | 102 | clear() { 103 | } 104 | 105 | render() { 106 | this.handleProps(); 107 | var svg = this._context.toSVG(); 108 | console.log("Made SVG"); 109 | return ( 110 | 111 | 112 | The Vexflow view is supposed to be here 113 | 114 | { this._context.toSVG() } 115 | 116 | ); 117 | } 118 | } 119 | --------------------------------------------------------------------------------