From af41a7296d14b8e428378573149a768602b9cd34 Mon Sep 17 00:00:00 2001 From: Douglas Nassif Roma Junior Date: Wed, 4 Dec 2019 08:33:26 -0300 Subject: [PATCH] Update sample project --- .npmignore | 1 + Sample/.babelrc | 3 - Sample/.eslintrc.js | 4 + Sample/.flowconfig | 80 +- Sample/.gitignore | 16 +- Sample/.prettierrc.js | 6 + Sample/App.js | 149 + Sample/__tests__/App-test.js | 14 + Sample/app.json | 4 +- Sample/babel.config.js | 3 + Sample/index.ios.js | 152 - Sample/index.js | 9 + Sample/install.sh | 2 - .../Info.plist | 29 +- .../Info.plist | 0 .../LibrarySample.xcodeproj/project.pbxproj | 942 +++ .../xcschemes/LibrarySample-tvOS.xcscheme} | 38 +- .../xcschemes/LibrarySample.xcscheme} | 38 +- .../contents.xcworkspacedata | 2 +- .../xcshareddata/IDEWorkspaceChecks.plist | 0 Sample/ios/LibrarySample/AppDelegate.h | 15 + Sample/ios/LibrarySample/AppDelegate.m | 42 + .../Base.lproj/LaunchScreen.xib | 2 +- .../AppIcon.appiconset/Contents.json | 0 .../Images.xcassets/Contents.json | 6 + .../ios/LibrarySample}/Info.plist | 33 +- Sample/ios/LibrarySample/main.m | 16 + .../ios/LibrarySampleTests}/Info.plist | 2 +- .../LibrarySampleTests.m} | 20 +- Sample/ios/Podfile | 53 + Sample/ios/Podfile.lock | 349 + .../project.pbxproj | 1507 ---- .../ios/SampleKeyboardManager/AppDelegate.h | 16 - .../ios/SampleKeyboardManager/AppDelegate.m | 37 - Sample/ios/SampleKeyboardManager/Info.plist | 56 - Sample/ios/SampleKeyboardManager/main.m | 18 - .../ios/SampleKeyboardManagerTests/Info.plist | 24 - Sample/metro.config.js | 17 + Sample/package.json | 51 +- Sample/yarn.lock | 6225 ++++++++++------- SamplePod/.babelrc | 3 - SamplePod/.buckconfig | 6 - SamplePod/.flowconfig | 67 - SamplePod/.gitattributes | 1 - SamplePod/.gitignore | 55 - SamplePod/.watchmanconfig | 1 - SamplePod/app.json | 4 - SamplePod/index.ios.js | 152 - SamplePod/install.sh | 7 - SamplePod/ios/Podfile | 48 - SamplePod/ios/Podfile.lock | 95 - .../project.pbxproj | 1590 ----- .../SampleKeyboardManager-tvOS.xcscheme | 129 - .../xcschemes/SampleKeyboardManager.xcscheme | 129 - .../ios/SampleKeyboardManager/AppDelegate.h | 16 - .../ios/SampleKeyboardManager/AppDelegate.m | 37 - .../Base.lproj/LaunchScreen.xib | 42 - .../AppIcon.appiconset/Contents.json | 38 - .../ios/SampleKeyboardManager/Info.plist | 56 - SamplePod/ios/SampleKeyboardManager/main.m | 18 - .../ios/SampleKeyboardManagerTests/Info.plist | 24 - .../SampleKeyboardManagerTests.m | 70 - SamplePod/package.json | 23 - SamplePod/yarn.lock | 5271 -------------- package.json | 2 +- 65 files changed, 5633 insertions(+), 12232 deletions(-) delete mode 100644 Sample/.babelrc create mode 100644 Sample/.eslintrc.js create mode 100644 Sample/.prettierrc.js create mode 100644 Sample/App.js create mode 100644 Sample/__tests__/App-test.js create mode 100644 Sample/babel.config.js delete mode 100644 Sample/index.ios.js create mode 100644 Sample/index.js rename Sample/ios/{SampleKeyboardManager-tvOS => LibrarySample-tvOS}/Info.plist (89%) rename Sample/ios/{SampleKeyboardManager-tvOSTests => LibrarySample-tvOSTests}/Info.plist (100%) create mode 100644 Sample/ios/LibrarySample.xcodeproj/project.pbxproj rename Sample/ios/{SampleKeyboardManager.xcodeproj/xcshareddata/xcschemes/SampleKeyboardManager-tvOS.xcscheme => LibrarySample.xcodeproj/xcshareddata/xcschemes/LibrarySample-tvOS.xcscheme} (75%) rename Sample/ios/{SampleKeyboardManager.xcodeproj/xcshareddata/xcschemes/SampleKeyboardManager.xcscheme => LibrarySample.xcodeproj/xcshareddata/xcschemes/LibrarySample.xcscheme} (76%) rename {SamplePod/ios/SampleKeyboardManager.xcworkspace => Sample/ios/LibrarySample.xcworkspace}/contents.xcworkspacedata (75%) rename {SamplePod/ios/SampleKeyboardManager.xcworkspace => Sample/ios/LibrarySample.xcworkspace}/xcshareddata/IDEWorkspaceChecks.plist (100%) create mode 100644 Sample/ios/LibrarySample/AppDelegate.h create mode 100644 Sample/ios/LibrarySample/AppDelegate.m rename Sample/ios/{SampleKeyboardManager => LibrarySample}/Base.lproj/LaunchScreen.xib (93%) rename Sample/ios/{SampleKeyboardManager => LibrarySample}/Images.xcassets/AppIcon.appiconset/Contents.json (100%) create mode 100644 Sample/ios/LibrarySample/Images.xcassets/Contents.json rename {SamplePod/ios/SampleKeyboardManager-tvOS => Sample/ios/LibrarySample}/Info.plist (89%) create mode 100644 Sample/ios/LibrarySample/main.m rename {SamplePod/ios/SampleKeyboardManager-tvOSTests => Sample/ios/LibrarySampleTests}/Info.plist (89%) rename Sample/ios/{SampleKeyboardManagerTests/SampleKeyboardManagerTests.m => LibrarySampleTests/LibrarySampleTests.m} (78%) create mode 100644 Sample/ios/Podfile create mode 100644 Sample/ios/Podfile.lock delete mode 100644 Sample/ios/SampleKeyboardManager.xcodeproj/project.pbxproj delete mode 100644 Sample/ios/SampleKeyboardManager/AppDelegate.h delete mode 100644 Sample/ios/SampleKeyboardManager/AppDelegate.m delete mode 100644 Sample/ios/SampleKeyboardManager/Info.plist delete mode 100644 Sample/ios/SampleKeyboardManager/main.m delete mode 100644 Sample/ios/SampleKeyboardManagerTests/Info.plist create mode 100644 Sample/metro.config.js delete mode 100644 SamplePod/.babelrc delete mode 100644 SamplePod/.buckconfig delete mode 100644 SamplePod/.flowconfig delete mode 100644 SamplePod/.gitattributes delete mode 100644 SamplePod/.gitignore delete mode 100644 SamplePod/.watchmanconfig delete mode 100644 SamplePod/app.json delete mode 100644 SamplePod/index.ios.js delete mode 100755 SamplePod/install.sh delete mode 100644 SamplePod/ios/Podfile delete mode 100644 SamplePod/ios/Podfile.lock delete mode 100644 SamplePod/ios/SampleKeyboardManager.xcodeproj/project.pbxproj delete mode 100644 SamplePod/ios/SampleKeyboardManager.xcodeproj/xcshareddata/xcschemes/SampleKeyboardManager-tvOS.xcscheme delete mode 100644 SamplePod/ios/SampleKeyboardManager.xcodeproj/xcshareddata/xcschemes/SampleKeyboardManager.xcscheme delete mode 100644 SamplePod/ios/SampleKeyboardManager/AppDelegate.h delete mode 100644 SamplePod/ios/SampleKeyboardManager/AppDelegate.m delete mode 100644 SamplePod/ios/SampleKeyboardManager/Base.lproj/LaunchScreen.xib delete mode 100644 SamplePod/ios/SampleKeyboardManager/Images.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 SamplePod/ios/SampleKeyboardManager/Info.plist delete mode 100644 SamplePod/ios/SampleKeyboardManager/main.m delete mode 100644 SamplePod/ios/SampleKeyboardManagerTests/Info.plist delete mode 100644 SamplePod/ios/SampleKeyboardManagerTests/SampleKeyboardManagerTests.m delete mode 100644 SamplePod/package.json delete mode 100644 SamplePod/yarn.lock diff --git a/.npmignore b/.npmignore index 5140adf..21933ec 100644 --- a/.npmignore +++ b/.npmignore @@ -2,3 +2,4 @@ Sample/ SamplePod/ __tests__ screenshots +.github diff --git a/Sample/.babelrc b/Sample/.babelrc deleted file mode 100644 index a9ce136..0000000 --- a/Sample/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["react-native"] -} diff --git a/Sample/.eslintrc.js b/Sample/.eslintrc.js new file mode 100644 index 0000000..40c6dcd --- /dev/null +++ b/Sample/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: '@react-native-community', +}; diff --git a/Sample/.flowconfig b/Sample/.flowconfig index 3c0adb5..4afc766 100644 --- a/Sample/.flowconfig +++ b/Sample/.flowconfig @@ -5,63 +5,71 @@ ; Ignore "BUCK" generated dirs /\.buckd/ -; Ignore unexpected extra "@providesModule" -.*/node_modules/.*/node_modules/fbjs/.* - -; Ignore duplicate module providers -; For RN Apps installed via npm, "Libraries" folder is inside -; "node_modules/react-native" but in the source repo it is in the root -.*/Libraries/react-native/React.js - ; Ignore polyfills -.*/Libraries/polyfills/.* +node_modules/react-native/Libraries/polyfills/.* -; Ignore metro -.*/node_modules/metro/.* +; These should not be required directly +; require from fbjs/lib instead: require('fbjs/lib/warning') +node_modules/warning/.* + +; Flow doesn't support platforms +.*/Libraries/Utilities/LoadingView.js + +[untyped] +.*/node_modules/@react-native-community/cli/.*/.* [include] [libs] node_modules/react-native/Libraries/react-native/react-native-interface.js node_modules/react-native/flow/ -node_modules/react-native/flow-github/ [options] emoji=true -module.system=haste -module.system.haste.use_name_reducers=true -# get basename -module.system.haste.name_reducers='^.*/\([a-zA-Z0-9$_.-]+\.js\(\.flow\)?\)$' -> '\1' -# strip .js or .js.flow suffix -module.system.haste.name_reducers='^\(.*\)\.js\(\.flow\)?$' -> '\1' -# strip .ios suffix -module.system.haste.name_reducers='^\(.*\)\.ios$' -> '\1' -module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1' -module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1' -module.system.haste.paths.blacklist=.*/__tests__/.* -module.system.haste.paths.blacklist=.*/__mocks__/.* -module.system.haste.paths.blacklist=/node_modules/react-native/Libraries/Animated/src/polyfills/.* -module.system.haste.paths.whitelist=/node_modules/react-native/Libraries/.* +esproposal.optional_chaining=enable +esproposal.nullish_coalescing=enable + +module.file_ext=.js +module.file_ext=.json +module.file_ext=.ios.js munge_underscores=true -module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub' - -module.file_ext=.js -module.file_ext=.jsx -module.file_ext=.json -module.file_ext=.native.js +module.name_mapper='^react-native$' -> '/node_modules/react-native/Libraries/react-native/react-native-implementation' +module.name_mapper='^react-native/\(.*\)$' -> '/node_modules/react-native/\1' +module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '/node_modules/react-native/Libraries/Image/RelativeImageStub' suppress_type=$FlowIssue suppress_type=$FlowFixMe suppress_type=$FlowFixMeProps suppress_type=$FlowFixMeState -suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) -suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ -suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy +suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\) +suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+ suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError +[lints] +sketchy-null-number=warn +sketchy-null-mixed=warn +sketchy-number=warn +untyped-type-import=warn +nonstrict-import=warn +deprecated-type=warn +unsafe-getters-setters=warn +inexact-spread=warn +unnecessary-invariant=warn +signature-verification-failure=warn +deprecated-utility=error + +[strict] +deprecated-type +nonstrict-import +sketchy-null +unclear-type +unsafe-getters-setters +untyped-import +untyped-type-import + [version] -^0.75.0 +^0.105.0 diff --git a/Sample/.gitignore b/Sample/.gitignore index 10be197..ad572e6 100644 --- a/Sample/.gitignore +++ b/Sample/.gitignore @@ -20,7 +20,6 @@ DerivedData *.hmap *.ipa *.xcuserstate -project.xcworkspace # Android/IntelliJ # @@ -40,14 +39,21 @@ yarn-error.log buck-out/ \.buckd/ *.keystore +!debug.keystore # fastlane # # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the # screenshots whenever they are needed. # For more information about the recommended setup visit: -# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md +# https://docs.fastlane.tools/best-practices/source-control/ -fastlane/report.xml -fastlane/Preview.html -fastlane/screenshots +*/fastlane/report.xml +*/fastlane/Preview.html +*/fastlane/screenshots + +# Bundle artifact +*.jsbundle + +# CocoaPods +/ios/Pods/ diff --git a/Sample/.prettierrc.js b/Sample/.prettierrc.js new file mode 100644 index 0000000..5c4de1a --- /dev/null +++ b/Sample/.prettierrc.js @@ -0,0 +1,6 @@ +module.exports = { + bracketSpacing: false, + jsxBracketSameLine: true, + singleQuote: true, + trailingComma: 'all', +}; diff --git a/Sample/App.js b/Sample/App.js new file mode 100644 index 0000000..ca07c24 --- /dev/null +++ b/Sample/App.js @@ -0,0 +1,149 @@ +/** +* MIT License +* +* Copyright (c) 2017 Douglas Nassif Roma Junior +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +*/ + +import React, { Component } from 'react'; +import { + Text, + View, + TextInput, + ScrollView, + Switch, +} from 'react-native'; + +import KeyboardManager, { PreviousNextView } from 'react-native-keyboard-manager' + +/* Default values */ +KeyboardManager.setEnable(true); +KeyboardManager.setEnableDebugging(false); +KeyboardManager.setKeyboardDistanceFromTextField(10); +KeyboardManager.setPreventShowingBottomBlankSpace(true); +KeyboardManager.setEnableAutoToolbar(true); +KeyboardManager.setToolbarDoneBarButtonItemText("Done"); +KeyboardManager.setToolbarManageBehaviour(0); +KeyboardManager.setToolbarPreviousNextButtonEnable(false); +KeyboardManager.setShouldToolbarUsesTextFieldTintColor(false); +KeyboardManager.setShouldShowTextFieldPlaceholder(true); // deprecated, use setShouldShowToolbarPlaceholder +KeyboardManager.setShouldShowToolbarPlaceholder(true); +KeyboardManager.setOverrideKeyboardAppearance(false); +KeyboardManager.setShouldResignOnTouchOutside(true); + +const inputStyle = { minHeight: 40, borderColor: "#000000", borderWidth: 1, borderRadius: 2, paddingLeft: 5 }; + +const inputKeys = ['input1', 'input2', 'input3', 'input4', 'input5', 'input6', + 'textarea1', 'textarea2', 'textarea3', 'textarea4',]; + +class App extends Component { + + state = { + enableDisable: true + }; + + componentDidMount() { + KeyboardManager.resignFirstResponder(); + } + + componentDidUpdate() { + KeyboardManager.isKeyboardShowing() + .then((isShowing) => { + console.log("isKeyboardShowing: " + isShowing); + }) + } + + onEnableDisable = (value) => { + KeyboardManager.setEnable(value); + this.setState({ + enableDisable: value + }) + } + + render() { + const self = this; + + var inputs = []; + + for (let i = 0; i < inputKeys.length; i++) { + let ref = inputKeys[i]; + let nextRef = i < inputKeys.length - 1 ? inputKeys[i + 1] : ''; + + let nextFocus = () => { self.refs[nextRef] ? self.refs[nextRef].focus() : null }; + + const multiline = ref.startsWith('textarea'); + inputs.push(( + + {ref} + + { + let state = {}; + state[ref] = text; + self.setState(state) + }} + placeholder={ref} + onSubmitEditing={!multiline ? nextFocus : undefined} + multiline={multiline} + numberOfLines={multiline ? 10 : 1} + returnKeyType={multiline ? 'default' : 'next'} + onLayout={() => { + // When the input size (textarea) changes, it updates the keyboard position. + KeyboardManager.reloadLayoutIfNeeded(); + }} + /> + + )) + } + + return ( + + + {/* To try with Modal, uncomment the two following lines. */} + {/* */} + {/* */} + + {/* ScrollView is not required, but may be needed in some cases. */} + + + + React-Native Keyboard Manager + + Enable/Disable + + + + + {inputs} + + + + {/* */} + {/* */} + + + ) + } +} + +export default App; diff --git a/Sample/__tests__/App-test.js b/Sample/__tests__/App-test.js new file mode 100644 index 0000000..1784766 --- /dev/null +++ b/Sample/__tests__/App-test.js @@ -0,0 +1,14 @@ +/** + * @format + */ + +import 'react-native'; +import React from 'react'; +import App from '../App'; + +// Note: test renderer must be required after react-native. +import renderer from 'react-test-renderer'; + +it('renders correctly', () => { + renderer.create(); +}); diff --git a/Sample/app.json b/Sample/app.json index db7936f..5db3693 100644 --- a/Sample/app.json +++ b/Sample/app.json @@ -1,4 +1,4 @@ { - "name": "SampleKeyboardManager", - "displayName": "SampleKeyboardManager" + "name": "LibrarySample", + "displayName": "LibrarySample" } \ No newline at end of file diff --git a/Sample/babel.config.js b/Sample/babel.config.js new file mode 100644 index 0000000..f842b77 --- /dev/null +++ b/Sample/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: ['module:metro-react-native-babel-preset'], +}; diff --git a/Sample/index.ios.js b/Sample/index.ios.js deleted file mode 100644 index 8a5e7e4..0000000 --- a/Sample/index.ios.js +++ /dev/null @@ -1,152 +0,0 @@ -/** -* MIT License -* -* Copyright (c) 2017 Douglas Nassif Roma Junior -* -* Permission is hereby granted, free of charge, to any person obtaining a copy -* of this software and associated documentation files (the "Software"), to deal -* in the Software without restriction, including without limitation the rights -* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the Software is -* furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in all -* copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -* SOFTWARE. -*/ - -import React, { Component } from 'react'; -import { - AppRegistry, - Text, - View, - TextInput, - ScrollView, - Switch, - Modal, -} from 'react-native'; - -import KeyboardManager, { PreviousNextView } from 'react-native-keyboard-manager' - -/* Default values */ -KeyboardManager.setEnable(true); -KeyboardManager.setEnableDebugging(false); -KeyboardManager.setKeyboardDistanceFromTextField(10); -KeyboardManager.setPreventShowingBottomBlankSpace(true); -KeyboardManager.setEnableAutoToolbar(true); -KeyboardManager.setToolbarDoneBarButtonItemText("Done"); -KeyboardManager.setToolbarManageBehaviour(0); -KeyboardManager.setToolbarPreviousNextButtonEnable(false); -KeyboardManager.setShouldToolbarUsesTextFieldTintColor(false); -KeyboardManager.setShouldShowTextFieldPlaceholder(true); // deprecated, use setShouldShowToolbarPlaceholder -KeyboardManager.setShouldShowToolbarPlaceholder(true); -KeyboardManager.setOverrideKeyboardAppearance(false); -KeyboardManager.setShouldResignOnTouchOutside(true); - -const inputStyle = { minHeight: 40, borderColor: "#000000", borderWidth: 1, borderRadius: 2, paddingLeft: 5 }; - -const inputKeys = ['input1', 'input2', 'input3', 'input4', 'input5', 'input6', - 'textarea1', 'textarea2', 'textarea3', 'textarea4',]; - -class SampleKeyboardManager extends Component { - - state = { - enableDisable: true - }; - - componentDidMount() { - KeyboardManager.resignFirstResponder(); - } - - componentDidUpdate() { - KeyboardManager.isKeyboardShowing() - .then((isShowing) => { - console.log("isKeyboardShowing: " + isShowing); - }) - } - - onEnableDisable = (value) => { - KeyboardManager.setEnable(value); - this.setState({ - enableDisable: value - }) - } - - render() { - const self = this; - - var inputs = []; - - for (let i = 0; i < inputKeys.length; i++) { - let ref = inputKeys[i]; - let nextRef = i < inputKeys.length - 1 ? inputKeys[i + 1] : ''; - - let nextFocus = () => { self.refs[nextRef] ? self.refs[nextRef].focus() : null }; - - const multiline = ref.startsWith('textarea'); - inputs.push(( - - {ref} - - { - let state = {}; - state[ref] = text; - self.setState(state) - }} - placeholder={ref} - onSubmitEditing={!multiline ? nextFocus : undefined} - multiline={multiline} - numberOfLines={multiline ? 10 : 1} - returnKeyType={multiline ? 'default' : 'next'} - onLayout={() => { - // When the input size changes, it updates the keyboard position. - KeyboardManager.reloadLayoutIfNeeded(); - }} - /> - - )) - } - - return ( - - - {/* To try with Modal, uncomment the two following lines. */} - {/* */} - {/* */} - - {/* ScrollView is not required, but may be needed in some cases. */} - - - - React-Native Keyboard Manager - - Enable/Disable - - - - - {inputs} - - - - {/* */} - {/* */} - - - ) - } -} - - -AppRegistry.registerComponent('SampleKeyboardManager', () => SampleKeyboardManager); diff --git a/Sample/index.js b/Sample/index.js new file mode 100644 index 0000000..a850d03 --- /dev/null +++ b/Sample/index.js @@ -0,0 +1,9 @@ +/** + * @format + */ + +import {AppRegistry} from 'react-native'; +import App from './App'; +import {name as appName} from './app.json'; + +AppRegistry.registerComponent(appName, () => App); diff --git a/Sample/install.sh b/Sample/install.sh index bb60689..c2c218b 100755 --- a/Sample/install.sh +++ b/Sample/install.sh @@ -3,5 +3,3 @@ rm -rf ../node_modules/ rm -rf node_modules/ yarn install -rm -rf node_modules/react-native-keyboard-manager/Sample/ -rm -rf node_modules/react-native-keyboard-manager/SamplePod/ diff --git a/Sample/ios/SampleKeyboardManager-tvOS/Info.plist b/Sample/ios/LibrarySample-tvOS/Info.plist similarity index 89% rename from Sample/ios/SampleKeyboardManager-tvOS/Info.plist rename to Sample/ios/LibrarySample-tvOS/Info.plist index 2fb6a11..ecbd496 100644 --- a/Sample/ios/SampleKeyboardManager-tvOS/Info.plist +++ b/Sample/ios/LibrarySample-tvOS/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -22,6 +22,19 @@ 1 LSRequiresIPhoneOS + NSAppTransportSecurity + + NSExceptionDomains + + localhost + + NSExceptionAllowsInsecureHTTPLoads + + + + + NSLocationWhenInUseUsageDescription + UILaunchStoryboardName LaunchScreen UIRequiredDeviceCapabilities @@ -36,19 +49,5 @@ UIViewControllerBasedStatusBarAppearance - NSLocationWhenInUseUsageDescription - - NSAppTransportSecurity - - - NSExceptionDomains - - localhost - - NSExceptionAllowsInsecureHTTPLoads - - - - diff --git a/Sample/ios/SampleKeyboardManager-tvOSTests/Info.plist b/Sample/ios/LibrarySample-tvOSTests/Info.plist similarity index 100% rename from Sample/ios/SampleKeyboardManager-tvOSTests/Info.plist rename to Sample/ios/LibrarySample-tvOSTests/Info.plist diff --git a/Sample/ios/LibrarySample.xcodeproj/project.pbxproj b/Sample/ios/LibrarySample.xcodeproj/project.pbxproj new file mode 100644 index 0000000..96195b0 --- /dev/null +++ b/Sample/ios/LibrarySample.xcodeproj/project.pbxproj @@ -0,0 +1,942 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 00E356F31AD99517003FC87E /* LibrarySampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* LibrarySampleTests.m */; }; + 0D961E8BEFD86D52E0E06C56 /* libPods-LibrarySample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DE9E67ABB4FB5C7AF4B270A /* libPods-LibrarySample.a */; }; + 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; + 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; + 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 2DCD954D1E0B4F2C00145EB5 /* LibrarySampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* LibrarySampleTests.m */; }; + 778E1A082C99090F0E33FFD5 /* libPods-LibrarySampleTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2CDD80F4EE64A068E17576A8 /* libPods-LibrarySampleTests.a */; }; + BF2D9C593A06BFB5FE2B09A8 /* libPods-LibrarySample-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8D97B25652E5F50C71D9B820 /* libPods-LibrarySample-tvOSTests.a */; }; + BFA4D1E7D68C3E5765F86A01 /* libPods-LibrarySample-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAC5545BFBF86DA3ED4D7519 /* libPods-LibrarySample-tvOS.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 13B07F861A680F5B00A75B9A; + remoteInfo = LibrarySample; + }; + 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7; + remoteInfo = "LibrarySample-tvOS"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; + 00E356EE1AD99517003FC87E /* LibrarySampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LibrarySampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 00E356F21AD99517003FC87E /* LibrarySampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LibrarySampleTests.m; sourceTree = ""; }; + 13B07F961A680F5B00A75B9A /* LibrarySample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LibrarySample.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = LibrarySample/AppDelegate.h; sourceTree = ""; }; + 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = LibrarySample/AppDelegate.m; sourceTree = ""; }; + 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = LibrarySample/Images.xcassets; sourceTree = ""; }; + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = LibrarySample/Info.plist; sourceTree = ""; }; + 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = LibrarySample/main.m; sourceTree = ""; }; + 2CDD80F4EE64A068E17576A8 /* libPods-LibrarySampleTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-LibrarySampleTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2D02E47B1E0B4A5D006451C7 /* LibrarySample-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "LibrarySample-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2D02E4901E0B4A5D006451C7 /* LibrarySample-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "LibrarySample-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4DE9E67ABB4FB5C7AF4B270A /* libPods-LibrarySample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-LibrarySample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 84C85AE0CF834040470DFCB3 /* Pods-LibrarySampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LibrarySampleTests.release.xcconfig"; path = "Target Support Files/Pods-LibrarySampleTests/Pods-LibrarySampleTests.release.xcconfig"; sourceTree = ""; }; + 8D97B25652E5F50C71D9B820 /* libPods-LibrarySample-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-LibrarySample-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 9FBFA2ABB10BD6B013FB94CC /* Pods-LibrarySample-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LibrarySample-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-LibrarySample-tvOS/Pods-LibrarySample-tvOS.debug.xcconfig"; sourceTree = ""; }; + 9FE8955BC2B9C719CED00C04 /* Pods-LibrarySample-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LibrarySample-tvOSTests.release.xcconfig"; path = "Target Support Files/Pods-LibrarySample-tvOSTests/Pods-LibrarySample-tvOSTests.release.xcconfig"; sourceTree = ""; }; + B7A7E740F9E7650E99A2B1A1 /* Pods-LibrarySampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LibrarySampleTests.debug.xcconfig"; path = "Target Support Files/Pods-LibrarySampleTests/Pods-LibrarySampleTests.debug.xcconfig"; sourceTree = ""; }; + DAC5545BFBF86DA3ED4D7519 /* libPods-LibrarySample-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-LibrarySample-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + E1EF9A348D27A612DDA40DE7 /* Pods-LibrarySample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LibrarySample.release.xcconfig"; path = "Target Support Files/Pods-LibrarySample/Pods-LibrarySample.release.xcconfig"; sourceTree = ""; }; + E780B1B7DFBCFC20931FC6FC /* Pods-LibrarySample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LibrarySample.debug.xcconfig"; path = "Target Support Files/Pods-LibrarySample/Pods-LibrarySample.debug.xcconfig"; sourceTree = ""; }; + ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; + ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; }; + EF695CA4921637E06715B592 /* Pods-LibrarySample-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LibrarySample-tvOS.release.xcconfig"; path = "Target Support Files/Pods-LibrarySample-tvOS/Pods-LibrarySample-tvOS.release.xcconfig"; sourceTree = ""; }; + F68F18D47EFC1490A133AE30 /* Pods-LibrarySample-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LibrarySample-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-LibrarySample-tvOSTests/Pods-LibrarySample-tvOSTests.debug.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 00E356EB1AD99517003FC87E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 778E1A082C99090F0E33FFD5 /* libPods-LibrarySampleTests.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0D961E8BEFD86D52E0E06C56 /* libPods-LibrarySample.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2D02E4781E0B4A5D006451C7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BFA4D1E7D68C3E5765F86A01 /* libPods-LibrarySample-tvOS.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2D02E48D1E0B4A5D006451C7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BF2D9C593A06BFB5FE2B09A8 /* libPods-LibrarySample-tvOSTests.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 00E356EF1AD99517003FC87E /* LibrarySampleTests */ = { + isa = PBXGroup; + children = ( + 00E356F21AD99517003FC87E /* LibrarySampleTests.m */, + 00E356F01AD99517003FC87E /* Supporting Files */, + ); + path = LibrarySampleTests; + sourceTree = ""; + }; + 00E356F01AD99517003FC87E /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 00E356F11AD99517003FC87E /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 13B07FAE1A68108700A75B9A /* LibrarySample */ = { + isa = PBXGroup; + children = ( + 008F07F21AC5B25A0029DE68 /* main.jsbundle */, + 13B07FAF1A68108700A75B9A /* AppDelegate.h */, + 13B07FB01A68108700A75B9A /* AppDelegate.m */, + 13B07FB51A68108700A75B9A /* Images.xcassets */, + 13B07FB61A68108700A75B9A /* Info.plist */, + 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, + 13B07FB71A68108700A75B9A /* main.m */, + ); + name = LibrarySample; + sourceTree = ""; + }; + 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { + isa = PBXGroup; + children = ( + ED297162215061F000B7C4FE /* JavaScriptCore.framework */, + ED2971642150620600B7C4FE /* JavaScriptCore.framework */, + 4DE9E67ABB4FB5C7AF4B270A /* libPods-LibrarySample.a */, + DAC5545BFBF86DA3ED4D7519 /* libPods-LibrarySample-tvOS.a */, + 8D97B25652E5F50C71D9B820 /* libPods-LibrarySample-tvOSTests.a */, + 2CDD80F4EE64A068E17576A8 /* libPods-LibrarySampleTests.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 832341AE1AAA6A7D00B99B32 /* Libraries */ = { + isa = PBXGroup; + children = ( + ); + name = Libraries; + sourceTree = ""; + }; + 83CBB9F61A601CBA00E9B192 = { + isa = PBXGroup; + children = ( + 13B07FAE1A68108700A75B9A /* LibrarySample */, + 832341AE1AAA6A7D00B99B32 /* Libraries */, + 00E356EF1AD99517003FC87E /* LibrarySampleTests */, + 83CBBA001A601CBA00E9B192 /* Products */, + 2D16E6871FA4F8E400B85C8A /* Frameworks */, + FFA69605FF3DBB08F74F7B22 /* Pods */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + usesTabs = 0; + }; + 83CBBA001A601CBA00E9B192 /* Products */ = { + isa = PBXGroup; + children = ( + 13B07F961A680F5B00A75B9A /* LibrarySample.app */, + 00E356EE1AD99517003FC87E /* LibrarySampleTests.xctest */, + 2D02E47B1E0B4A5D006451C7 /* LibrarySample-tvOS.app */, + 2D02E4901E0B4A5D006451C7 /* LibrarySample-tvOSTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + FFA69605FF3DBB08F74F7B22 /* Pods */ = { + isa = PBXGroup; + children = ( + E780B1B7DFBCFC20931FC6FC /* Pods-LibrarySample.debug.xcconfig */, + E1EF9A348D27A612DDA40DE7 /* Pods-LibrarySample.release.xcconfig */, + 9FBFA2ABB10BD6B013FB94CC /* Pods-LibrarySample-tvOS.debug.xcconfig */, + EF695CA4921637E06715B592 /* Pods-LibrarySample-tvOS.release.xcconfig */, + F68F18D47EFC1490A133AE30 /* Pods-LibrarySample-tvOSTests.debug.xcconfig */, + 9FE8955BC2B9C719CED00C04 /* Pods-LibrarySample-tvOSTests.release.xcconfig */, + B7A7E740F9E7650E99A2B1A1 /* Pods-LibrarySampleTests.debug.xcconfig */, + 84C85AE0CF834040470DFCB3 /* Pods-LibrarySampleTests.release.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 00E356ED1AD99517003FC87E /* LibrarySampleTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "LibrarySampleTests" */; + buildPhases = ( + 787D7D0467A01481362C48C1 /* [CP] Check Pods Manifest.lock */, + 00E356EA1AD99517003FC87E /* Sources */, + 00E356EB1AD99517003FC87E /* Frameworks */, + 00E356EC1AD99517003FC87E /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 00E356F51AD99517003FC87E /* PBXTargetDependency */, + ); + name = LibrarySampleTests; + productName = LibrarySampleTests; + productReference = 00E356EE1AD99517003FC87E /* LibrarySampleTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 13B07F861A680F5B00A75B9A /* LibrarySample */ = { + isa = PBXNativeTarget; + buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "LibrarySample" */; + buildPhases = ( + 466C0AB2F678F1A1FC2B855A /* [CP] Check Pods Manifest.lock */, + FD10A7F022414F080027D42C /* Start Packager */, + 13B07F871A680F5B00A75B9A /* Sources */, + 13B07F8C1A680F5B00A75B9A /* Frameworks */, + 13B07F8E1A680F5B00A75B9A /* Resources */, + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, + 97F82987C2909C3F22E15897 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = LibrarySample; + productName = LibrarySample; + productReference = 13B07F961A680F5B00A75B9A /* LibrarySample.app */; + productType = "com.apple.product-type.application"; + }; + 2D02E47A1E0B4A5D006451C7 /* LibrarySample-tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "LibrarySample-tvOS" */; + buildPhases = ( + 49DE41524EE66FD503B489AC /* [CP] Check Pods Manifest.lock */, + FD10A7F122414F3F0027D42C /* Start Packager */, + 2D02E4771E0B4A5D006451C7 /* Sources */, + 2D02E4781E0B4A5D006451C7 /* Frameworks */, + 2D02E4791E0B4A5D006451C7 /* Resources */, + 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "LibrarySample-tvOS"; + productName = "LibrarySample-tvOS"; + productReference = 2D02E47B1E0B4A5D006451C7 /* LibrarySample-tvOS.app */; + productType = "com.apple.product-type.application"; + }; + 2D02E48F1E0B4A5D006451C7 /* LibrarySample-tvOSTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "LibrarySample-tvOSTests" */; + buildPhases = ( + DAC194288B4626AEA8B618D7 /* [CP] Check Pods Manifest.lock */, + 2D02E48C1E0B4A5D006451C7 /* Sources */, + 2D02E48D1E0B4A5D006451C7 /* Frameworks */, + 2D02E48E1E0B4A5D006451C7 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */, + ); + name = "LibrarySample-tvOSTests"; + productName = "LibrarySample-tvOSTests"; + productReference = 2D02E4901E0B4A5D006451C7 /* LibrarySample-tvOSTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 83CBB9F71A601CBA00E9B192 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0940; + ORGANIZATIONNAME = Facebook; + TargetAttributes = { + 00E356ED1AD99517003FC87E = { + CreatedOnToolsVersion = 6.2; + TestTargetID = 13B07F861A680F5B00A75B9A; + }; + 2D02E47A1E0B4A5D006451C7 = { + CreatedOnToolsVersion = 8.2.1; + ProvisioningStyle = Automatic; + }; + 2D02E48F1E0B4A5D006451C7 = { + CreatedOnToolsVersion = 8.2.1; + ProvisioningStyle = Automatic; + TestTargetID = 2D02E47A1E0B4A5D006451C7; + }; + }; + }; + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "LibrarySample" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 83CBB9F61A601CBA00E9B192; + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 13B07F861A680F5B00A75B9A /* LibrarySample */, + 00E356ED1AD99517003FC87E /* LibrarySampleTests */, + 2D02E47A1E0B4A5D006451C7 /* LibrarySample-tvOS */, + 2D02E48F1E0B4A5D006451C7 /* LibrarySample-tvOSTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 00E356EC1AD99517003FC87E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F8E1A680F5B00A75B9A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, + 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2D02E4791E0B4A5D006451C7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2D02E48E1E0B4A5D006451C7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Bundle React Native code and images"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; + }; + 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Bundle React Native Code And Images"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; + }; + 466C0AB2F678F1A1FC2B855A /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-LibrarySample-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 49DE41524EE66FD503B489AC /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-LibrarySample-tvOS-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 787D7D0467A01481362C48C1 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-LibrarySampleTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 97F82987C2909C3F22E15897 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-LibrarySample/Pods-LibrarySample-resources.sh", + "${PODS_ROOT}/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/IQKeyboardManager.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-LibrarySample/Pods-LibrarySample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + DAC194288B4626AEA8B618D7 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-LibrarySample-tvOSTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + FD10A7F022414F080027D42C /* Start Packager */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Start Packager"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; + showEnvVarsInLog = 0; + }; + FD10A7F122414F3F0027D42C /* Start Packager */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Start Packager"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 00E356EA1AD99517003FC87E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 00E356F31AD99517003FC87E /* LibrarySampleTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F871A680F5B00A75B9A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, + 13B07FC11A68108700A75B9A /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2D02E4771E0B4A5D006451C7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */, + 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2D02E48C1E0B4A5D006451C7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2DCD954D1E0B4F2C00145EB5 /* LibrarySampleTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 13B07F861A680F5B00A75B9A /* LibrarySample */; + targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; + }; + 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 2D02E47A1E0B4A5D006451C7 /* LibrarySample-tvOS */; + targetProxy = 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { + isa = PBXVariantGroup; + children = ( + 13B07FB21A68108700A75B9A /* Base */, + ); + name = LaunchScreen.xib; + path = LibrarySample; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 00E356F61AD99517003FC87E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B7A7E740F9E7650E99A2B1A1 /* Pods-LibrarySampleTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = LibrarySampleTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LibrarySample.app/LibrarySample"; + }; + name = Debug; + }; + 00E356F71AD99517003FC87E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 84C85AE0CF834040470DFCB3 /* Pods-LibrarySampleTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + COPY_PHASE_STRIP = NO; + INFOPLIST_FILE = LibrarySampleTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LibrarySample.app/LibrarySample"; + }; + name = Release; + }; + 13B07F941A680F5B00A75B9A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E780B1B7DFBCFC20931FC6FC /* Pods-LibrarySample.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = NO; + INFOPLIST_FILE = LibrarySample/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = LibrarySample; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 13B07F951A680F5B00A75B9A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E1EF9A348D27A612DDA40DE7 /* Pods-LibrarySample.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = LibrarySample/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = LibrarySample; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; + 2D02E4971E0B4A5E006451C7 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9FBFA2ABB10BD6B013FB94CC /* Pods-LibrarySample-tvOS.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "LibrarySample-tvOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.LibrarySample-tvOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 9.2; + }; + name = Debug; + }; + 2D02E4981E0B4A5E006451C7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EF695CA4921637E06715B592 /* Pods-LibrarySample-tvOS.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "LibrarySample-tvOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.LibrarySample-tvOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 9.2; + }; + name = Release; + }; + 2D02E4991E0B4A5E006451C7 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F68F18D47EFC1490A133AE30 /* Pods-LibrarySample-tvOSTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "LibrarySample-tvOSTests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.LibrarySample-tvOSTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LibrarySample-tvOS.app/LibrarySample-tvOS"; + TVOS_DEPLOYMENT_TARGET = 10.1; + }; + name = Debug; + }; + 2D02E49A1E0B4A5E006451C7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9FE8955BC2B9C719CED00C04 /* Pods-LibrarySample-tvOSTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "LibrarySample-tvOSTests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.LibrarySample-tvOSTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LibrarySample-tvOS.app/LibrarySample-tvOS"; + TVOS_DEPLOYMENT_TARGET = 10.1; + }; + name = Release; + }; + 83CBBA201A601CBA00E9B192 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 83CBBA211A601CBA00E9B192 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "LibrarySampleTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00E356F61AD99517003FC87E /* Debug */, + 00E356F71AD99517003FC87E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "LibrarySample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 13B07F941A680F5B00A75B9A /* Debug */, + 13B07F951A680F5B00A75B9A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "LibrarySample-tvOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2D02E4971E0B4A5E006451C7 /* Debug */, + 2D02E4981E0B4A5E006451C7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "LibrarySample-tvOSTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2D02E4991E0B4A5E006451C7 /* Debug */, + 2D02E49A1E0B4A5E006451C7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "LibrarySample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83CBBA201A601CBA00E9B192 /* Debug */, + 83CBBA211A601CBA00E9B192 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; +} diff --git a/Sample/ios/SampleKeyboardManager.xcodeproj/xcshareddata/xcschemes/SampleKeyboardManager-tvOS.xcscheme b/Sample/ios/LibrarySample.xcodeproj/xcshareddata/xcschemes/LibrarySample-tvOS.xcscheme similarity index 75% rename from Sample/ios/SampleKeyboardManager.xcodeproj/xcshareddata/xcschemes/SampleKeyboardManager-tvOS.xcscheme rename to Sample/ios/LibrarySample.xcodeproj/xcshareddata/xcschemes/LibrarySample-tvOS.xcscheme index 0680942..2205127 100644 --- a/Sample/ios/SampleKeyboardManager.xcodeproj/xcshareddata/xcschemes/SampleKeyboardManager-tvOS.xcscheme +++ b/Sample/ios/LibrarySample.xcodeproj/xcshareddata/xcschemes/LibrarySample-tvOS.xcscheme @@ -1,6 +1,6 @@ + BuildableName = "LibrarySample-tvOS.app" + BlueprintName = "LibrarySample-tvOS" + ReferencedContainer = "container:LibrarySample.xcodeproj"> + BuildableName = "LibrarySample-tvOSTests.xctest" + BlueprintName = "LibrarySample-tvOSTests" + ReferencedContainer = "container:LibrarySample.xcodeproj"> @@ -61,9 +61,9 @@ + BuildableName = "LibrarySample-tvOSTests.xctest" + BlueprintName = "LibrarySample-tvOSTests" + ReferencedContainer = "container:LibrarySample.xcodeproj"> @@ -71,9 +71,9 @@ + BuildableName = "LibrarySample-tvOS.app" + BlueprintName = "LibrarySample-tvOS" + ReferencedContainer = "container:LibrarySample.xcodeproj"> @@ -94,9 +94,9 @@ + BuildableName = "LibrarySample-tvOS.app" + BlueprintName = "LibrarySample-tvOS" + ReferencedContainer = "container:LibrarySample.xcodeproj"> @@ -113,9 +113,9 @@ + BuildableName = "LibrarySample-tvOS.app" + BlueprintName = "LibrarySample-tvOS" + ReferencedContainer = "container:LibrarySample.xcodeproj"> diff --git a/Sample/ios/SampleKeyboardManager.xcodeproj/xcshareddata/xcschemes/SampleKeyboardManager.xcscheme b/Sample/ios/LibrarySample.xcodeproj/xcshareddata/xcschemes/LibrarySample.xcscheme similarity index 76% rename from Sample/ios/SampleKeyboardManager.xcodeproj/xcshareddata/xcschemes/SampleKeyboardManager.xcscheme rename to Sample/ios/LibrarySample.xcodeproj/xcshareddata/xcschemes/LibrarySample.xcscheme index e238142..da9def9 100644 --- a/Sample/ios/SampleKeyboardManager.xcodeproj/xcshareddata/xcschemes/SampleKeyboardManager.xcscheme +++ b/Sample/ios/LibrarySample.xcodeproj/xcshareddata/xcschemes/LibrarySample.xcscheme @@ -1,6 +1,6 @@ + BuildableName = "LibrarySample.app" + BlueprintName = "LibrarySample" + ReferencedContainer = "container:LibrarySample.xcodeproj"> + BuildableName = "LibrarySampleTests.xctest" + BlueprintName = "LibrarySampleTests" + ReferencedContainer = "container:LibrarySample.xcodeproj"> @@ -61,9 +61,9 @@ + BuildableName = "LibrarySampleTests.xctest" + BlueprintName = "LibrarySampleTests" + ReferencedContainer = "container:LibrarySample.xcodeproj"> @@ -71,9 +71,9 @@ + BuildableName = "LibrarySample.app" + BlueprintName = "LibrarySample" + ReferencedContainer = "container:LibrarySample.xcodeproj"> @@ -94,9 +94,9 @@ + BuildableName = "LibrarySample.app" + BlueprintName = "LibrarySample" + ReferencedContainer = "container:LibrarySample.xcodeproj"> @@ -113,9 +113,9 @@ + BuildableName = "LibrarySample.app" + BlueprintName = "LibrarySample" + ReferencedContainer = "container:LibrarySample.xcodeproj"> diff --git a/SamplePod/ios/SampleKeyboardManager.xcworkspace/contents.xcworkspacedata b/Sample/ios/LibrarySample.xcworkspace/contents.xcworkspacedata similarity index 75% rename from SamplePod/ios/SampleKeyboardManager.xcworkspace/contents.xcworkspacedata rename to Sample/ios/LibrarySample.xcworkspace/contents.xcworkspacedata index b3b9701..85c39c6 100644 --- a/SamplePod/ios/SampleKeyboardManager.xcworkspace/contents.xcworkspacedata +++ b/Sample/ios/LibrarySample.xcworkspace/contents.xcworkspacedata @@ -2,7 +2,7 @@ + location = "group:LibrarySample.xcodeproj"> diff --git a/SamplePod/ios/SampleKeyboardManager.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Sample/ios/LibrarySample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from SamplePod/ios/SampleKeyboardManager.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to Sample/ios/LibrarySample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/Sample/ios/LibrarySample/AppDelegate.h b/Sample/ios/LibrarySample/AppDelegate.h new file mode 100644 index 0000000..2726d5e --- /dev/null +++ b/Sample/ios/LibrarySample/AppDelegate.h @@ -0,0 +1,15 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#import +#import + +@interface AppDelegate : UIResponder + +@property (nonatomic, strong) UIWindow *window; + +@end diff --git a/Sample/ios/LibrarySample/AppDelegate.m b/Sample/ios/LibrarySample/AppDelegate.m new file mode 100644 index 0000000..033e23f --- /dev/null +++ b/Sample/ios/LibrarySample/AppDelegate.m @@ -0,0 +1,42 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#import "AppDelegate.h" + +#import +#import +#import + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; + RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge + moduleName:@"LibrarySample" + initialProperties:nil]; + + rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; + + self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; + UIViewController *rootViewController = [UIViewController new]; + rootViewController.view = rootView; + self.window.rootViewController = rootViewController; + [self.window makeKeyAndVisible]; + return YES; +} + +- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge +{ +#if DEBUG + return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; +#else + return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; +#endif +} + +@end diff --git a/Sample/ios/SampleKeyboardManager/Base.lproj/LaunchScreen.xib b/Sample/ios/LibrarySample/Base.lproj/LaunchScreen.xib similarity index 93% rename from Sample/ios/SampleKeyboardManager/Base.lproj/LaunchScreen.xib rename to Sample/ios/LibrarySample/Base.lproj/LaunchScreen.xib index e9a736d..ec55069 100644 --- a/Sample/ios/SampleKeyboardManager/Base.lproj/LaunchScreen.xib +++ b/Sample/ios/LibrarySample/Base.lproj/LaunchScreen.xib @@ -18,7 +18,7 @@ -