├── .gitignore ├── ReactNativeFlexboxPlayground.xcodeproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── ReactNativeFlexboxPlayground.xccheckout ├── xcuserdata │ └── glen.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── xcshareddata │ └── xcschemes │ │ └── ReactNativeFlexboxPlayground.xcscheme └── project.pbxproj ├── package.json ├── iOS ├── AppDelegate.h ├── main.m ├── Images.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json ├── Info.plist ├── AppDelegate.m └── Base.lproj │ └── LaunchScreen.xib ├── .eslintrc ├── ReadMe.md └── index.ios.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | ReactNativeFlexboxPlayground.xcodeproj/project.xcworkspace/xcuserdata/ 3 | -------------------------------------------------------------------------------- /ReactNativeFlexboxPlayground.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReactNativeFlexboxPlayground", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "start": "node_modules/react-native/packager/packager.sh" 7 | }, 8 | "dependencies": { 9 | "react-native": "^0.3.1" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /iOS/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 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "node": true, 4 | "browser": true, 5 | "es6": true 6 | }, 7 | "ecmaFeatures": { 8 | "jsx": true 9 | }, 10 | "rules": { 11 | "strict": true, 12 | "quotes": false, 13 | "no-use-before-define": "func", 14 | "no-unused-vars": 0, 15 | "no-mixed-requires": [1, true], 16 | "max-depth": [1, 5], 17 | "max-len": [1, 80, 4], 18 | "eqeqeq": false, 19 | "no-path-concat": false, 20 | "no-else-return": true, 21 | "no-eq-null": true, 22 | "no-lonely-if": true, 23 | "comma-dangle": 0 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /iOS/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 | -------------------------------------------------------------------------------- /ReactNativeFlexboxPlayground.xcodeproj/xcuserdata/glen.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | ReactNativeFlexboxPlayground.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 13B07F861A680F5B00A75B9A 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /iOS/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 | } -------------------------------------------------------------------------------- /ReadMe.md: -------------------------------------------------------------------------------- 1 | # ReactNativeFlexboxPlayground 2 | 3 | A demo of `react-native`'s flexbox support that you can play along at home with. 4 | 5 | ## Running 6 | 7 | * `open ReactNativeFlexboxPlayground.xcodeproj` in Xcode 8 | * Hit build 9 | * enjoy 10 | 11 | ## Screenshot 12 | 13 | ![screenshot](https://cloud.githubusercontent.com/assets/151272/6887285/67c5308e-d652-11e4-8c41-bf90534be92e.png) 14 | 15 | ## Possible Future Plans 16 | 17 | Feel free to send in PRs for these! 18 | 19 | * Allow toggling container between scrollable and fixed size 20 | * Persist state between restarts 21 | * Use proper iOS style buttons icons 22 | * Improve layout in landscape 23 | * Make the keyboard not cover the input pane 24 | * Make things feel a bit more native 25 | * Figure out how to do animations 26 | * Use proper iOS controls in the form - PickerIOS + separate pane 27 | 28 | -------------------------------------------------------------------------------- /iOS/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 | 40 | 41 | -------------------------------------------------------------------------------- /ReactNativeFlexboxPlayground.xcodeproj/project.xcworkspace/xcshareddata/ReactNativeFlexboxPlayground.xccheckout: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDESourceControlProjectFavoriteDictionaryKey 6 | 7 | IDESourceControlProjectIdentifier 8 | B1CD1780-7042-4EB0-AAC8-89E8171E9EEC 9 | IDESourceControlProjectName 10 | ReactNativeFlexboxPlayground 11 | IDESourceControlProjectOriginsDictionary 12 | 13 | 878EADB497D83DA13C6A7E6A08E9B40E442C89BB 14 | github.com:glenjamin/ReactNativeFlexboxPlayground.git 15 | 16 | IDESourceControlProjectPath 17 | ReactNativeFlexboxPlayground.xcodeproj 18 | IDESourceControlProjectRelativeInstallPathDictionary 19 | 20 | 878EADB497D83DA13C6A7E6A08E9B40E442C89BB 21 | ../.. 22 | 23 | IDESourceControlProjectURL 24 | github.com:glenjamin/ReactNativeFlexboxPlayground.git 25 | IDESourceControlProjectVersion 26 | 111 27 | IDESourceControlProjectWCCIdentifier 28 | 878EADB497D83DA13C6A7E6A08E9B40E442C89BB 29 | IDESourceControlProjectWCConfigurations 30 | 31 | 32 | IDESourceControlRepositoryExtensionIdentifierKey 33 | public.vcs.git 34 | IDESourceControlWCCIdentifierKey 35 | 878EADB497D83DA13C6A7E6A08E9B40E442C89BB 36 | IDESourceControlWCCName 37 | ReactNativeFlexboxPlayground 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /iOS/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 | // Loading JavaScript code - uncomment the one you want. 21 | 22 | // OPTION 1 23 | // Load from development server. Start the server from the repository root: 24 | // 25 | // $ npm start 26 | // 27 | // To run on device, change `localhost` to the IP address of your computer, and make sure your computer and 28 | // iOS device are on the same Wi-Fi network. 29 | jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"]; 30 | 31 | // OPTION 2 32 | // Load from pre-bundled file on disk. To re-generate the static bundle, run 33 | // 34 | // $ curl http://localhost:8081/index.ios.bundle -o main.jsbundle 35 | // 36 | // and uncomment the next following line 37 | // jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; 38 | 39 | RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation 40 | moduleName:@"ReactNativeFlexboxPlayground" 41 | launchOptions:launchOptions]; 42 | 43 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 44 | UIViewController *rootViewController = [[UIViewController alloc] init]; 45 | rootViewController.view = rootView; 46 | self.window.rootViewController = rootViewController; 47 | [self.window makeKeyAndVisible]; 48 | return YES; 49 | } 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /iOS/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 | -------------------------------------------------------------------------------- /ReactNativeFlexboxPlayground.xcodeproj/xcshareddata/xcschemes/ReactNativeFlexboxPlayground.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 51 | 53 | 59 | 60 | 61 | 62 | 63 | 64 | 70 | 72 | 78 | 79 | 80 | 81 | 83 | 84 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /index.ios.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Sample React Native App 3 | * https://github.com/facebook/react-native 4 | */ 5 | 'use strict'; 6 | 7 | var React = require('react-native'); 8 | var { 9 | AppRegistry, 10 | StyleSheet, 11 | Text, 12 | View, 13 | Image, 14 | ScrollView, 15 | TouchableHighlight, 16 | TouchableOpacity, 17 | StatusBarIOS, 18 | TextInput 19 | } = React; 20 | 21 | var alignSelf = ['auto', 'flex-start', 'flex-end', 'center', 'stretch']; 22 | 23 | var containerStyles = { 24 | flexDirection: ['column', 'row'], 25 | justifyContent: ['center', 'flex-start', 'flex-end', 26 | 'space-between', 'space-around'], 27 | alignItems: ['flex-start', 'flex-end', 'center', 'stretch'], 28 | flexWrap: ['nowrap', 'wrap'], 29 | alignSelf: alignSelf 30 | }; 31 | 32 | var ReactNativeFlexboxPlayground = React.createClass({ 33 | componentDidMount: function() { 34 | StatusBarIOS.setHidden(true); 35 | }, 36 | getInitialState: function() { 37 | var containerStyle = {}; 38 | Object.keys(containerStyles).forEach( 39 | (k) => containerStyle[k] = containerStyles[k][0] 40 | ); 41 | return { 42 | selected: null, 43 | containerStyle: containerStyle, 44 | views: [ 45 | { 46 | text: "Tap the title to edit the container", 47 | style: this.buildBoxStyle() 48 | }, 49 | { 50 | text: "Tap on boxes like this one to edit them", 51 | style: this.buildBoxStyle() 52 | }, 53 | ] 54 | }; 55 | }, 56 | deselect() { 57 | this.setState({selected: null}); 58 | }, 59 | selectContainer() { 60 | this.setState({selected: "container"}); 61 | }, 62 | selectChild(i) { 63 | this.setState({selected: i}); 64 | }, 65 | addChild(text) { 66 | var child = { 67 | text: text || "...", 68 | style: this.buildBoxStyle() 69 | }; 70 | this.setState( 71 | (s) => ({ views: s.views.concat(child) }), 72 | () => this.selectChild(this.state.views.length - 1) 73 | ); 74 | }, 75 | updateContainerStyle(style) { 76 | this.setState({containerStyle: style}); 77 | }, 78 | updateChildText(index, text) { 79 | this.setState(s => { 80 | s.views[index].text = text; 81 | return { views: s.views }; 82 | }); 83 | }, 84 | updateChildStyle(index, style) { 85 | this.setState(s => { 86 | s.views[index].style = style; 87 | return { views: s.views }; 88 | }); 89 | }, 90 | buildBoxStyle() { 91 | return { 92 | flex: 0, 93 | alignSelf: 'auto', 94 | backgroundColor: '#99ff99' 95 | }; 96 | }, 97 | render: function() { 98 | var configPanel = null; 99 | if (this.state.selected == 'container') { 100 | configPanel = ( 101 | 106 | ); 107 | } else if (this.state.selected != null) { 108 | var index = this.state.selected; 109 | configPanel = ( 110 | this.updateChildText(index, text)} 117 | onStyleChange={style => this.updateChildStyle(index, style)} 118 | /> 119 | ); 120 | } 121 | var containerStyle = this.state.containerStyle; 122 | return ( 123 | 124 |
128 | 132 | {this.state.views.map(({text, style}, i) => 133 | this.selectChild(i)} 136 | /> 137 | )} 138 | 139 | {configPanel && 140 | {configPanel}} 141 | 142 | ); 143 | } 144 | }); 145 | 146 | var Header = React.createClass({ 147 | render() { 148 | return ( 149 | 150 | 151 | 152 | 153 | 154 | Flexbox Playground 155 | 156 | 157 | 158 | + 159 | 160 | ); 161 | } 162 | }); 163 | 164 | var TextButton = React.createClass({ 165 | render() { 166 | return ( 167 | 168 | 169 | 170 | {this.props.children} 171 | 172 | 173 | 174 | ); 175 | } 176 | }); 177 | 178 | var FlexChild = React.createClass({ 179 | render() { 180 | return ( 181 | 182 | 183 | {this.props.text} 184 | 185 | 186 | ); 187 | } 188 | }); 189 | 190 | var ContainerConfigPanel = React.createClass({ 191 | update(key, val) { 192 | this.props.onChange(Object.assign({}, this.props.data, { [key]: val })); 193 | }, 194 | render() { 195 | var data = this.props.data; 196 | return ( 197 | 198 | 199 | Configure Container 200 | 201 | 205 | {Object.keys(containerStyles).map( 206 | property => ( 207 | 208 | {property} 209 | 218 | 219 | ) 220 | )} 221 | 222 | 223 | ); 224 | } 225 | }); 226 | 227 | var ChildConfigPanel = React.createClass({ 228 | getInitialState: function() { 229 | return { flex: this.props.data.flex }; 230 | }, 231 | updateFlex(val) { 232 | this.setState({flex: val}); 233 | var int = parseInt(val, 10); 234 | if (int == val) { 235 | this.updateStyle('flex', int); 236 | } 237 | }, 238 | updateStyle(key, val) { 239 | this.props.onStyleChange( 240 | Object.assign({}, this.props.data, { [key]: val })); 241 | }, 242 | render() { 243 | var data = this.props.data; 244 | return ( 245 | 246 | 247 | Configure Box {this.props.index + 1} 248 | 249 | 253 | 254 | Text 255 | 260 | 261 | 262 | flex 263 | this.updateFlex(val)} 270 | /> 271 | 272 | 273 | alignSelf 274 | 283 | 284 | 285 | 286 | ); 287 | } 288 | }); 289 | 290 | var ConfigHeading = React.createClass({ 291 | render() { 292 | return ( 293 | 294 | 295 | 296 | {this.props.children} 297 | 298 | x 299 | 300 | ); 301 | } 302 | }); 303 | 304 | var Select = React.createClass({ 305 | propTypes: { 306 | currentValue: React.PropTypes.any, 307 | onSelect: React.PropTypes.func, 308 | }, 309 | render() { 310 | return ( 311 | 312 | {React.Children.map(this.props.children, child => 313 | React.cloneElement( 314 | child, 315 | { 316 | selected: child.props.value == this.props.currentValue, 317 | onSelect: () => this.props.onSelect(child.props.value) 318 | } 319 | ) 320 | )} 321 | 322 | ); 323 | } 324 | }); 325 | 326 | var SelectItem = React.createClass({ 327 | render() { 328 | return ( 329 | 330 | 331 | 335 | 336 | {this.props.value} 337 | 338 | 339 | 340 | 341 | ); 342 | } 343 | }); 344 | 345 | function icon(name) { 346 | return { 347 | uri: name, 348 | isStatic: true 349 | }; 350 | } 351 | 352 | var rawStyles = { 353 | page: { 354 | flex: 1, 355 | backgroundColor: '#ffffff', 356 | flexDirection: 'column' 357 | }, 358 | header: { 359 | flexDirection: 'row', 360 | alignItems: 'center' 361 | }, 362 | heading: { 363 | flex: 1, 364 | padding: 5 365 | }, 366 | headingText: { 367 | textAlign: 'center', 368 | fontSize: 20 369 | }, 370 | button: { 371 | width: 25, 372 | height: 25, 373 | flexDirection: 'row', 374 | justifyContent: 'center', 375 | alignItems: 'center' 376 | }, 377 | containerScroll: { 378 | flex: 3, 379 | padding: 5, 380 | }, 381 | container: { 382 | backgroundColor: '#cccccc' 383 | }, 384 | child: { 385 | margin: 5, 386 | padding: 10, 387 | borderRadius: 10, 388 | }, 389 | config: { 390 | flex: 2, 391 | borderTopWidth: 1, 392 | borderColor: '#000000' 393 | }, 394 | configPanel: { 395 | flex: 1, 396 | }, 397 | configHeading: { 398 | padding: 5, 399 | borderBottomWidth: 1, 400 | borderColor: '#000000', 401 | flexDirection: 'row', 402 | alignItems: 'center' 403 | }, 404 | configHeadingText: { 405 | flex: 1, 406 | fontSize: 18, 407 | textAlign: 'center', 408 | }, 409 | form: { 410 | flexDirection: 'column', 411 | alignItems: 'stretch' 412 | }, 413 | formRow: { 414 | paddingTop: 5, 415 | paddingHorizontal: 5, 416 | flexDirection: 'row', 417 | alignItems: 'flex-start', 418 | borderBottomWidth: 1, 419 | borderColor: '#cccccc' 420 | }, 421 | formLabel: { 422 | flex: 1, 423 | margin: 6, 424 | fontWeight: 'bold' 425 | }, 426 | formInput: { 427 | flex: 2 428 | }, 429 | formTextInput: { 430 | fontSize: 14, 431 | borderWidth: 1, 432 | borderRadius: 5, 433 | padding: 5, 434 | marginBottom: 5, 435 | borderColor: '#cccccc', 436 | }, 437 | formError: { 438 | borderColor: '#ff6666' 439 | }, 440 | select: { 441 | flexDirection: 'row', 442 | flexWrap: 'wrap', 443 | }, 444 | selectItemContainer: { 445 | marginRight: 5, 446 | marginBottom: 5, 447 | }, 448 | selectItem: { 449 | borderWidth: 1, 450 | borderRadius: 5, 451 | padding: 5, 452 | borderColor: '#cccccc', 453 | backgroundColor: '#ffffff', 454 | }, 455 | selectItemSelected: { 456 | borderColor: '#ccccff', 457 | backgroundColor: '#9999ff' 458 | }, 459 | selectItemText: { 460 | textAlign: 'center' 461 | } 462 | }; 463 | var styles = StyleSheet.create(rawStyles); 464 | 465 | AppRegistry.registerComponent( 466 | 'ReactNativeFlexboxPlayground', 467 | () => ReactNativeFlexboxPlayground 468 | ); 469 | -------------------------------------------------------------------------------- /ReactNativeFlexboxPlayground.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 00481BE81AC0C86700671115 /* libRCTWebSocketDebugger.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00481BE61AC0C7FA00671115 /* libRCTWebSocketDebugger.a */; }; 11 | 00481BEA1AC0C89D00671115 /* libicucore.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 00481BE91AC0C89D00671115 /* libicucore.dylib */; }; 12 | 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; }; 13 | 00C302E61ABCBA2D00DB3ED1 /* libRCTAdSupport.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302B41ABCB8E700DB3ED1 /* libRCTAdSupport.a */; }; 14 | 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; }; 15 | 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */; }; 16 | 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; }; 17 | 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.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 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 21 | 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 22 | 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; 23 | /* End PBXBuildFile section */ 24 | 25 | /* Begin PBXContainerItemProxy section */ 26 | 00481BE51AC0C7FA00671115 /* PBXContainerItemProxy */ = { 27 | isa = PBXContainerItemProxy; 28 | containerPortal = 00481BDB1AC0C7FA00671115 /* RCTWebSocketDebugger.xcodeproj */; 29 | proxyType = 2; 30 | remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; 31 | remoteInfo = RCTWebSocketDebugger; 32 | }; 33 | 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */ = { 34 | isa = PBXContainerItemProxy; 35 | containerPortal = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; 36 | proxyType = 2; 37 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 38 | remoteInfo = RCTActionSheet; 39 | }; 40 | 00C302B31ABCB8E700DB3ED1 /* PBXContainerItemProxy */ = { 41 | isa = PBXContainerItemProxy; 42 | containerPortal = 00C302AF1ABCB8E700DB3ED1 /* RCTAdSupport.xcodeproj */; 43 | proxyType = 2; 44 | remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; 45 | remoteInfo = RCTAdSupport; 46 | }; 47 | 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */ = { 48 | isa = PBXContainerItemProxy; 49 | containerPortal = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; 50 | proxyType = 2; 51 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 52 | remoteInfo = RCTGeolocation; 53 | }; 54 | 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */ = { 55 | isa = PBXContainerItemProxy; 56 | containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; 57 | proxyType = 2; 58 | remoteGlobalIDString = 58B5115D1A9E6B3D00147676; 59 | remoteInfo = RCTImage; 60 | }; 61 | 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */ = { 62 | isa = PBXContainerItemProxy; 63 | containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; 64 | proxyType = 2; 65 | remoteGlobalIDString = 58B511DB1A9E6C8500147676; 66 | remoteInfo = RCTNetwork; 67 | }; 68 | 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */ = { 69 | isa = PBXContainerItemProxy; 70 | containerPortal = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; 71 | proxyType = 2; 72 | remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; 73 | remoteInfo = RCTVibration; 74 | }; 75 | 146834031AC3E56700842450 /* PBXContainerItemProxy */ = { 76 | isa = PBXContainerItemProxy; 77 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 78 | proxyType = 2; 79 | remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; 80 | remoteInfo = React; 81 | }; 82 | 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */ = { 83 | isa = PBXContainerItemProxy; 84 | containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; 85 | proxyType = 2; 86 | remoteGlobalIDString = 58B5119B1A9E6C1200147676; 87 | remoteInfo = RCTText; 88 | }; 89 | /* End PBXContainerItemProxy section */ 90 | 91 | /* Begin PBXFileReference section */ 92 | 00481BDB1AC0C7FA00671115 /* RCTWebSocketDebugger.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocketDebugger.xcodeproj; path = "node_modules/react-native/Libraries/RCTWebSocketDebugger/RCTWebSocketDebugger.xcodeproj"; sourceTree = ""; }; 93 | 00481BE91AC0C89D00671115 /* libicucore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libicucore.dylib; path = usr/lib/libicucore.dylib; sourceTree = SDKROOT; }; 94 | 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = ""; }; 95 | 00C302AF1ABCB8E700DB3ED1 /* RCTAdSupport.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAdSupport.xcodeproj; path = "node_modules/react-native/Libraries/AdSupport/RCTAdSupport.xcodeproj"; sourceTree = ""; }; 96 | 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = ""; }; 97 | 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = ""; }; 98 | 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = ""; }; 99 | 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = ""; }; 100 | 13B07F961A680F5B00A75B9A /* ReactNativeFlexboxPlayground.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ReactNativeFlexboxPlayground.app; sourceTree = BUILT_PRODUCTS_DIR; }; 101 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = iOS/AppDelegate.h; sourceTree = ""; }; 102 | 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = iOS/AppDelegate.m; sourceTree = ""; }; 103 | 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 104 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = iOS/Info.plist; sourceTree = ""; }; 105 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = iOS/main.m; sourceTree = ""; }; 106 | 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; 107 | 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; 108 | /* End PBXFileReference section */ 109 | 110 | /* Begin PBXFrameworksBuildPhase section */ 111 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { 112 | isa = PBXFrameworksBuildPhase; 113 | buildActionMask = 2147483647; 114 | files = ( 115 | 00481BEA1AC0C89D00671115 /* libicucore.dylib in Frameworks */, 116 | 146834051AC3E58100842450 /* libReact.a in Frameworks */, 117 | 00481BE81AC0C86700671115 /* libRCTWebSocketDebugger.a in Frameworks */, 118 | 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */, 119 | 00C302E61ABCBA2D00DB3ED1 /* libRCTAdSupport.a in Frameworks */, 120 | 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */, 121 | 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */, 122 | 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */, 123 | 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, 124 | 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, 125 | ); 126 | runOnlyForDeploymentPostprocessing = 0; 127 | }; 128 | /* End PBXFrameworksBuildPhase section */ 129 | 130 | /* Begin PBXGroup section */ 131 | 00481BDC1AC0C7FA00671115 /* Products */ = { 132 | isa = PBXGroup; 133 | children = ( 134 | 00481BE61AC0C7FA00671115 /* libRCTWebSocketDebugger.a */, 135 | ); 136 | name = Products; 137 | sourceTree = ""; 138 | }; 139 | 00C302A81ABCB8CE00DB3ED1 /* Products */ = { 140 | isa = PBXGroup; 141 | children = ( 142 | 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */, 143 | ); 144 | name = Products; 145 | sourceTree = ""; 146 | }; 147 | 00C302B01ABCB8E700DB3ED1 /* Products */ = { 148 | isa = PBXGroup; 149 | children = ( 150 | 00C302B41ABCB8E700DB3ED1 /* libRCTAdSupport.a */, 151 | ); 152 | name = Products; 153 | sourceTree = ""; 154 | }; 155 | 00C302B61ABCB90400DB3ED1 /* Products */ = { 156 | isa = PBXGroup; 157 | children = ( 158 | 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */, 159 | ); 160 | name = Products; 161 | sourceTree = ""; 162 | }; 163 | 00C302BC1ABCB91800DB3ED1 /* Products */ = { 164 | isa = PBXGroup; 165 | children = ( 166 | 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */, 167 | ); 168 | name = Products; 169 | sourceTree = ""; 170 | }; 171 | 00C302D41ABCB9D200DB3ED1 /* Products */ = { 172 | isa = PBXGroup; 173 | children = ( 174 | 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */, 175 | ); 176 | name = Products; 177 | sourceTree = ""; 178 | }; 179 | 00C302E01ABCB9EE00DB3ED1 /* Products */ = { 180 | isa = PBXGroup; 181 | children = ( 182 | 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */, 183 | ); 184 | name = Products; 185 | sourceTree = ""; 186 | }; 187 | 13B07FAE1A68108700A75B9A /* ReactNativeFlexboxPlayground */ = { 188 | isa = PBXGroup; 189 | children = ( 190 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 191 | 13B07FB01A68108700A75B9A /* AppDelegate.m */, 192 | 13B07FB61A68108700A75B9A /* Info.plist */, 193 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, 194 | 13B07FB71A68108700A75B9A /* main.m */, 195 | ); 196 | name = ReactNativeFlexboxPlayground; 197 | sourceTree = ""; 198 | }; 199 | 146834001AC3E56700842450 /* Products */ = { 200 | isa = PBXGroup; 201 | children = ( 202 | 146834041AC3E56700842450 /* libReact.a */, 203 | ); 204 | name = Products; 205 | sourceTree = ""; 206 | }; 207 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = { 208 | isa = PBXGroup; 209 | children = ( 210 | 146833FF1AC3E56700842450 /* React.xcodeproj */, 211 | 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */, 212 | 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */, 213 | 00C302AF1ABCB8E700DB3ED1 /* RCTAdSupport.xcodeproj */, 214 | 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */, 215 | 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */, 216 | 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */, 217 | 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */, 218 | 00481BDB1AC0C7FA00671115 /* RCTWebSocketDebugger.xcodeproj */, 219 | 00481BE91AC0C89D00671115 /* libicucore.dylib */, 220 | ); 221 | name = Libraries; 222 | sourceTree = ""; 223 | }; 224 | 832341B11AAA6A8300B99B32 /* Products */ = { 225 | isa = PBXGroup; 226 | children = ( 227 | 832341B51AAA6A8300B99B32 /* libRCTText.a */, 228 | ); 229 | name = Products; 230 | sourceTree = ""; 231 | }; 232 | 83CBB9F61A601CBA00E9B192 = { 233 | isa = PBXGroup; 234 | children = ( 235 | 13B07FAE1A68108700A75B9A /* ReactNativeFlexboxPlayground */, 236 | 832341AE1AAA6A7D00B99B32 /* Libraries */, 237 | 83CBBA001A601CBA00E9B192 /* Products */, 238 | ); 239 | sourceTree = ""; 240 | }; 241 | 83CBBA001A601CBA00E9B192 /* Products */ = { 242 | isa = PBXGroup; 243 | children = ( 244 | 13B07F961A680F5B00A75B9A /* ReactNativeFlexboxPlayground.app */, 245 | ); 246 | name = Products; 247 | sourceTree = ""; 248 | }; 249 | /* End PBXGroup section */ 250 | 251 | /* Begin PBXNativeTarget section */ 252 | 13B07F861A680F5B00A75B9A /* ReactNativeFlexboxPlayground */ = { 253 | isa = PBXNativeTarget; 254 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ReactNativeFlexboxPlayground" */; 255 | buildPhases = ( 256 | 13B07F871A680F5B00A75B9A /* Sources */, 257 | 13B07F8C1A680F5B00A75B9A /* Frameworks */, 258 | 13B07F8E1A680F5B00A75B9A /* Resources */, 259 | ); 260 | buildRules = ( 261 | ); 262 | dependencies = ( 263 | ); 264 | name = ReactNativeFlexboxPlayground; 265 | productName = "Hello World"; 266 | productReference = 13B07F961A680F5B00A75B9A /* ReactNativeFlexboxPlayground.app */; 267 | productType = "com.apple.product-type.application"; 268 | }; 269 | /* End PBXNativeTarget section */ 270 | 271 | /* Begin PBXProject section */ 272 | 83CBB9F71A601CBA00E9B192 /* Project object */ = { 273 | isa = PBXProject; 274 | attributes = { 275 | LastUpgradeCheck = 0610; 276 | ORGANIZATIONNAME = Facebook; 277 | }; 278 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "ReactNativeFlexboxPlayground" */; 279 | compatibilityVersion = "Xcode 3.2"; 280 | developmentRegion = English; 281 | hasScannedForEncodings = 0; 282 | knownRegions = ( 283 | en, 284 | Base, 285 | ); 286 | mainGroup = 83CBB9F61A601CBA00E9B192; 287 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; 288 | projectDirPath = ""; 289 | projectReferences = ( 290 | { 291 | ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */; 292 | ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; 293 | }, 294 | { 295 | ProductGroup = 00C302B01ABCB8E700DB3ED1 /* Products */; 296 | ProjectRef = 00C302AF1ABCB8E700DB3ED1 /* RCTAdSupport.xcodeproj */; 297 | }, 298 | { 299 | ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */; 300 | ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; 301 | }, 302 | { 303 | ProductGroup = 00C302BC1ABCB91800DB3ED1 /* Products */; 304 | ProjectRef = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; 305 | }, 306 | { 307 | ProductGroup = 00C302D41ABCB9D200DB3ED1 /* Products */; 308 | ProjectRef = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; 309 | }, 310 | { 311 | ProductGroup = 832341B11AAA6A8300B99B32 /* Products */; 312 | ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; 313 | }, 314 | { 315 | ProductGroup = 00C302E01ABCB9EE00DB3ED1 /* Products */; 316 | ProjectRef = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; 317 | }, 318 | { 319 | ProductGroup = 00481BDC1AC0C7FA00671115 /* Products */; 320 | ProjectRef = 00481BDB1AC0C7FA00671115 /* RCTWebSocketDebugger.xcodeproj */; 321 | }, 322 | { 323 | ProductGroup = 146834001AC3E56700842450 /* Products */; 324 | ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; 325 | }, 326 | ); 327 | projectRoot = ""; 328 | targets = ( 329 | 13B07F861A680F5B00A75B9A /* ReactNativeFlexboxPlayground */, 330 | ); 331 | }; 332 | /* End PBXProject section */ 333 | 334 | /* Begin PBXReferenceProxy section */ 335 | 00481BE61AC0C7FA00671115 /* libRCTWebSocketDebugger.a */ = { 336 | isa = PBXReferenceProxy; 337 | fileType = archive.ar; 338 | path = libRCTWebSocketDebugger.a; 339 | remoteRef = 00481BE51AC0C7FA00671115 /* PBXContainerItemProxy */; 340 | sourceTree = BUILT_PRODUCTS_DIR; 341 | }; 342 | 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */ = { 343 | isa = PBXReferenceProxy; 344 | fileType = archive.ar; 345 | path = libRCTActionSheet.a; 346 | remoteRef = 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */; 347 | sourceTree = BUILT_PRODUCTS_DIR; 348 | }; 349 | 00C302B41ABCB8E700DB3ED1 /* libRCTAdSupport.a */ = { 350 | isa = PBXReferenceProxy; 351 | fileType = archive.ar; 352 | path = libRCTAdSupport.a; 353 | remoteRef = 00C302B31ABCB8E700DB3ED1 /* PBXContainerItemProxy */; 354 | sourceTree = BUILT_PRODUCTS_DIR; 355 | }; 356 | 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */ = { 357 | isa = PBXReferenceProxy; 358 | fileType = archive.ar; 359 | path = libRCTGeolocation.a; 360 | remoteRef = 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */; 361 | sourceTree = BUILT_PRODUCTS_DIR; 362 | }; 363 | 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */ = { 364 | isa = PBXReferenceProxy; 365 | fileType = archive.ar; 366 | path = libRCTImage.a; 367 | remoteRef = 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */; 368 | sourceTree = BUILT_PRODUCTS_DIR; 369 | }; 370 | 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */ = { 371 | isa = PBXReferenceProxy; 372 | fileType = archive.ar; 373 | path = libRCTNetwork.a; 374 | remoteRef = 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */; 375 | sourceTree = BUILT_PRODUCTS_DIR; 376 | }; 377 | 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */ = { 378 | isa = PBXReferenceProxy; 379 | fileType = archive.ar; 380 | path = libRCTVibration.a; 381 | remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */; 382 | sourceTree = BUILT_PRODUCTS_DIR; 383 | }; 384 | 146834041AC3E56700842450 /* libReact.a */ = { 385 | isa = PBXReferenceProxy; 386 | fileType = archive.ar; 387 | path = libReact.a; 388 | remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */; 389 | sourceTree = BUILT_PRODUCTS_DIR; 390 | }; 391 | 832341B51AAA6A8300B99B32 /* libRCTText.a */ = { 392 | isa = PBXReferenceProxy; 393 | fileType = archive.ar; 394 | path = libRCTText.a; 395 | remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */; 396 | sourceTree = BUILT_PRODUCTS_DIR; 397 | }; 398 | /* End PBXReferenceProxy section */ 399 | 400 | /* Begin PBXResourcesBuildPhase section */ 401 | 13B07F8E1A680F5B00A75B9A /* Resources */ = { 402 | isa = PBXResourcesBuildPhase; 403 | buildActionMask = 2147483647; 404 | files = ( 405 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, 406 | ); 407 | runOnlyForDeploymentPostprocessing = 0; 408 | }; 409 | /* End PBXResourcesBuildPhase section */ 410 | 411 | /* Begin PBXSourcesBuildPhase section */ 412 | 13B07F871A680F5B00A75B9A /* Sources */ = { 413 | isa = PBXSourcesBuildPhase; 414 | buildActionMask = 2147483647; 415 | files = ( 416 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, 417 | 13B07FC11A68108700A75B9A /* main.m in Sources */, 418 | ); 419 | runOnlyForDeploymentPostprocessing = 0; 420 | }; 421 | /* End PBXSourcesBuildPhase section */ 422 | 423 | /* Begin PBXVariantGroup section */ 424 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { 425 | isa = PBXVariantGroup; 426 | children = ( 427 | 13B07FB21A68108700A75B9A /* Base */, 428 | ); 429 | name = LaunchScreen.xib; 430 | path = iOS; 431 | sourceTree = ""; 432 | }; 433 | /* End PBXVariantGroup section */ 434 | 435 | /* Begin XCBuildConfiguration section */ 436 | 13B07F941A680F5B00A75B9A /* Debug */ = { 437 | isa = XCBuildConfiguration; 438 | buildSettings = { 439 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 440 | HEADER_SEARCH_PATHS = ( 441 | "$(inherited)", 442 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, 443 | "$(SRCROOT)/node_modules/react-native/React/**", 444 | ); 445 | INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist"; 446 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 447 | OTHER_LDFLAGS = "-ObjC"; 448 | PRODUCT_NAME = ReactNativeFlexboxPlayground; 449 | }; 450 | name = Debug; 451 | }; 452 | 13B07F951A680F5B00A75B9A /* Release */ = { 453 | isa = XCBuildConfiguration; 454 | buildSettings = { 455 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 456 | HEADER_SEARCH_PATHS = ( 457 | "$(inherited)", 458 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, 459 | "$(SRCROOT)/node_modules/react-native/React/**", 460 | ); 461 | INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist"; 462 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 463 | OTHER_LDFLAGS = "-ObjC"; 464 | PRODUCT_NAME = ReactNativeFlexboxPlayground; 465 | }; 466 | name = Release; 467 | }; 468 | 83CBBA201A601CBA00E9B192 /* Debug */ = { 469 | isa = XCBuildConfiguration; 470 | buildSettings = { 471 | ALWAYS_SEARCH_USER_PATHS = NO; 472 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 473 | CLANG_CXX_LIBRARY = "libc++"; 474 | CLANG_ENABLE_MODULES = YES; 475 | CLANG_ENABLE_OBJC_ARC = YES; 476 | CLANG_WARN_BOOL_CONVERSION = YES; 477 | CLANG_WARN_CONSTANT_CONVERSION = YES; 478 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 479 | CLANG_WARN_EMPTY_BODY = YES; 480 | CLANG_WARN_ENUM_CONVERSION = YES; 481 | CLANG_WARN_INT_CONVERSION = YES; 482 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 483 | CLANG_WARN_UNREACHABLE_CODE = YES; 484 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 485 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 486 | COPY_PHASE_STRIP = NO; 487 | ENABLE_STRICT_OBJC_MSGSEND = YES; 488 | GCC_C_LANGUAGE_STANDARD = gnu99; 489 | GCC_DYNAMIC_NO_PIC = NO; 490 | GCC_OPTIMIZATION_LEVEL = 0; 491 | GCC_PREPROCESSOR_DEFINITIONS = ( 492 | "DEBUG=1", 493 | "$(inherited)", 494 | ); 495 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 496 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 497 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 498 | GCC_WARN_UNDECLARED_SELECTOR = YES; 499 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 500 | GCC_WARN_UNUSED_FUNCTION = YES; 501 | GCC_WARN_UNUSED_VARIABLE = YES; 502 | HEADER_SEARCH_PATHS = ( 503 | "$(inherited)", 504 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, 505 | "$(SRCROOT)/node_modules/react-native/React/**", 506 | ); 507 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 508 | MTL_ENABLE_DEBUG_INFO = YES; 509 | ONLY_ACTIVE_ARCH = YES; 510 | SDKROOT = iphoneos; 511 | }; 512 | name = Debug; 513 | }; 514 | 83CBBA211A601CBA00E9B192 /* Release */ = { 515 | isa = XCBuildConfiguration; 516 | buildSettings = { 517 | ALWAYS_SEARCH_USER_PATHS = NO; 518 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 519 | CLANG_CXX_LIBRARY = "libc++"; 520 | CLANG_ENABLE_MODULES = YES; 521 | CLANG_ENABLE_OBJC_ARC = YES; 522 | CLANG_WARN_BOOL_CONVERSION = YES; 523 | CLANG_WARN_CONSTANT_CONVERSION = YES; 524 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 525 | CLANG_WARN_EMPTY_BODY = YES; 526 | CLANG_WARN_ENUM_CONVERSION = YES; 527 | CLANG_WARN_INT_CONVERSION = YES; 528 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 529 | CLANG_WARN_UNREACHABLE_CODE = YES; 530 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 531 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 532 | COPY_PHASE_STRIP = YES; 533 | ENABLE_NS_ASSERTIONS = NO; 534 | ENABLE_STRICT_OBJC_MSGSEND = YES; 535 | GCC_C_LANGUAGE_STANDARD = gnu99; 536 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 537 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 538 | GCC_WARN_UNDECLARED_SELECTOR = YES; 539 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 540 | GCC_WARN_UNUSED_FUNCTION = YES; 541 | GCC_WARN_UNUSED_VARIABLE = YES; 542 | HEADER_SEARCH_PATHS = ( 543 | "$(inherited)", 544 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, 545 | "$(SRCROOT)/node_modules/react-native/React/**", 546 | ); 547 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 548 | MTL_ENABLE_DEBUG_INFO = NO; 549 | SDKROOT = iphoneos; 550 | VALIDATE_PRODUCT = YES; 551 | }; 552 | name = Release; 553 | }; 554 | /* End XCBuildConfiguration section */ 555 | 556 | /* Begin XCConfigurationList section */ 557 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ReactNativeFlexboxPlayground" */ = { 558 | isa = XCConfigurationList; 559 | buildConfigurations = ( 560 | 13B07F941A680F5B00A75B9A /* Debug */, 561 | 13B07F951A680F5B00A75B9A /* Release */, 562 | ); 563 | defaultConfigurationIsVisible = 0; 564 | defaultConfigurationName = Release; 565 | }; 566 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "ReactNativeFlexboxPlayground" */ = { 567 | isa = XCConfigurationList; 568 | buildConfigurations = ( 569 | 83CBBA201A601CBA00E9B192 /* Debug */, 570 | 83CBBA211A601CBA00E9B192 /* Release */, 571 | ); 572 | defaultConfigurationIsVisible = 0; 573 | defaultConfigurationName = Release; 574 | }; 575 | /* End XCConfigurationList section */ 576 | }; 577 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; 578 | } 579 | --------------------------------------------------------------------------------