├── example ├── package.json ├── ios │ ├── example │ │ ├── AppDelegate.h │ │ ├── main.m │ │ ├── Images.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── AppDelegate.m │ │ └── Base.lproj │ │ │ └── LaunchScreen.xib │ ├── exampleTests │ │ ├── Info.plist │ │ └── exampleTests.m │ └── example.xcodeproj │ │ ├── xcshareddata │ │ └── xcschemes │ │ │ └── example.xcscheme │ │ └── project.pbxproj └── index.js ├── .gitignore ├── package.json ├── README.md ├── LICENSE └── src └── index.js /example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "start": "../node_modules/react-native/packager/packager.sh start --project-roots ../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /.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/IJ 26 | # 27 | .idea 28 | .gradle 29 | local.properties 30 | 31 | # node.js 32 | # 33 | node_modules/ 34 | npm-debug.log 35 | -------------------------------------------------------------------------------- /example/ios/example/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 | -------------------------------------------------------------------------------- /example/ios/example/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 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-native-touchable-bounce", 3 | "version": "1.0.3", 4 | "description": "React Native Touchable Bounce", 5 | "main": "src/index.js", 6 | "license": "BSD-3-Clause", 7 | "repository": { 8 | "type": "git", 9 | "url": "git@github.com:grabbou/react-native-touchable-bounce.git" 10 | }, 11 | "engines": { 12 | "node": ">=4" 13 | }, 14 | "keywords": [ 15 | "react", 16 | "react", 17 | "native", 18 | "touchable" 19 | ], 20 | "devDependencies": { 21 | "babel-eslint": "^5.0.0", 22 | "eslint": "^2.2.0", 23 | "eslint-plugin-react": "^4.1.0", 24 | "react-native": "^0.21" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /example/ios/example/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 | } -------------------------------------------------------------------------------- /example/ios/exampleTests/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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # react-native-touchable-bounce 2 | 3 | React Native Touchable Bounce component. 4 | 5 | 6 | 7 | ## Installation 8 | 9 | ```bash 10 | $ npm install react-native-touchable-bounce --save 11 | ``` 12 | 13 | ## Usage 14 | 15 | Simply `require('react-native-touchable-bounce')` and use just like any other `Touchable*` component. 16 | 17 | ```js 18 | var React = require('react-native'); 19 | var { Text, View } = React; 20 | var TouchableBounce = require('react-native-touchable-bounce'); 21 | 22 | var Example = React.createClass({ 23 | render() { 24 | return ( 25 | 26 | console.log('pressed')}> 27 | Click me 28 | 29 | 30 | ); 31 | } 32 | }); 33 | ``` 34 | 35 | ## Running example 36 | 37 | Start the packager by doing: 38 | 39 | ```bash 40 | $ cd ./example && npm start 41 | ``` 42 | 43 | This step is required to run packager so that it will look into src folder for our TouchableBounce component 44 | -------------------------------------------------------------------------------- /example/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var React = require('react-native'); 4 | var { AppRegistry, StyleSheet, Text, View } = React; 5 | var TouchableBounce = require('react-native-touchable-bounce'); 6 | 7 | var Example = React.createClass({ 8 | getInitialState() { 9 | return { 10 | pressCount: 0, 11 | }; 12 | }, 13 | 14 | onPress() { 15 | this.setState({ 16 | pressCount: this.state.pressCount + 1 17 | }); 18 | }, 19 | 20 | render() { 21 | return ( 22 | 23 | 24 | TouchableBounce 25 | 26 | 27 | Press count: {this.state.pressCount} 28 | 29 | 30 | Click me 31 | 32 | 33 | ); 34 | } 35 | }); 36 | 37 | var styles = StyleSheet.create({ 38 | container: { 39 | flex: 1, 40 | justifyContent: 'center', 41 | alignItems: 'center', 42 | backgroundColor: '#F5FCFF', 43 | }, 44 | welcome: { 45 | fontSize: 20, 46 | textAlign: 'center', 47 | margin: 10, 48 | }, 49 | instructions: { 50 | textAlign: 'center', 51 | color: '#333333', 52 | marginBottom: 15, 53 | }, 54 | button: { 55 | backgroundColor: '#cdcdcd', 56 | padding: 20, 57 | } 58 | }); 59 | 60 | AppRegistry.registerComponent('example', () => Example); 61 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD License 2 | 3 | For React Native software 4 | 5 | Copyright (c) 2015-present, Facebook, Inc. All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without modification, 8 | are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name Facebook nor the names of its contributors may be used to 18 | endorse or promote products derived from this software without specific 19 | prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 22 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 23 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 25 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 28 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /example/ios/example/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 | NSAllowsArbitraryLoads 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /example/ios/example/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 "RCTRootView.h" 13 | 14 | @implementation AppDelegate 15 | 16 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 17 | { 18 | NSURL *jsCodeLocation; 19 | 20 | /** 21 | * Loading JavaScript code - uncomment the one you want. 22 | * 23 | * OPTION 1 24 | * Load from development server. Start the server from the repository root: 25 | * 26 | * $ npm start 27 | * 28 | * To run on device, change `localhost` to the IP address of your computer 29 | * (you can get this by typing `ifconfig` into the terminal and selecting the 30 | * `inet` value under `en0:`) and make sure your computer and iOS device are 31 | * on the same Wi-Fi network. 32 | */ 33 | 34 | jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/example/index.bundle?platform=ios&dev=true"]; 35 | 36 | /** 37 | * OPTION 2 38 | * Load from pre-bundled file on disk. The static bundle is automatically 39 | * generated by "Bundle React Native code and images" build step. 40 | */ 41 | 42 | // jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; 43 | 44 | RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation 45 | moduleName:@"example" 46 | initialProperties:nil 47 | launchOptions:launchOptions]; 48 | 49 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 50 | UIViewController *rootViewController = [UIViewController new]; 51 | rootViewController.view = rootView; 52 | self.window.rootViewController = rootViewController; 53 | [self.window makeKeyAndVisible]; 54 | return YES; 55 | } 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /example/ios/exampleTests/exampleTests.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 240 17 | #define TEXT_TO_LOOK_FOR @"Welcome to React Native!" 18 | 19 | @interface exampleTests : XCTestCase 20 | 21 | @end 22 | 23 | @implementation exampleTests 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 | -------------------------------------------------------------------------------- /example/ios/example/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 | -------------------------------------------------------------------------------- /example/ios/example.xcodeproj/xcshareddata/xcschemes/example.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 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 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 | 'use strict'; 10 | 11 | var React = require('react'); 12 | var ReactNative = require('react-native'); 13 | var { Animated, Touchable } = ReactNative; 14 | 15 | var EdgeInsetsPropType = React.PropTypes.shape({ 16 | top: React.PropTypes.number, 17 | left: React.PropTypes.number, 18 | bottom: React.PropTypes.number, 19 | right: React.PropTypes.number 20 | }); 21 | 22 | type Event = Object; 23 | 24 | type State = { 25 | animationID: ?number; 26 | scale: Animated.Value; 27 | }; 28 | 29 | var PRESS_RETENTION_OFFSET = {top: 20, left: 20, right: 20, bottom: 30}; 30 | 31 | /* 32 | * Example of using the `TouchableMixin` to play well with other responder 33 | * locking views including `ScrollView`. `TouchableMixin` provides touchable 34 | * hooks (`this.touchableHandle*`) that we forward events to. In turn, 35 | * `TouchableMixin` expects us to implement some abstract methods to handle 36 | * interesting interactions such as `handleTouchablePress`. 37 | */ 38 | var TouchableBounce = React.createClass({ 39 | mixins: [Touchable.Mixin], 40 | 41 | propTypes: { 42 | onPress: React.PropTypes.func, 43 | onPressIn: React.PropTypes.func, 44 | onPressOut: React.PropTypes.func, 45 | // The function passed takes a callback to start the animation which should 46 | // be run after this onPress handler is done. You can use this (for example) 47 | // to update UI before starting the animation. 48 | onPressWithCompletion: React.PropTypes.func, 49 | // the function passed is called after the animation is complete 50 | onPressAnimationComplete: React.PropTypes.func, 51 | /** 52 | * When the scroll view is disabled, this defines how far your touch may 53 | * move off of the button, before deactivating the button. Once deactivated, 54 | * try moving it back and you'll see that the button is once again 55 | * reactivated! Move it back and forth several times while the scroll view 56 | * is disabled. Ensure you pass in a constant to reduce memory allocations. 57 | */ 58 | pressRetentionOffset: EdgeInsetsPropType, 59 | /** 60 | * This defines how far your touch can start away from the button. This is 61 | * added to `pressRetentionOffset` when moving off of the button. 62 | * ** NOTE ** 63 | * The touch area never extends past the parent view bounds and the Z-index 64 | * of sibling views always takes precedence if a touch hits two overlapping 65 | * views. 66 | */ 67 | hitSlop: EdgeInsetsPropType, 68 | }, 69 | 70 | getInitialState: function(): State { 71 | return { 72 | ...this.touchableGetInitialState(), 73 | scale: new Animated.Value(1), 74 | }; 75 | }, 76 | 77 | bounceTo: function( 78 | value: number, 79 | velocity: number, 80 | bounciness: number, 81 | callback?: ?Function 82 | ) { 83 | Animated.spring(this.state.scale, { 84 | toValue: value, 85 | velocity, 86 | bounciness, 87 | }).start(callback); 88 | }, 89 | 90 | /** 91 | * `Touchable.Mixin` self callbacks. The mixin will invoke these if they are 92 | * defined on your component. 93 | */ 94 | touchableHandleActivePressIn: function(e: Event) { 95 | this.bounceTo(0.93, 0.1, 0); 96 | this.props.onPressIn && this.props.onPressIn(e); 97 | }, 98 | 99 | touchableHandleActivePressOut: function(e: Event) { 100 | this.bounceTo(1, 0.4, 0); 101 | this.props.onPressOut && this.props.onPressOut(e); 102 | }, 103 | 104 | touchableHandlePress: function(e: Event) { 105 | var onPressWithCompletion = this.props.onPressWithCompletion; 106 | if (onPressWithCompletion) { 107 | onPressWithCompletion(() => { 108 | this.state.scale.setValue(0.93); 109 | this.bounceTo(1, 10, 10, this.props.onPressAnimationComplete); 110 | }); 111 | return; 112 | } 113 | 114 | this.bounceTo(1, 10, 10, this.props.onPressAnimationComplete); 115 | this.props.onPress && this.props.onPress(e); 116 | }, 117 | 118 | touchableGetPressRectOffset: function(): typeof PRESS_RETENTION_OFFSET { 119 | return this.props.pressRetentionOffset || PRESS_RETENTION_OFFSET; 120 | }, 121 | 122 | touchableGetHitSlop: function(): ?Object { 123 | return this.props.hitSlop; 124 | }, 125 | 126 | touchableGetHighlightDelayMS: function(): number { 127 | return 0; 128 | }, 129 | 130 | render: function(): ReactElement { 131 | return ( 132 | 146 | {this.props.children} 147 | 148 | ); 149 | } 150 | }); 151 | 152 | module.exports = TouchableBounce; 153 | -------------------------------------------------------------------------------- /example/ios/example.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; 11 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; 12 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 14 | AD02237F1C8D939F0009AD5A /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AD0223781C8D93790009AD5A /* libRCTText.a */; }; 15 | AD0223801C8D939F0009AD5A /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AD02237E1C8D93980009AD5A /* libRCTWebSocket.a */; }; 16 | AD0223811C8D939F0009AD5A /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AD0223731C8D93600009AD5A /* libReact.a */; }; 17 | AD0223881C8D98280009AD5A /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AD0223871C8D981C0009AD5A /* libRCTNetwork.a */; }; 18 | AD0223951C8D98E70009AD5A /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AD02238E1C8D98B90009AD5A /* libRCTImage.a */; }; 19 | AD0223961C8D98E70009AD5A /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AD0223941C8D98CD0009AD5A /* libRCTSettings.a */; }; 20 | /* End PBXBuildFile section */ 21 | 22 | /* Begin PBXContainerItemProxy section */ 23 | AD0223721C8D93600009AD5A /* PBXContainerItemProxy */ = { 24 | isa = PBXContainerItemProxy; 25 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 26 | proxyType = 2; 27 | remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; 28 | remoteInfo = React; 29 | }; 30 | AD0223771C8D93790009AD5A /* PBXContainerItemProxy */ = { 31 | isa = PBXContainerItemProxy; 32 | containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; 33 | proxyType = 2; 34 | remoteGlobalIDString = 58B5119B1A9E6C1200147676; 35 | remoteInfo = RCTText; 36 | }; 37 | AD02237D1C8D93980009AD5A /* PBXContainerItemProxy */ = { 38 | isa = PBXContainerItemProxy; 39 | containerPortal = AD0223791C8D93980009AD5A /* RCTWebSocket.xcodeproj */; 40 | proxyType = 2; 41 | remoteGlobalIDString = 3C86DF461ADF2C930047B81A; 42 | remoteInfo = RCTWebSocket; 43 | }; 44 | AD0223861C8D981C0009AD5A /* PBXContainerItemProxy */ = { 45 | isa = PBXContainerItemProxy; 46 | containerPortal = AD0223821C8D981C0009AD5A /* RCTNetwork.xcodeproj */; 47 | proxyType = 2; 48 | remoteGlobalIDString = 58B511DB1A9E6C8500147676; 49 | remoteInfo = RCTNetwork; 50 | }; 51 | AD02238D1C8D98B90009AD5A /* PBXContainerItemProxy */ = { 52 | isa = PBXContainerItemProxy; 53 | containerPortal = AD0223891C8D98B90009AD5A /* RCTImage.xcodeproj */; 54 | proxyType = 2; 55 | remoteGlobalIDString = 58B5115D1A9E6B3D00147676; 56 | remoteInfo = RCTImage; 57 | }; 58 | AD0223931C8D98CD0009AD5A /* PBXContainerItemProxy */ = { 59 | isa = PBXContainerItemProxy; 60 | containerPortal = AD02238F1C8D98CC0009AD5A /* RCTSettings.xcodeproj */; 61 | proxyType = 2; 62 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 63 | remoteInfo = RCTSettings; 64 | }; 65 | /* End PBXContainerItemProxy section */ 66 | 67 | /* Begin PBXFileReference section */ 68 | 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; 69 | 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 70 | 00E356F21AD99517003FC87E /* exampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exampleTests.m; sourceTree = ""; }; 71 | 13B07F961A680F5B00A75B9A /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 72 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = example/AppDelegate.h; sourceTree = ""; }; 73 | 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = example/AppDelegate.m; sourceTree = ""; }; 74 | 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 75 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = example/Images.xcassets; sourceTree = ""; }; 76 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = example/Info.plist; sourceTree = ""; }; 77 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = example/main.m; sourceTree = ""; }; 78 | 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; 79 | 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; 80 | AD0223791C8D93980009AD5A /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; }; 81 | AD0223821C8D981C0009AD5A /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = ""; }; 82 | AD0223891C8D98B90009AD5A /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = ""; }; 83 | AD02238F1C8D98CC0009AD5A /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; 84 | /* End PBXFileReference section */ 85 | 86 | /* Begin PBXFrameworksBuildPhase section */ 87 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { 88 | isa = PBXFrameworksBuildPhase; 89 | buildActionMask = 2147483647; 90 | files = ( 91 | AD0223951C8D98E70009AD5A /* libRCTImage.a in Frameworks */, 92 | AD0223961C8D98E70009AD5A /* libRCTSettings.a in Frameworks */, 93 | AD0223881C8D98280009AD5A /* libRCTNetwork.a in Frameworks */, 94 | AD02237F1C8D939F0009AD5A /* libRCTText.a in Frameworks */, 95 | AD0223801C8D939F0009AD5A /* libRCTWebSocket.a in Frameworks */, 96 | AD0223811C8D939F0009AD5A /* libReact.a in Frameworks */, 97 | ); 98 | runOnlyForDeploymentPostprocessing = 0; 99 | }; 100 | /* End PBXFrameworksBuildPhase section */ 101 | 102 | /* Begin PBXGroup section */ 103 | 00E356EF1AD99517003FC87E /* exampleTests */ = { 104 | isa = PBXGroup; 105 | children = ( 106 | 00E356F21AD99517003FC87E /* exampleTests.m */, 107 | 00E356F01AD99517003FC87E /* Supporting Files */, 108 | ); 109 | path = exampleTests; 110 | sourceTree = ""; 111 | }; 112 | 00E356F01AD99517003FC87E /* Supporting Files */ = { 113 | isa = PBXGroup; 114 | children = ( 115 | 00E356F11AD99517003FC87E /* Info.plist */, 116 | ); 117 | name = "Supporting Files"; 118 | sourceTree = ""; 119 | }; 120 | 13B07FAE1A68108700A75B9A /* example */ = { 121 | isa = PBXGroup; 122 | children = ( 123 | 008F07F21AC5B25A0029DE68 /* main.jsbundle */, 124 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 125 | 13B07FB01A68108700A75B9A /* AppDelegate.m */, 126 | 13B07FB51A68108700A75B9A /* Images.xcassets */, 127 | 13B07FB61A68108700A75B9A /* Info.plist */, 128 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, 129 | 13B07FB71A68108700A75B9A /* main.m */, 130 | ); 131 | name = example; 132 | sourceTree = ""; 133 | }; 134 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = { 135 | isa = PBXGroup; 136 | children = ( 137 | AD02238F1C8D98CC0009AD5A /* RCTSettings.xcodeproj */, 138 | AD0223891C8D98B90009AD5A /* RCTImage.xcodeproj */, 139 | AD0223821C8D981C0009AD5A /* RCTNetwork.xcodeproj */, 140 | AD0223791C8D93980009AD5A /* RCTWebSocket.xcodeproj */, 141 | 146833FF1AC3E56700842450 /* React.xcodeproj */, 142 | 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */, 143 | ); 144 | name = Libraries; 145 | sourceTree = ""; 146 | }; 147 | 83CBB9F61A601CBA00E9B192 = { 148 | isa = PBXGroup; 149 | children = ( 150 | 13B07FAE1A68108700A75B9A /* example */, 151 | 832341AE1AAA6A7D00B99B32 /* Libraries */, 152 | 00E356EF1AD99517003FC87E /* exampleTests */, 153 | 83CBBA001A601CBA00E9B192 /* Products */, 154 | ); 155 | indentWidth = 2; 156 | sourceTree = ""; 157 | tabWidth = 2; 158 | }; 159 | 83CBBA001A601CBA00E9B192 /* Products */ = { 160 | isa = PBXGroup; 161 | children = ( 162 | 13B07F961A680F5B00A75B9A /* example.app */, 163 | ); 164 | name = Products; 165 | sourceTree = ""; 166 | }; 167 | AD02236F1C8D93600009AD5A /* Products */ = { 168 | isa = PBXGroup; 169 | children = ( 170 | AD0223731C8D93600009AD5A /* libReact.a */, 171 | ); 172 | name = Products; 173 | sourceTree = ""; 174 | }; 175 | AD0223741C8D93790009AD5A /* Products */ = { 176 | isa = PBXGroup; 177 | children = ( 178 | AD0223781C8D93790009AD5A /* libRCTText.a */, 179 | ); 180 | name = Products; 181 | sourceTree = ""; 182 | }; 183 | AD02237A1C8D93980009AD5A /* Products */ = { 184 | isa = PBXGroup; 185 | children = ( 186 | AD02237E1C8D93980009AD5A /* libRCTWebSocket.a */, 187 | ); 188 | name = Products; 189 | sourceTree = ""; 190 | }; 191 | AD0223831C8D981C0009AD5A /* Products */ = { 192 | isa = PBXGroup; 193 | children = ( 194 | AD0223871C8D981C0009AD5A /* libRCTNetwork.a */, 195 | ); 196 | name = Products; 197 | sourceTree = ""; 198 | }; 199 | AD02238A1C8D98B90009AD5A /* Products */ = { 200 | isa = PBXGroup; 201 | children = ( 202 | AD02238E1C8D98B90009AD5A /* libRCTImage.a */, 203 | ); 204 | name = Products; 205 | sourceTree = ""; 206 | }; 207 | AD0223901C8D98CC0009AD5A /* Products */ = { 208 | isa = PBXGroup; 209 | children = ( 210 | AD0223941C8D98CD0009AD5A /* libRCTSettings.a */, 211 | ); 212 | name = Products; 213 | sourceTree = ""; 214 | }; 215 | /* End PBXGroup section */ 216 | 217 | /* Begin PBXNativeTarget section */ 218 | 13B07F861A680F5B00A75B9A /* example */ = { 219 | isa = PBXNativeTarget; 220 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "example" */; 221 | buildPhases = ( 222 | 13B07F871A680F5B00A75B9A /* Sources */, 223 | 13B07F8C1A680F5B00A75B9A /* Frameworks */, 224 | 13B07F8E1A680F5B00A75B9A /* Resources */, 225 | ); 226 | buildRules = ( 227 | ); 228 | dependencies = ( 229 | ); 230 | name = example; 231 | productName = "Hello World"; 232 | productReference = 13B07F961A680F5B00A75B9A /* example.app */; 233 | productType = "com.apple.product-type.application"; 234 | }; 235 | /* End PBXNativeTarget section */ 236 | 237 | /* Begin PBXProject section */ 238 | 83CBB9F71A601CBA00E9B192 /* Project object */ = { 239 | isa = PBXProject; 240 | attributes = { 241 | LastUpgradeCheck = 0610; 242 | ORGANIZATIONNAME = Facebook; 243 | }; 244 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "example" */; 245 | compatibilityVersion = "Xcode 3.2"; 246 | developmentRegion = English; 247 | hasScannedForEncodings = 0; 248 | knownRegions = ( 249 | en, 250 | Base, 251 | ); 252 | mainGroup = 83CBB9F61A601CBA00E9B192; 253 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; 254 | projectDirPath = ""; 255 | projectReferences = ( 256 | { 257 | ProductGroup = AD02238A1C8D98B90009AD5A /* Products */; 258 | ProjectRef = AD0223891C8D98B90009AD5A /* RCTImage.xcodeproj */; 259 | }, 260 | { 261 | ProductGroup = AD0223831C8D981C0009AD5A /* Products */; 262 | ProjectRef = AD0223821C8D981C0009AD5A /* RCTNetwork.xcodeproj */; 263 | }, 264 | { 265 | ProductGroup = AD0223901C8D98CC0009AD5A /* Products */; 266 | ProjectRef = AD02238F1C8D98CC0009AD5A /* RCTSettings.xcodeproj */; 267 | }, 268 | { 269 | ProductGroup = AD0223741C8D93790009AD5A /* Products */; 270 | ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; 271 | }, 272 | { 273 | ProductGroup = AD02237A1C8D93980009AD5A /* Products */; 274 | ProjectRef = AD0223791C8D93980009AD5A /* RCTWebSocket.xcodeproj */; 275 | }, 276 | { 277 | ProductGroup = AD02236F1C8D93600009AD5A /* Products */; 278 | ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; 279 | }, 280 | ); 281 | projectRoot = ""; 282 | targets = ( 283 | 13B07F861A680F5B00A75B9A /* example */, 284 | ); 285 | }; 286 | /* End PBXProject section */ 287 | 288 | /* Begin PBXReferenceProxy section */ 289 | AD0223731C8D93600009AD5A /* libReact.a */ = { 290 | isa = PBXReferenceProxy; 291 | fileType = archive.ar; 292 | path = libReact.a; 293 | remoteRef = AD0223721C8D93600009AD5A /* PBXContainerItemProxy */; 294 | sourceTree = BUILT_PRODUCTS_DIR; 295 | }; 296 | AD0223781C8D93790009AD5A /* libRCTText.a */ = { 297 | isa = PBXReferenceProxy; 298 | fileType = archive.ar; 299 | path = libRCTText.a; 300 | remoteRef = AD0223771C8D93790009AD5A /* PBXContainerItemProxy */; 301 | sourceTree = BUILT_PRODUCTS_DIR; 302 | }; 303 | AD02237E1C8D93980009AD5A /* libRCTWebSocket.a */ = { 304 | isa = PBXReferenceProxy; 305 | fileType = archive.ar; 306 | path = libRCTWebSocket.a; 307 | remoteRef = AD02237D1C8D93980009AD5A /* PBXContainerItemProxy */; 308 | sourceTree = BUILT_PRODUCTS_DIR; 309 | }; 310 | AD0223871C8D981C0009AD5A /* libRCTNetwork.a */ = { 311 | isa = PBXReferenceProxy; 312 | fileType = archive.ar; 313 | path = libRCTNetwork.a; 314 | remoteRef = AD0223861C8D981C0009AD5A /* PBXContainerItemProxy */; 315 | sourceTree = BUILT_PRODUCTS_DIR; 316 | }; 317 | AD02238E1C8D98B90009AD5A /* libRCTImage.a */ = { 318 | isa = PBXReferenceProxy; 319 | fileType = archive.ar; 320 | path = libRCTImage.a; 321 | remoteRef = AD02238D1C8D98B90009AD5A /* PBXContainerItemProxy */; 322 | sourceTree = BUILT_PRODUCTS_DIR; 323 | }; 324 | AD0223941C8D98CD0009AD5A /* libRCTSettings.a */ = { 325 | isa = PBXReferenceProxy; 326 | fileType = archive.ar; 327 | path = libRCTSettings.a; 328 | remoteRef = AD0223931C8D98CD0009AD5A /* PBXContainerItemProxy */; 329 | sourceTree = BUILT_PRODUCTS_DIR; 330 | }; 331 | /* End PBXReferenceProxy section */ 332 | 333 | /* Begin PBXResourcesBuildPhase section */ 334 | 13B07F8E1A680F5B00A75B9A /* Resources */ = { 335 | isa = PBXResourcesBuildPhase; 336 | buildActionMask = 2147483647; 337 | files = ( 338 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 339 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, 340 | ); 341 | runOnlyForDeploymentPostprocessing = 0; 342 | }; 343 | /* End PBXResourcesBuildPhase section */ 344 | 345 | /* Begin PBXSourcesBuildPhase section */ 346 | 13B07F871A680F5B00A75B9A /* Sources */ = { 347 | isa = PBXSourcesBuildPhase; 348 | buildActionMask = 2147483647; 349 | files = ( 350 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, 351 | 13B07FC11A68108700A75B9A /* main.m in Sources */, 352 | ); 353 | runOnlyForDeploymentPostprocessing = 0; 354 | }; 355 | /* End PBXSourcesBuildPhase section */ 356 | 357 | /* Begin PBXVariantGroup section */ 358 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { 359 | isa = PBXVariantGroup; 360 | children = ( 361 | 13B07FB21A68108700A75B9A /* Base */, 362 | ); 363 | name = LaunchScreen.xib; 364 | path = example; 365 | sourceTree = ""; 366 | }; 367 | /* End PBXVariantGroup section */ 368 | 369 | /* Begin XCBuildConfiguration section */ 370 | 13B07F941A680F5B00A75B9A /* Debug */ = { 371 | isa = XCBuildConfiguration; 372 | buildSettings = { 373 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 374 | DEAD_CODE_STRIPPING = NO; 375 | HEADER_SEARCH_PATHS = ( 376 | "$(inherited)", 377 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, 378 | "$(SRCROOT)/../../node_modules/react-native/React/**", 379 | ); 380 | INFOPLIST_FILE = example/Info.plist; 381 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 382 | OTHER_LDFLAGS = "-ObjC"; 383 | PRODUCT_NAME = example; 384 | }; 385 | name = Debug; 386 | }; 387 | 13B07F951A680F5B00A75B9A /* Release */ = { 388 | isa = XCBuildConfiguration; 389 | buildSettings = { 390 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 391 | HEADER_SEARCH_PATHS = ( 392 | "$(inherited)", 393 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, 394 | "$(SRCROOT)/../../node_modules/react-native/React/**", 395 | ); 396 | INFOPLIST_FILE = example/Info.plist; 397 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 398 | OTHER_LDFLAGS = "-ObjC"; 399 | PRODUCT_NAME = example; 400 | }; 401 | name = Release; 402 | }; 403 | 83CBBA201A601CBA00E9B192 /* Debug */ = { 404 | isa = XCBuildConfiguration; 405 | buildSettings = { 406 | ALWAYS_SEARCH_USER_PATHS = NO; 407 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 408 | CLANG_CXX_LIBRARY = "libc++"; 409 | CLANG_ENABLE_MODULES = YES; 410 | CLANG_ENABLE_OBJC_ARC = YES; 411 | CLANG_WARN_BOOL_CONVERSION = YES; 412 | CLANG_WARN_CONSTANT_CONVERSION = YES; 413 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 414 | CLANG_WARN_EMPTY_BODY = YES; 415 | CLANG_WARN_ENUM_CONVERSION = YES; 416 | CLANG_WARN_INT_CONVERSION = YES; 417 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 418 | CLANG_WARN_UNREACHABLE_CODE = YES; 419 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 420 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 421 | COPY_PHASE_STRIP = NO; 422 | ENABLE_STRICT_OBJC_MSGSEND = YES; 423 | GCC_C_LANGUAGE_STANDARD = gnu99; 424 | GCC_DYNAMIC_NO_PIC = NO; 425 | GCC_OPTIMIZATION_LEVEL = 0; 426 | GCC_PREPROCESSOR_DEFINITIONS = ( 427 | "DEBUG=1", 428 | "$(inherited)", 429 | ); 430 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 431 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 432 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 433 | GCC_WARN_UNDECLARED_SELECTOR = YES; 434 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 435 | GCC_WARN_UNUSED_FUNCTION = YES; 436 | GCC_WARN_UNUSED_VARIABLE = YES; 437 | HEADER_SEARCH_PATHS = ( 438 | "$(inherited)", 439 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, 440 | "$(SRCROOT)/../node_modules/react-native/React/**", 441 | ); 442 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 443 | MTL_ENABLE_DEBUG_INFO = YES; 444 | ONLY_ACTIVE_ARCH = YES; 445 | SDKROOT = iphoneos; 446 | }; 447 | name = Debug; 448 | }; 449 | 83CBBA211A601CBA00E9B192 /* Release */ = { 450 | isa = XCBuildConfiguration; 451 | buildSettings = { 452 | ALWAYS_SEARCH_USER_PATHS = NO; 453 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 454 | CLANG_CXX_LIBRARY = "libc++"; 455 | CLANG_ENABLE_MODULES = YES; 456 | CLANG_ENABLE_OBJC_ARC = YES; 457 | CLANG_WARN_BOOL_CONVERSION = YES; 458 | CLANG_WARN_CONSTANT_CONVERSION = YES; 459 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 460 | CLANG_WARN_EMPTY_BODY = YES; 461 | CLANG_WARN_ENUM_CONVERSION = YES; 462 | CLANG_WARN_INT_CONVERSION = YES; 463 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 464 | CLANG_WARN_UNREACHABLE_CODE = YES; 465 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 466 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 467 | COPY_PHASE_STRIP = YES; 468 | ENABLE_NS_ASSERTIONS = NO; 469 | ENABLE_STRICT_OBJC_MSGSEND = YES; 470 | GCC_C_LANGUAGE_STANDARD = gnu99; 471 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 472 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 473 | GCC_WARN_UNDECLARED_SELECTOR = YES; 474 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 475 | GCC_WARN_UNUSED_FUNCTION = YES; 476 | GCC_WARN_UNUSED_VARIABLE = YES; 477 | HEADER_SEARCH_PATHS = ( 478 | "$(inherited)", 479 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, 480 | "$(SRCROOT)/../node_modules/react-native/React/**", 481 | ); 482 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 483 | MTL_ENABLE_DEBUG_INFO = NO; 484 | SDKROOT = iphoneos; 485 | VALIDATE_PRODUCT = YES; 486 | }; 487 | name = Release; 488 | }; 489 | /* End XCBuildConfiguration section */ 490 | 491 | /* Begin XCConfigurationList section */ 492 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "example" */ = { 493 | isa = XCConfigurationList; 494 | buildConfigurations = ( 495 | 13B07F941A680F5B00A75B9A /* Debug */, 496 | 13B07F951A680F5B00A75B9A /* Release */, 497 | ); 498 | defaultConfigurationIsVisible = 0; 499 | defaultConfigurationName = Release; 500 | }; 501 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "example" */ = { 502 | isa = XCConfigurationList; 503 | buildConfigurations = ( 504 | 83CBBA201A601CBA00E9B192 /* Debug */, 505 | 83CBBA211A601CBA00E9B192 /* Release */, 506 | ); 507 | defaultConfigurationIsVisible = 0; 508 | defaultConfigurationName = Release; 509 | }; 510 | /* End XCConfigurationList section */ 511 | }; 512 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; 513 | } 514 | --------------------------------------------------------------------------------