From 3edf2f8f1c8baed33abe2645f37d44f4e2126db0 Mon Sep 17 00:00:00 2001 From: Pedro Belo Date: Mon, 22 Feb 2016 17:37:50 -0800 Subject: [PATCH] setup example app to consume ios stub --- Example/ios/Example.xcodeproj/project.pbxproj | 59 +++++++++++++----- Example/ios/Example/Config.xcconfig | 7 +++ index.ios.js | 4 +- .../UserInterfaceState.xcuserstate | Bin 39144 -> 39114 bytes 4 files changed, 55 insertions(+), 15 deletions(-) create mode 100644 Example/ios/Example/Config.xcconfig diff --git a/Example/ios/Example.xcodeproj/project.pbxproj b/Example/ios/Example.xcodeproj/project.pbxproj index 896792e..106ff2a 100644 --- a/Example/ios/Example.xcodeproj/project.pbxproj +++ b/Example/ios/Example.xcodeproj/project.pbxproj @@ -22,6 +22,7 @@ 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; + EBE4E8111C7BEF40000F8875 /* libReactNativeConfig.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EBE4E8101C7BEF2B000F8875 /* libReactNativeConfig.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -102,20 +103,27 @@ remoteGlobalIDString = 58B5119B1A9E6C1200147676; remoteInfo = RCTText; }; + EBE4E80F1C7BEF2B000F8875 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = EBE4E8011C7BEF2A000F8875 /* ReactNativeConfig.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = EB2648DF1C7BE17A00B8F155; + remoteInfo = ReactNativeConfig; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = main.jsbundle; path = main.jsbundle; sourceTree = ""; }; - 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = ../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj; sourceTree = ""; }; - 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = ../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj; sourceTree = ""; }; - 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = ../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj; sourceTree = ""; }; - 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = ../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj; sourceTree = ""; }; - 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = ../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj; sourceTree = ""; }; + 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; + 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = ""; }; + 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = ""; }; + 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = ""; }; + 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = ""; }; + 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = ""; }; 00E356EE1AD99517003FC87E /* ExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* ExampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ExampleTests.m; sourceTree = ""; }; - 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = ../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj; sourceTree = ""; }; - 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = ../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj; sourceTree = ""; }; + 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; + 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = Example/AppDelegate.h; sourceTree = ""; }; 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = Example/AppDelegate.m; sourceTree = ""; }; @@ -123,9 +131,11 @@ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Example/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Example/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Example/main.m; sourceTree = ""; }; - 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = ../node_modules/react-native/React/React.xcodeproj; sourceTree = ""; }; - 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = ../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj; sourceTree = ""; }; - 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = ../node_modules/react-native/Libraries/Text/RCTText.xcodeproj; sourceTree = ""; }; + 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; + 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; + 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; + EB2648AB1C7BDFE600B8F155 /* Config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Config.xcconfig; path = Example/Config.xcconfig; sourceTree = ""; }; + EBE4E8011C7BEF2A000F8875 /* ReactNativeConfig.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ReactNativeConfig.xcodeproj; path = "../node_modules/react-native-config/ios/ReactNativeConfig.xcodeproj"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -140,6 +150,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + EBE4E8111C7BEF40000F8875 /* libReactNativeConfig.a in Frameworks */, 146834051AC3E58100842450 /* libReact.a in Frameworks */, 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */, 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */, @@ -232,6 +243,7 @@ 13B07FAE1A68108700A75B9A /* Example */ = { isa = PBXGroup; children = ( + EB2648AB1C7BDFE600B8F155 /* Config.xcconfig */, 008F07F21AC5B25A0029DE68 /* main.jsbundle */, 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 13B07FB01A68108700A75B9A /* AppDelegate.m */, @@ -262,6 +274,7 @@ 832341AE1AAA6A7D00B99B32 /* Libraries */ = { isa = PBXGroup; children = ( + EBE4E8011C7BEF2A000F8875 /* ReactNativeConfig.xcodeproj */, 146833FF1AC3E56700842450 /* React.xcodeproj */, 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */, 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */, @@ -305,6 +318,14 @@ name = Products; sourceTree = ""; }; + EBE4E8021C7BEF2A000F8875 /* Products */ = { + isa = PBXGroup; + children = ( + EBE4E8101C7BEF2B000F8875 /* libReactNativeConfig.a */, + ); + name = Products; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -411,6 +432,10 @@ ProductGroup = 146834001AC3E56700842450 /* Products */; ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; }, + { + ProductGroup = EBE4E8021C7BEF2A000F8875 /* Products */; + ProjectRef = EBE4E8011C7BEF2A000F8875 /* ReactNativeConfig.xcodeproj */; + }, ); projectRoot = ""; targets = ( @@ -491,6 +516,13 @@ remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; + EBE4E8101C7BEF2B000F8875 /* libReactNativeConfig.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libReactNativeConfig.a; + remoteRef = EBE4E80F1C7BEF2B000F8875 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; /* End PBXReferenceProxy section */ /* Begin PBXResourcesBuildPhase section */ @@ -526,7 +558,6 @@ runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "export NODE_BINARY=node\n../node_modules/react-native/packager/react-native-xcode.sh"; - showEnvVarsInLog = 1; }; /* End PBXShellScriptBuildPhase section */ @@ -618,7 +649,7 @@ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, "$(SRCROOT)/../node_modules/react-native/React/**", ); - INFOPLIST_FILE = "Example/Info.plist"; + INFOPLIST_FILE = Example/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_LDFLAGS = "-ObjC"; PRODUCT_NAME = Example; @@ -634,7 +665,7 @@ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, "$(SRCROOT)/../node_modules/react-native/React/**", ); - INFOPLIST_FILE = "Example/Info.plist"; + INFOPLIST_FILE = Example/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_LDFLAGS = "-ObjC"; PRODUCT_NAME = Example; diff --git a/Example/ios/Example/Config.xcconfig b/Example/ios/Example/Config.xcconfig new file mode 100644 index 0000000..16db56a --- /dev/null +++ b/Example/ios/Example/Config.xcconfig @@ -0,0 +1,7 @@ +// +// Config.xcconfig +// Example +// +// Created by Pedro Belo on 2/22/16. +// Copyright © 2016 Facebook. All rights reserved. +// diff --git a/index.ios.js b/index.ios.js index 8b46fbb..77fa9c5 100644 --- a/index.ios.js +++ b/index.ios.js @@ -1,3 +1,5 @@ 'use strict'; -module.exports = {}; +// bridge to the config vars set in xcconfig and exposed via ReactNativeConfig.m +var React = require('react-native'); +module.exports = React.NativeModules.ReactNativeConfig; diff --git a/ios/ReactNativeConfig.xcodeproj/project.xcworkspace/xcuserdata/pedro.xcuserdatad/UserInterfaceState.xcuserstate b/ios/ReactNativeConfig.xcodeproj/project.xcworkspace/xcuserdata/pedro.xcuserdatad/UserInterfaceState.xcuserstate index 156167f98a6873cc07a0ad2b5c6be9df3c74434f..1ddaf381eb92230915c97a8b9a9506bcdbf14d0c 100644 GIT binary patch delta 13612 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 Hj~4ttOX1zC delta 13666 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 z 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 XR8zEuLrVxU{3K2revbY-#pVA1_R8Ws