소스 검색

Merge branch 'master' into master

iou90 4 년 전
부모
커밋
58e63fc260
No account linked to committer's email address

+ 9
- 181
.eslintrc.js 파일 보기

@@ -1,184 +1,12 @@
1 1
 module.exports = {
2
-  env: {
3
-    es6: true
4
-  },
5
-
6
-  parser: 'babel-eslint',
7
-
8
-  plugins: ['react', 'react-hooks', 'jsx', 'react-native'],
9
-
2
+  root: true,
3
+  extends: '@react-native-community',
10 4
   rules: {
11
-    // General
12
-    'no-cond-assign': 1, // disallow assignment in conditional expressions
13
-    'no-console': 0, // disallow use of console (off by default in the node environment)
14
-    'no-const-assign': 2, // disallow assignment to const-declared variables
15
-    'no-constant-condition': 0, // disallow use of constant expressions in conditions
16
-    'no-control-regex': 1, // disallow control characters in regular expressions
17
-    'no-debugger': 1, // disallow use of debugger
18
-    'no-dupe-class-members': 2, // Disallow duplicate name in class members
19
-    'no-dupe-keys': 2, // disallow duplicate keys when creating object literals
20
-    'no-empty': 0, // disallow empty statements
21
-    'no-ex-assign': 1, // disallow assigning to the exception in a catch block
22
-    'no-extra-boolean-cast': 1, // disallow double-negation boolean casts in a boolean context
23
-    'no-extra-parens': 0, // disallow unnecessary parentheses (off by default)
24
-    'no-extra-semi': 1, // disallow unnecessary semicolons
25
-    'no-func-assign': 1, // disallow overwriting functions written as function declarations
26
-    'no-inner-declarations': 0, // disallow function or variable declarations in nested blocks
27
-    'no-invalid-regexp': 1, // disallow invalid regular expression strings in the RegExp constructor
28
-    'no-negated-in-lhs': 1, // disallow negation of the left operand of an in expression
29
-    'no-obj-calls': 1, // disallow the use of object properties of the global object (Math and JSON) as functions
30
-    'no-regex-spaces': 1, // disallow multiple spaces in a regular expression literal
31
-    'no-reserved-keys': 0, // disallow reserved words being used as object literal keys (off by default)
32
-    'no-sparse-arrays': 1, // disallow sparse arrays
33
-    'no-unreachable': 2, // disallow unreachable statements after a return, throw, continue, or break statement
34
-    'use-isnan': 1, // disallow comparisons with the value NaN
35
-    'valid-jsdoc': 0, // Ensure JSDoc comments are valid (off by default)
36
-    'valid-typeof': 1, // Ensure that the results of typeof are compared against a valid string
37
-
38
-    // Best Practices
39
-    // These are rules designed to prevent you from making mistakes. They either prescribe a better way of doing something or help you avoid footguns.
40
-    'block-scoped-var': 0, // treat var statements as if they were block scoped (off by default)
41
-    complexity: 0, // specify the maximum cyclomatic complexity allowed in a program (off by default)
42
-    'consistent-return': 0, // require return statements to either always or never specify values
43
-    curly: 1, // specify curly brace conventions for all control statements
44
-    'default-case': 0, // require default case in switch statements (off by default)
45
-    'dot-notation': 1, // encourages use of dot notation whenever possible
46
-    eqeqeq: [1, 'allow-null'], // require the use of === and !==
47
-    'guard-for-in': 0, // make sure for-in loops have an if statement (off by default)
48
-    'no-alert': 1, // disallow the use of alert, confirm, and prompt
49
-    'no-caller': 1, // disallow use of arguments.caller or arguments.callee
50
-    'no-div-regex': 1, // disallow division operators explicitly at beginning of regular expression (off by default)
51
-    'no-else-return': 0, // disallow else after a return in an if (off by default)
52
-    'no-eq-null': 0, // disallow comparisons to null without a type-checking operator (off by default)
53
-    'no-eval': 2, // disallow use of eval()
54
-    'no-extend-native': 1, // disallow adding to native types
55
-    'no-extra-bind': 1, // disallow unnecessary function binding
56
-    'no-fallthrough': 1, // disallow fallthrough of case statements
57
-    'no-floating-decimal': 1, // disallow the use of leading or trailing decimal points in numeric literals (off by default)
58
-    'no-implied-eval': 1, // disallow use of eval()-like methods
59
-    'no-labels': 1, // disallow use of labeled statements
60
-    'no-iterator': 1, // disallow usage of __iterator__ property
61
-    'no-lone-blocks': 1, // disallow unnecessary nested blocks
62
-    'no-loop-func': 0, // disallow creation of functions within loops
63
-    'no-multi-str': 0, // disallow use of multiline strings
64
-    'no-native-reassign': 0, // disallow reassignments of native objects
65
-    'no-new': 1, // disallow use of new operator when not part of the assignment or comparison
66
-    'no-new-func': 2, // disallow use of new operator for Function object
67
-    'no-new-wrappers': 1, // disallows creating new instances of String,Number, and Boolean
68
-    'no-octal': 1, // disallow use of octal literals
69
-    'no-octal-escape': 1, // disallow use of octal escape sequences in string literals, such as var foo = "Copyright \251";
70
-    'no-proto': 1, // disallow usage of __proto__ property
71
-    'no-redeclare': 0, // disallow declaring the same variable more then once
72
-    'no-return-assign': 1, // disallow use of assignment in return statement
73
-    'no-script-url': 1, // disallow use of javascript: urls.
74
-    'no-self-compare': 1, // disallow comparisons where both sides are exactly the same (off by default)
75
-    'no-sequences': 1, // disallow use of comma operator
76
-    'no-unused-expressions': 0, // disallow usage of expressions in statement position
77
-    'no-void': 1, // disallow use of void operator (off by default)
78
-    'no-warning-comments': 0, // disallow usage of configurable warning terms in comments": 1,                        // e.g. TODO or FIXME (off by default)
79
-    'no-with': 1, // disallow use of the with statement
80
-    radix: 1, // require use of the second argument for parseInt() (off by default)
81
-    'semi-spacing': 1, // require a space after a semi-colon
82
-    'vars-on-top': 0, // requires to declare all vars on top of their containing scope (off by default)
83
-    'wrap-iife': 0, // require immediate function invocation to be wrapped in parentheses (off by default)
84
-    yoda: 1, // require or disallow Yoda conditions
85
-
86
-    // Variables
87
-    // These rules have to do with variable declarations.
88
-    'no-catch-shadow': 1, // disallow the catch clause parameter name being the same as a variable in the outer scope (off by default in the node environment)
89
-    'no-delete-var': 1, // disallow deletion of variables
90
-    'no-label-var': 1, // disallow labels that share a name with a variable
91
-    'no-shadow': 1, // disallow declaration of variables already declared in the outer scope
92
-    'no-shadow-restricted-names': 1, // disallow shadowing of names such as arguments
93
-    'no-undef': 2, // disallow use of undeclared variables unless mentioned in a /*global */ block
94
-    'no-undefined': 0, // disallow use of undefined variable (off by default)
95
-    'no-undef-init': 1, // disallow use of undefined when initializing variables
96
-    'no-unused-vars': [1, { vars: 'all', args: 'none', ignoreRestSiblings: true }], // disallow declaration of variables that are not used in the code
97
-    'no-use-before-define': 0, // disallow use of variables before they are defined
98
-
99
-    // Node.js
100
-    // These rules are specific to JavaScript running on Node.js.
101
-    'handle-callback-err': 1, // enforces error handling in callbacks (off by default) (on by default in the node environment)
102
-    'no-mixed-requires': 1, // disallow mixing regular variable and require declarations (off by default) (on by default in the node environment)
103
-    'no-new-require': 1, // disallow use of new operator with the require function (off by default) (on by default in the node environment)
104
-    'no-path-concat': 1, // disallow string concatenation with __dirname and __filename (off by default) (on by default in the node environment)
105
-    'no-process-exit': 0, // disallow process.exit() (on by default in the node environment)
106
-    'no-restricted-modules': 1, // restrict usage of specified node modules (off by default)
107
-    'no-sync': 0, // disallow use of synchronous methods (off by default)
108
-
109
-    // Stylistic Issues
110
-    // These rules are purely matters of style and are quite subjective.
111
-    'key-spacing': 0,
112
-    'keyword-spacing': 1, // enforce spacing before and after keywords
113
-    'jsx-quotes': [1, 'prefer-double'], // enforces the usage of double quotes for all JSX attribute values which doesn’t contain a double quote
114
-    'comma-spacing': 0,
115
-    'no-multi-spaces': 0,
116
-    'brace-style': 0, // enforce one true brace style (off by default)
117
-    camelcase: 0, // require camel case names
118
-    'consistent-this': 1, // enforces consistent naming when capturing the current execution context (off by default)
119
-    'eol-last': 1, // enforce newline at the end of file, with no multiple empty lines
120
-    'func-names': 0, // require function expressions to have a name (off by default)
121
-    'func-style': 0, // enforces use of function declarations or expressions (off by default)
122
-    'new-cap': 0, // require a capital letter for constructors
123
-    'new-parens': 1, // disallow the omission of parentheses when invoking a constructor with no arguments
124
-    'no-nested-ternary': 0, // disallow nested ternary expressions (off by default)
125
-    'no-array-constructor': 1, // disallow use of the Array constructor
126
-    'no-empty-character-class': 1, // disallow the use of empty character classes in regular expressions
127
-    'no-lonely-if': 0, // disallow if as the only statement in an else block (off by default)
128
-    'no-new-object': 1, // disallow use of the Object constructor
129
-    'no-spaced-func': 1, // disallow space between function identifier and application
130
-    'no-ternary': 0, // disallow the use of ternary operators (off by default)
131
-    'no-trailing-spaces': 1, // disallow trailing whitespace at the end of lines
132
-    'no-underscore-dangle': 0, // disallow dangling underscores in identifiers
133
-    'no-mixed-spaces-and-tabs': 1, // disallow mixed spaces and tabs for indentation
134
-    quotes: [1, 'single', 'avoid-escape'], // specify whether double or single quotes should be used
135
-    'quote-props': 0, // require quotes around object literal property names (off by default)
136
-    semi: 1, // require or disallow use of semicolons instead of ASI
137
-    'sort-vars': 0, // sort variables within the same declaration block (off by default)
138
-    'space-in-brackets': 0, // require or disallow spaces inside brackets (off by default)
139
-    'space-in-parens': 0, // require or disallow spaces inside parentheses (off by default)
140
-    'space-infix-ops': 1, // require spaces around operators
141
-    'space-unary-ops': [1, { words: true, nonwords: false }], // require or disallow spaces before/after unary operators (words on by default, nonwords off by default)
142
-    'max-nested-callbacks': 0, // specify the maximum depth callbacks can be nested (off by default)
143
-    'one-var': 0, // allow just one var statement per function (off by default)
144
-    'wrap-regex': 0, // require regex literals to be wrapped in parentheses (off by default)
145
-
146
-    // Legacy
147
-    // The following rules are included for compatibility with JSHint and JSLint. While the names of the rules may not match up with the JSHint/JSLint counterpart, the functionality is the same.
148
-    'max-depth': 0, // specify the maximum depth that blocks can be nested (off by default)
149
-    'max-len': 0, // specify the maximum length of a line in your program (off by default)
150
-    'max-params': 0, // limits the number of parameters that can be used in the function declaration. (off by default)
151
-    'max-statements': 0, // specify the maximum number of statement allowed in a function (off by default)
152
-    'no-bitwise': 1, // disallow use of bitwise operators (off by default)
153
-    'no-plusplus': 0, // disallow use of unary operators, ++ and -- (off by default)
154
-
155
-    // React Plugin
156
-    // The following rules are made available via `eslint-plugin-react`.
157
-    'react/display-name': 0,
158
-    'react/jsx-boolean-value': 0,
159
-    'react/jsx-no-comment-textnodes': 1,
160
-    'react/jsx-no-duplicate-props': 2,
161
-    'react/jsx-no-undef': 2,
162
-    'react/jsx-sort-props': 0,
163
-    'react/jsx-uses-react': 1,
164
-    'react/jsx-uses-vars': 1,
165
-    'react/no-did-mount-set-state': 1,
166
-    'react/no-did-update-set-state': 1,
167
-    'react/no-multi-comp': 0,
168
-    'react/no-string-refs': 1,
169
-    'react/no-unknown-property': 0,
170
-    'react/prop-types': 0,
171
-    'react/react-in-jsx-scope': 1,
172
-    'react/self-closing-comp': 1,
173
-    'react/wrap-multilines': 0,
174
-
175
-    // React-Hooks Plugin
176
-    // The following rules are made available via `eslint-plugin-react-hooks`
177
-    'react-hooks/rules-of-hooks': 'error',
178
-    'react-hooks/exhaustive-deps': 'error',
179
-
180
-    // React-Native Plugin
181
-    // The following rules are made available via `eslint-plugin-react-native`
182
-    'react-native/no-inline-styles': 1
5
+    'prettier/prettier': [
6
+      {
7
+        singleQuote: true
8
+      }
9
+    ],
10
+    'comma-dangle': 'off'
183 11
   }
184
-};
12
+};

+ 1
- 1
README.md 파일 보기

@@ -52,7 +52,7 @@ import AutoHeightWebView from 'react-native-autoheight-webview'
52 52
     // 'file:///android_asset/web/' by default on Android
53 53
     // or uri
54 54
     source={{ html: `<p style="font-weight: 400;font-style: normal;font-size: 21px;line-height: 1.58;letter-spacing: -.003em;">Tags are great for describing the essence of your story in a single word or phrase, but stories are rarely about a single thing. <span style="background-color: transparent !important;background-image: linear-gradient(to bottom, rgba(146, 249, 190, 1), rgba(146, 249, 190, 1));">If I pen a story about moving across the country to start a new job in a car with my husband, two cats, a dog, and a tarantula, I wouldn’t only tag the piece with “moving”. I’d also use the tags “pets”, “marriage”, “career change”, and “travel tips”.</span></p>` }}
55
-    // disables zoom on ios (true by default)
55
+    // disables zoom (true by default on iOS, false by default on android)
56 56
     zoomable={false}
57 57
     /*
58 58
     other react-native-webview props

+ 1
- 0
autoHeightWebView/index.js 파일 보기

@@ -120,6 +120,7 @@ let defaultProps = {
120 120
 
121 121
 Platform.OS === 'android' &&
122 122
   Object.assign(defaultProps, {
123
+    zoomable: false,
123 124
     // if set to true may cause some layout issues (width of container will be than width of screen) on android
124 125
     scalesPageToFit: false
125 126
   });

+ 3
- 5
autoHeightWebView/utils.js 파일 보기

@@ -27,10 +27,8 @@ const updateSizeWithMessage = element =>
27 27
       setTimeout(updateSize, 200);
28 28
       return;
29 29
     }
30
-    
31
-    var height = ${element}.offsetHeight || window.innerHeight;
32
-    var width = ${element}.offsetWidth || window.innerWidth;
33
-
30
+    height = ${element}.offsetHeight || document.documentElement.offsetHeight;
31
+    width = ${element}.offsetWidth || document.documentElement.offsetWidth;
34 32
     window.ReactNativeWebView.postMessage(JSON.stringify({ width: width, height: height }));
35 33
 
36 34
     // Make additional height checks (required to fix issues wit twitter embeds)
@@ -76,7 +74,7 @@ const getBaseScript = ({ style, zoomable }) =>
76 74
   window.addEventListener('load', updateSize);
77 75
   window.addEventListener('resize', updateSize);
78 76
   ${domMutationObserveScript}
79
-  ${Platform.OS === 'ios' ? makeScalePageToFit(zoomable) : ''}
77
+  ${makeScalePageToFit(zoomable)}
80 78
   updateSize();
81 79
   `;
82 80
 

+ 5
- 29
demo/.flowconfig 파일 보기

@@ -5,14 +5,6 @@
5 5
 ; Ignore "BUCK" generated dirs
6 6
 <PROJECT_ROOT>/\.buckd/
7 7
 
8
-; Ignore unexpected extra "@providesModule"
9
-.*/node_modules/.*/node_modules/fbjs/.*
10
-
11
-; Ignore duplicate module providers
12
-; For RN Apps installed via npm, "Libraries" folder is inside
13
-; "node_modules/react-native" but in the source repo it is in the root
14
-node_modules/react-native/Libraries/react-native/React.js
15
-
16 8
 ; Ignore polyfills
17 9
 node_modules/react-native/Libraries/polyfills/.*
18 10
 
@@ -21,7 +13,7 @@ node_modules/react-native/Libraries/polyfills/.*
21 13
 node_modules/warning/.*
22 14
 
23 15
 ; Flow doesn't support platforms
24
-.*/Libraries/Utilities/HMRLoadingView.js
16
+.*/Libraries/Utilities/LoadingView.js
25 17
 
26 18
 [untyped]
27 19
 .*/node_modules/@react-native-community/cli/.*/.*
@@ -42,27 +34,11 @@ module.file_ext=.js
42 34
 module.file_ext=.json
43 35
 module.file_ext=.ios.js
44 36
 
45
-module.system=haste
46
-module.system.haste.use_name_reducers=true
47
-# get basename
48
-module.system.haste.name_reducers='^.*/\([a-zA-Z0-9$_.-]+\.js\(\.flow\)?\)$' -> '\1'
49
-# strip .js or .js.flow suffix
50
-module.system.haste.name_reducers='^\(.*\)\.js\(\.flow\)?$' -> '\1'
51
-# strip .ios suffix
52
-module.system.haste.name_reducers='^\(.*\)\.ios$' -> '\1'
53
-module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1'
54
-module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
55
-module.system.haste.paths.blacklist=.*/__tests__/.*
56
-module.system.haste.paths.blacklist=.*/__mocks__/.*
57
-module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/Libraries/.*
58
-module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/RNTester/.*
59
-module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/IntegrationTests/.*
60
-module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/react-native/react-native-implementation.js
61
-module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/Animated/src/polyfills/.*
62
-
63 37
 munge_underscores=true
64 38
 
65
-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'
39
+module.name_mapper='^react-native$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/react-native/react-native-implementation'
40
+module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1'
41
+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\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub'
66 42
 
67 43
 suppress_type=$FlowIssue
68 44
 suppress_type=$FlowFixMe
@@ -96,4 +72,4 @@ untyped-import
96 72
 untyped-type-import
97 73
 
98 74
 [version]
99
-^0.98.0
75
+^0.105.0

+ 1
- 1
demo/.gitignore 파일 보기

@@ -20,7 +20,6 @@ DerivedData
20 20
 *.hmap
21 21
 *.ipa
22 22
 *.xcuserstate
23
-project.xcworkspace
24 23
 
25 24
 # Android/IntelliJ
26 25
 #
@@ -40,6 +39,7 @@ yarn-error.log
40 39
 buck-out/
41 40
 \.buckd/
42 41
 *.keystore
42
+!debug.keystore
43 43
 
44 44
 # fastlane
45 45
 #

+ 6
- 0
demo/.prettierrc.js 파일 보기

@@ -0,0 +1,6 @@
1
+module.exports = {
2
+  bracketSpacing: false,
3
+  jsxBracketSameLine: true,
4
+  singleQuote: true,
5
+  trailingComma: 'all',
6
+};

demo/android/app/BUCK → demo/android/app/_BUCK 파일 보기


+ 27
- 11
demo/android/app/build.gradle 파일 보기

@@ -76,7 +76,8 @@ import com.android.build.OutputFile
76 76
  */
77 77
 
78 78
 project.ext.react = [
79
-    entryFile: "index.js"
79
+    entryFile: "index.js",
80
+    enableHermes: false,  // clean and rebuild if changing
80 81
 ]
81 82
 
82 83
 apply from: "../../node_modules/react-native/react.gradle"
@@ -97,13 +98,26 @@ def enableSeparateBuildPerCPUArchitecture = false
97 98
 def enableProguardInReleaseBuilds = false
98 99
 
99 100
 /**
100
- * Use international variant JavaScriptCore
101
- * International variant includes ICU i18n library and necessary data allowing to use
102
- * e.g. Date.toLocaleString and String.localeCompare that give correct results
103
- * when using with locales other than en-US.
104
- * Note that this variant is about 6MiB larger per architecture than default.
101
+ * The preferred build flavor of JavaScriptCore.
102
+ *
103
+ * For example, to use the international variant, you can use:
104
+ * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
105
+ *
106
+ * The international variant includes ICU i18n library and necessary data
107
+ * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
108
+ * give correct results when using with locales other than en-US.  Note that
109
+ * this variant is about 6MiB larger per architecture than default.
105 110
  */
106
-def useIntlJsc = false
111
+def jscFlavor = 'org.webkit:android-jsc:+'
112
+
113
+/**
114
+ * Whether to enable the Hermes VM.
115
+ *
116
+ * This should be set on project.ext.react and mirrored here.  If it is not set
117
+ * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
118
+ * and the benefits of using Hermes will therefore be sharply reduced.
119
+ */
120
+def enableHermes = project.ext.react.get("enableHermes", false);
107 121
 
108 122
 android {
109 123
     compileSdkVersion rootProject.ext.compileSdkVersion
@@ -159,6 +173,7 @@ android {
159 173
                 output.versionCodeOverride =
160 174
                         versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
161 175
             }
176
+
162 177
         }
163 178
     }
164 179
 }
@@ -168,11 +183,12 @@ dependencies {
168 183
     implementation fileTree(dir: "libs", include: ["*.jar"])
169 184
     implementation "com.facebook.react:react-native:+"  // From node_modules
170 185
 
171
-    // JSC from node_modules
172
-    if (useIntlJsc) {
173
-        implementation 'org.webkit:android-jsc-intl:+'
186
+    if (enableHermes) {
187
+        def hermesPath = "../../node_modules/hermes-engine/android/";
188
+        debugImplementation files(hermesPath + "hermes-debug.aar")
189
+        releaseImplementation files(hermesPath + "hermes-release.aar")
174 190
     } else {
175
-        implementation 'org.webkit:android-jsc:+'
191
+        implementation jscFlavor
176 192
     }
177 193
 }
178 194
 

BIN
demo/android/app/debug.keystore 파일 보기


+ 8
- 8
demo/android/app/src/main/java/com/demo/MainActivity.java 파일 보기

@@ -4,12 +4,12 @@ import com.facebook.react.ReactActivity;
4 4
 
5 5
 public class MainActivity extends ReactActivity {
6 6
 
7
-    /**
8
-     * Returns the name of the main component registered from JavaScript.
9
-     * This is used to schedule rendering of the component.
10
-     */
11
-    @Override
12
-    protected String getMainComponentName() {
13
-        return "demo";
14
-    }
7
+  /**
8
+   * Returns the name of the main component registered from JavaScript. This is used to schedule
9
+   * rendering of the component.
10
+   */
11
+  @Override
12
+  protected String getMainComponentName() {
13
+    return "demo";
14
+  }
15 15
 }

+ 48
- 20
demo/android/app/src/main/java/com/demo/MainApplication.java 파일 보기

@@ -1,38 +1,39 @@
1 1
 package com.demo;
2 2
 
3 3
 import android.app.Application;
4
-
4
+import android.content.Context;
5 5
 import com.facebook.react.PackageList;
6 6
 import com.facebook.react.ReactApplication;
7 7
 import com.reactnativecommunity.webview.RNCWebViewPackage;
8 8
 import com.facebook.react.ReactNativeHost;
9 9
 import com.facebook.react.ReactPackage;
10 10
 import com.facebook.soloader.SoLoader;
11
-
11
+import java.lang.reflect.InvocationTargetException;
12 12
 import java.util.List;
13 13
 
14 14
 public class MainApplication extends Application implements ReactApplication {
15 15
 
16
-  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
17
-    @Override
18
-    public boolean getUseDeveloperSupport() {
19
-      return BuildConfig.DEBUG;
20
-    }
16
+  private final ReactNativeHost mReactNativeHost =
17
+      new ReactNativeHost(this) {
18
+        @Override
19
+        public boolean getUseDeveloperSupport() {
20
+          return BuildConfig.DEBUG;
21
+        }
21 22
 
22
-    @Override
23
-    protected List<ReactPackage> getPackages() {
24
-      @SuppressWarnings("UnnecessaryLocalVariable")
25
-      List<ReactPackage> packages = new PackageList(this).getPackages();
26
-      // Packages that cannot be autolinked yet can be added manually here, for example:
27
-      // packages.add(new MyReactNativePackage());
28
-      return packages;
29
-    }
23
+        @Override
24
+        protected List<ReactPackage> getPackages() {
25
+          @SuppressWarnings("UnnecessaryLocalVariable")
26
+          List<ReactPackage> packages = new PackageList(this).getPackages();
27
+          // Packages that cannot be autolinked yet can be added manually here, for example:
28
+          // packages.add(new MyReactNativePackage());
29
+          return packages;
30
+        }
30 31
 
31
-    @Override
32
-    protected String getJSMainModuleName() {
33
-      return "index";
34
-    }
35
-  };
32
+        @Override
33
+        protected String getJSMainModuleName() {
34
+          return "index";
35
+        }
36
+      };
36 37
 
37 38
   @Override
38 39
   public ReactNativeHost getReactNativeHost() {
@@ -43,5 +44,32 @@ public class MainApplication extends Application implements ReactApplication {
43 44
   public void onCreate() {
44 45
     super.onCreate();
45 46
     SoLoader.init(this, /* native exopackage */ false);
47
+    initializeFlipper(this); // Remove this line if you don't want Flipper enabled
48
+  }
49
+
50
+  /**
51
+   * Loads Flipper in React Native templates.
52
+   *
53
+   * @param context
54
+   */
55
+  private static void initializeFlipper(Context context) {
56
+    if (BuildConfig.DEBUG) {
57
+      try {
58
+        /*
59
+         We use reflection here to pick up the class that initializes Flipper,
60
+        since Flipper library is not available in release mode
61
+        */
62
+        Class<?> aClass = Class.forName("com.facebook.flipper.ReactNativeFlipper");
63
+        aClass.getMethod("initializeFlipper", Context.class).invoke(null, context);
64
+      } catch (ClassNotFoundException e) {
65
+        e.printStackTrace();
66
+      } catch (NoSuchMethodException e) {
67
+        e.printStackTrace();
68
+      } catch (IllegalAccessException e) {
69
+        e.printStackTrace();
70
+      } catch (InvocationTargetException e) {
71
+        e.printStackTrace();
72
+      }
73
+    }
46 74
   }
47 75
 }

+ 2
- 2
demo/android/build.gradle 파일 보기

@@ -6,14 +6,13 @@ buildscript {
6 6
         minSdkVersion = 16
7 7
         compileSdkVersion = 28
8 8
         targetSdkVersion = 28
9
-        supportLibVersion = "28.0.0"
10 9
     }
11 10
     repositories {
12 11
         google()
13 12
         jcenter()
14 13
     }
15 14
     dependencies {
16
-        classpath("com.android.tools.build:gradle:3.4.1")
15
+        classpath("com.android.tools.build:gradle:3.4.2")
17 16
 
18 17
         // NOTE: Do not place your application dependencies here; they belong
19 18
         // in the individual module build.gradle files
@@ -34,5 +33,6 @@ allprojects {
34 33
 
35 34
         google()
36 35
         jcenter()
36
+        maven { url 'https://jitpack.io' }
37 37
     }
38 38
 }

+ 1
- 1
demo/android/gradle/wrapper/gradle-wrapper.properties 파일 보기

@@ -1,5 +1,5 @@
1 1
 distributionBase=GRADLE_USER_HOME
2 2
 distributionPath=wrapper/dists
3
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
3
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.5-all.zip
4 4
 zipStoreBase=GRADLE_USER_HOME
5 5
 zipStorePath=wrapper/dists

+ 11
- 6
demo/ios/Podfile 파일 보기

@@ -3,10 +3,14 @@ require_relative '../node_modules/@react-native-community/cli-platform-ios/nativ
3 3
 
4 4
 target 'demo' do
5 5
   # Pods for demo
6
+  pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"
7
+  pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec"
8
+  pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired"
9
+  pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety"
6 10
   pod 'React', :path => '../node_modules/react-native/'
7
-  pod 'React-Core', :path => '../node_modules/react-native/React'
8
-  pod 'React-DevSupport', :path => '../node_modules/react-native/React'
9
-  pod 'React-fishhook', :path => '../node_modules/react-native/Libraries/fishhook'
11
+  pod 'React-Core', :path => '../node_modules/react-native/'
12
+  pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules'
13
+  pod 'React-Core/DevSupport', :path => '../node_modules/react-native/'
10 14
   pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
11 15
   pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
12 16
   pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
@@ -16,19 +20,20 @@ target 'demo' do
16 20
   pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
17 21
   pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
18 22
   pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
19
-  pod 'React-RCTWebSocket', :path => '../node_modules/react-native/Libraries/WebSocket'
23
+  pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/'
20 24
 
21 25
   pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
22 26
   pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
23 27
   pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
24 28
   pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
25
-  pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
29
+  pod 'ReactCommon/jscallinvoker', :path => "../node_modules/react-native/ReactCommon"
30
+  pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"
31
+  pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
26 32
 
27 33
   pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
28 34
   pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
29 35
   pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
30 36
 
31
-
32 37
   pod 'react-native-webview', :path => '../node_modules/react-native-webview'
33 38
 
34 39
   target 'demoTests' do

+ 244
- 93
demo/ios/Podfile.lock 파일 보기

@@ -1,6 +1,14 @@
1 1
 PODS:
2 2
   - boost-for-react-native (1.63.0)
3 3
   - DoubleConversion (1.1.6)
4
+  - FBLazyVector (0.61.3)
5
+  - FBReactNativeSpec (0.61.3):
6
+    - Folly (= 2018.10.22.00)
7
+    - RCTRequired (= 0.61.3)
8
+    - RCTTypeSafety (= 0.61.3)
9
+    - React-Core (= 0.61.3)
10
+    - React-jsi (= 0.61.3)
11
+    - ReactCommon/turbomodule/core (= 0.61.3)
4 12
   - Folly (2018.10.22.00):
5 13
     - boost-for-react-native
6 14
     - DoubleConversion
@@ -11,89 +19,222 @@ PODS:
11 19
     - DoubleConversion
12 20
     - glog
13 21
   - glog (0.3.5)
14
-  - React (0.60.0):
15
-    - React-Core (= 0.60.0)
16
-    - React-DevSupport (= 0.60.0)
17
-    - React-RCTActionSheet (= 0.60.0)
18
-    - React-RCTAnimation (= 0.60.0)
19
-    - React-RCTBlob (= 0.60.0)
20
-    - React-RCTImage (= 0.60.0)
21
-    - React-RCTLinking (= 0.60.0)
22
-    - React-RCTNetwork (= 0.60.0)
23
-    - React-RCTSettings (= 0.60.0)
24
-    - React-RCTText (= 0.60.0)
25
-    - React-RCTVibration (= 0.60.0)
26
-    - React-RCTWebSocket (= 0.60.0)
27
-  - React-Core (0.60.0):
28
-    - Folly (= 2018.10.22.00)
29
-    - React-cxxreact (= 0.60.0)
30
-    - React-jsiexecutor (= 0.60.0)
31
-    - yoga (= 0.60.0.React)
32
-  - React-cxxreact (0.60.0):
22
+  - RCTRequired (0.61.3)
23
+  - RCTTypeSafety (0.61.3):
24
+    - FBLazyVector (= 0.61.3)
25
+    - Folly (= 2018.10.22.00)
26
+    - RCTRequired (= 0.61.3)
27
+    - React-Core (= 0.61.3)
28
+  - React (0.61.3):
29
+    - React-Core (= 0.61.3)
30
+    - React-Core/DevSupport (= 0.61.3)
31
+    - React-Core/RCTWebSocket (= 0.61.3)
32
+    - React-RCTActionSheet (= 0.61.3)
33
+    - React-RCTAnimation (= 0.61.3)
34
+    - React-RCTBlob (= 0.61.3)
35
+    - React-RCTImage (= 0.61.3)
36
+    - React-RCTLinking (= 0.61.3)
37
+    - React-RCTNetwork (= 0.61.3)
38
+    - React-RCTSettings (= 0.61.3)
39
+    - React-RCTText (= 0.61.3)
40
+    - React-RCTVibration (= 0.61.3)
41
+  - React-Core (0.61.3):
42
+    - Folly (= 2018.10.22.00)
43
+    - glog
44
+    - React-Core/Default (= 0.61.3)
45
+    - React-cxxreact (= 0.61.3)
46
+    - React-jsi (= 0.61.3)
47
+    - React-jsiexecutor (= 0.61.3)
48
+    - Yoga
49
+  - React-Core/CoreModulesHeaders (0.61.3):
50
+    - Folly (= 2018.10.22.00)
51
+    - glog
52
+    - React-Core/Default
53
+    - React-cxxreact (= 0.61.3)
54
+    - React-jsi (= 0.61.3)
55
+    - React-jsiexecutor (= 0.61.3)
56
+    - Yoga
57
+  - React-Core/Default (0.61.3):
58
+    - Folly (= 2018.10.22.00)
59
+    - glog
60
+    - React-cxxreact (= 0.61.3)
61
+    - React-jsi (= 0.61.3)
62
+    - React-jsiexecutor (= 0.61.3)
63
+    - Yoga
64
+  - React-Core/DevSupport (0.61.3):
65
+    - Folly (= 2018.10.22.00)
66
+    - glog
67
+    - React-Core/Default (= 0.61.3)
68
+    - React-Core/RCTWebSocket (= 0.61.3)
69
+    - React-cxxreact (= 0.61.3)
70
+    - React-jsi (= 0.61.3)
71
+    - React-jsiexecutor (= 0.61.3)
72
+    - React-jsinspector (= 0.61.3)
73
+    - Yoga
74
+  - React-Core/RCTActionSheetHeaders (0.61.3):
75
+    - Folly (= 2018.10.22.00)
76
+    - glog
77
+    - React-Core/Default
78
+    - React-cxxreact (= 0.61.3)
79
+    - React-jsi (= 0.61.3)
80
+    - React-jsiexecutor (= 0.61.3)
81
+    - Yoga
82
+  - React-Core/RCTAnimationHeaders (0.61.3):
83
+    - Folly (= 2018.10.22.00)
84
+    - glog
85
+    - React-Core/Default
86
+    - React-cxxreact (= 0.61.3)
87
+    - React-jsi (= 0.61.3)
88
+    - React-jsiexecutor (= 0.61.3)
89
+    - Yoga
90
+  - React-Core/RCTBlobHeaders (0.61.3):
91
+    - Folly (= 2018.10.22.00)
92
+    - glog
93
+    - React-Core/Default
94
+    - React-cxxreact (= 0.61.3)
95
+    - React-jsi (= 0.61.3)
96
+    - React-jsiexecutor (= 0.61.3)
97
+    - Yoga
98
+  - React-Core/RCTImageHeaders (0.61.3):
99
+    - Folly (= 2018.10.22.00)
100
+    - glog
101
+    - React-Core/Default
102
+    - React-cxxreact (= 0.61.3)
103
+    - React-jsi (= 0.61.3)
104
+    - React-jsiexecutor (= 0.61.3)
105
+    - Yoga
106
+  - React-Core/RCTLinkingHeaders (0.61.3):
107
+    - Folly (= 2018.10.22.00)
108
+    - glog
109
+    - React-Core/Default
110
+    - React-cxxreact (= 0.61.3)
111
+    - React-jsi (= 0.61.3)
112
+    - React-jsiexecutor (= 0.61.3)
113
+    - Yoga
114
+  - React-Core/RCTNetworkHeaders (0.61.3):
115
+    - Folly (= 2018.10.22.00)
116
+    - glog
117
+    - React-Core/Default
118
+    - React-cxxreact (= 0.61.3)
119
+    - React-jsi (= 0.61.3)
120
+    - React-jsiexecutor (= 0.61.3)
121
+    - Yoga
122
+  - React-Core/RCTSettingsHeaders (0.61.3):
123
+    - Folly (= 2018.10.22.00)
124
+    - glog
125
+    - React-Core/Default
126
+    - React-cxxreact (= 0.61.3)
127
+    - React-jsi (= 0.61.3)
128
+    - React-jsiexecutor (= 0.61.3)
129
+    - Yoga
130
+  - React-Core/RCTTextHeaders (0.61.3):
131
+    - Folly (= 2018.10.22.00)
132
+    - glog
133
+    - React-Core/Default
134
+    - React-cxxreact (= 0.61.3)
135
+    - React-jsi (= 0.61.3)
136
+    - React-jsiexecutor (= 0.61.3)
137
+    - Yoga
138
+  - React-Core/RCTVibrationHeaders (0.61.3):
139
+    - Folly (= 2018.10.22.00)
140
+    - glog
141
+    - React-Core/Default
142
+    - React-cxxreact (= 0.61.3)
143
+    - React-jsi (= 0.61.3)
144
+    - React-jsiexecutor (= 0.61.3)
145
+    - Yoga
146
+  - React-Core/RCTWebSocket (0.61.3):
147
+    - Folly (= 2018.10.22.00)
148
+    - glog
149
+    - React-Core/Default (= 0.61.3)
150
+    - React-cxxreact (= 0.61.3)
151
+    - React-jsi (= 0.61.3)
152
+    - React-jsiexecutor (= 0.61.3)
153
+    - Yoga
154
+  - React-CoreModules (0.61.3):
155
+    - FBReactNativeSpec (= 0.61.3)
156
+    - Folly (= 2018.10.22.00)
157
+    - RCTTypeSafety (= 0.61.3)
158
+    - React-Core/CoreModulesHeaders (= 0.61.3)
159
+    - React-RCTImage (= 0.61.3)
160
+    - ReactCommon/turbomodule/core (= 0.61.3)
161
+  - React-cxxreact (0.61.3):
33 162
     - boost-for-react-native (= 1.63.0)
34 163
     - DoubleConversion
35 164
     - Folly (= 2018.10.22.00)
36 165
     - glog
37
-    - React-jsinspector (= 0.60.0)
38
-  - React-DevSupport (0.60.0):
39
-    - React-Core (= 0.60.0)
40
-    - React-RCTWebSocket (= 0.60.0)
41
-  - React-fishhook (0.60.0)
42
-  - React-jsi (0.60.0):
166
+    - React-jsinspector (= 0.61.3)
167
+  - React-jsi (0.61.3):
43 168
     - boost-for-react-native (= 1.63.0)
44 169
     - DoubleConversion
45 170
     - Folly (= 2018.10.22.00)
46 171
     - glog
47
-    - React-jsi/Default (= 0.60.0)
48
-  - React-jsi/Default (0.60.0):
172
+    - React-jsi/Default (= 0.61.3)
173
+  - React-jsi/Default (0.61.3):
49 174
     - boost-for-react-native (= 1.63.0)
50 175
     - DoubleConversion
51 176
     - Folly (= 2018.10.22.00)
52 177
     - glog
53
-  - React-jsiexecutor (0.60.0):
178
+  - React-jsiexecutor (0.61.3):
54 179
     - DoubleConversion
55 180
     - Folly (= 2018.10.22.00)
56 181
     - glog
57
-    - React-cxxreact (= 0.60.0)
58
-    - React-jsi (= 0.60.0)
59
-  - React-jsinspector (0.60.0)
60
-  - react-native-webview (7.0.7):
182
+    - React-cxxreact (= 0.61.3)
183
+    - React-jsi (= 0.61.3)
184
+  - React-jsinspector (0.61.3)
185
+  - react-native-webview (7.4.3):
61 186
     - React
62
-  - React-RCTActionSheet (0.60.0):
63
-    - React-Core (= 0.60.0)
64
-  - React-RCTAnimation (0.60.0):
65
-    - React-Core (= 0.60.0)
66
-  - React-RCTBlob (0.60.0):
67
-    - React-Core (= 0.60.0)
68
-    - React-RCTNetwork (= 0.60.0)
69
-    - React-RCTWebSocket (= 0.60.0)
70
-  - React-RCTImage (0.60.0):
71
-    - React-Core (= 0.60.0)
72
-    - React-RCTNetwork (= 0.60.0)
73
-  - React-RCTLinking (0.60.0):
74
-    - React-Core (= 0.60.0)
75
-  - React-RCTNetwork (0.60.0):
76
-    - React-Core (= 0.60.0)
77
-  - React-RCTSettings (0.60.0):
78
-    - React-Core (= 0.60.0)
79
-  - React-RCTText (0.60.0):
80
-    - React-Core (= 0.60.0)
81
-  - React-RCTVibration (0.60.0):
82
-    - React-Core (= 0.60.0)
83
-  - React-RCTWebSocket (0.60.0):
84
-    - React-Core (= 0.60.0)
85
-    - React-fishhook (= 0.60.0)
86
-  - yoga (0.60.0.React)
187
+  - React-RCTActionSheet (0.61.3):
188
+    - React-Core/RCTActionSheetHeaders (= 0.61.3)
189
+  - React-RCTAnimation (0.61.3):
190
+    - React-Core/RCTAnimationHeaders (= 0.61.3)
191
+  - React-RCTBlob (0.61.3):
192
+    - React-Core/RCTBlobHeaders (= 0.61.3)
193
+    - React-Core/RCTWebSocket (= 0.61.3)
194
+    - React-jsi (= 0.61.3)
195
+    - React-RCTNetwork (= 0.61.3)
196
+  - React-RCTImage (0.61.3):
197
+    - React-Core/RCTImageHeaders (= 0.61.3)
198
+    - React-RCTNetwork (= 0.61.3)
199
+  - React-RCTLinking (0.61.3):
200
+    - React-Core/RCTLinkingHeaders (= 0.61.3)
201
+  - React-RCTNetwork (0.61.3):
202
+    - React-Core/RCTNetworkHeaders (= 0.61.3)
203
+  - React-RCTSettings (0.61.3):
204
+    - React-Core/RCTSettingsHeaders (= 0.61.3)
205
+  - React-RCTText (0.61.3):
206
+    - React-Core/RCTTextHeaders (= 0.61.3)
207
+  - React-RCTVibration (0.61.3):
208
+    - React-Core/RCTVibrationHeaders (= 0.61.3)
209
+  - ReactCommon/jscallinvoker (0.61.3):
210
+    - DoubleConversion
211
+    - Folly (= 2018.10.22.00)
212
+    - glog
213
+    - React-cxxreact (= 0.61.3)
214
+  - ReactCommon/turbomodule/core (0.61.3):
215
+    - DoubleConversion
216
+    - Folly (= 2018.10.22.00)
217
+    - glog
218
+    - React-Core (= 0.61.3)
219
+    - React-cxxreact (= 0.61.3)
220
+    - React-jsi (= 0.61.3)
221
+    - ReactCommon/jscallinvoker (= 0.61.3)
222
+  - Yoga (1.14.0)
87 223
 
88 224
 DEPENDENCIES:
89 225
   - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
226
+  - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
227
+  - FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`)
90 228
   - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
91 229
   - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
230
+  - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
231
+  - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
92 232
   - React (from `../node_modules/react-native/`)
93
-  - React-Core (from `../node_modules/react-native/React`)
233
+  - React-Core (from `../node_modules/react-native/`)
234
+  - React-Core/DevSupport (from `../node_modules/react-native/`)
235
+  - React-Core/RCTWebSocket (from `../node_modules/react-native/`)
236
+  - React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
94 237
   - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
95
-  - React-DevSupport (from `../node_modules/react-native/React`)
96
-  - React-fishhook (from `../node_modules/react-native/Libraries/fishhook`)
97 238
   - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
98 239
   - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
99 240
   - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
@@ -107,30 +248,37 @@ DEPENDENCIES:
107 248
   - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
108 249
   - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
109 250
   - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
110
-  - React-RCTWebSocket (from `../node_modules/react-native/Libraries/WebSocket`)
111
-  - yoga (from `../node_modules/react-native/ReactCommon/yoga`)
251
+  - ReactCommon/jscallinvoker (from `../node_modules/react-native/ReactCommon`)
252
+  - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
253
+  - Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
112 254
 
113 255
 SPEC REPOS:
114
-  https://github.com/cocoapods/specs.git:
256
+  trunk:
115 257
     - boost-for-react-native
116 258
 
117 259
 EXTERNAL SOURCES:
118 260
   DoubleConversion:
119 261
     :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
262
+  FBLazyVector:
263
+    :path: "../node_modules/react-native/Libraries/FBLazyVector"
264
+  FBReactNativeSpec:
265
+    :path: "../node_modules/react-native/Libraries/FBReactNativeSpec"
120 266
   Folly:
121 267
     :podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec"
122 268
   glog:
123 269
     :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
270
+  RCTRequired:
271
+    :path: "../node_modules/react-native/Libraries/RCTRequired"
272
+  RCTTypeSafety:
273
+    :path: "../node_modules/react-native/Libraries/TypeSafety"
124 274
   React:
125 275
     :path: "../node_modules/react-native/"
126 276
   React-Core:
127
-    :path: "../node_modules/react-native/React"
277
+    :path: "../node_modules/react-native/"
278
+  React-CoreModules:
279
+    :path: "../node_modules/react-native/React/CoreModules"
128 280
   React-cxxreact:
129 281
     :path: "../node_modules/react-native/ReactCommon/cxxreact"
130
-  React-DevSupport:
131
-    :path: "../node_modules/react-native/React"
132
-  React-fishhook:
133
-    :path: "../node_modules/react-native/Libraries/fishhook"
134 282
   React-jsi:
135 283
     :path: "../node_modules/react-native/ReactCommon/jsi"
136 284
   React-jsiexecutor:
@@ -157,37 +305,40 @@ EXTERNAL SOURCES:
157 305
     :path: "../node_modules/react-native/Libraries/Text"
158 306
   React-RCTVibration:
159 307
     :path: "../node_modules/react-native/Libraries/Vibration"
160
-  React-RCTWebSocket:
161
-    :path: "../node_modules/react-native/Libraries/WebSocket"
162
-  yoga:
308
+  ReactCommon:
309
+    :path: "../node_modules/react-native/ReactCommon"
310
+  Yoga:
163 311
     :path: "../node_modules/react-native/ReactCommon/yoga"
164 312
 
165 313
 SPEC CHECKSUMS:
166 314
   boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
167 315
   DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2
316
+  FBLazyVector: 5bc5b1606fc9a7ac6956de049f6e30901ed31c49
317
+  FBReactNativeSpec: f7be9bcc5ce259f7c39509f3f4caf59020d11d4c
168 318
   Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51
169 319
   glog: 1f3da668190260b06b429bb211bfbee5cd790c28
170
-  React: 4b3c068e793e96672dcd186a2b572fac43e4b031
171
-  React-Core: 3dc86b22920597f813c62a96db3165950b64826b
172
-  React-cxxreact: 0dacb291e59b81e7c3f22a2118bee853ba8a60d2
173
-  React-DevSupport: 4eb4135386acd10c2586cc9c759bf96b4dac035e
174
-  React-fishhook: 86ca737527bb9d860efbb943c11c729a5b69aa3d
175
-  React-jsi: 8e128c4d0d8febc2977ef617d1c09bb54326069c
176
-  React-jsiexecutor: 7a3554f703a58963ec80b860144ea0f0e9b910e1
177
-  React-jsinspector: d4ed52225912efe0019bb7f1a225aec20f23049a
178
-  react-native-webview: e091d13a8c8a407d828cb205964d902c3f70d3a4
179
-  React-RCTActionSheet: b27ff3cf3a68f917c46d2b94abf938b625b96570
180
-  React-RCTAnimation: 9e4708e5bd65fca8285ce7c0aa076f3f4fa5c2f8
181
-  React-RCTBlob: 6eafcc3a24f33785692a7be24918ade607bc8719
182
-  React-RCTImage: 46b965d7225b428ea11580ead08a4318aef1d6be
183
-  React-RCTLinking: d65b9f56cf0b8e171575a86764df7bb019ac28d6
184
-  React-RCTNetwork: 783ee2f430740e58f724e46adc79fe7feff64202
185
-  React-RCTSettings: aa28315aadfbfaf94206d865673ae509f1e97c07
186
-  React-RCTText: 685fca2e13b024271048e7e247ef24476f28a41e
187
-  React-RCTVibration: 4ee1cf208ab17a50fafb1c16ffe28fe594a64e4f
188
-  React-RCTWebSocket: fca087d583724aa0e5fef7d911f0f2a28d0f2736
189
-  yoga: 616fde658be980aa60a2158835170f3f9c2d04b4
320
+  RCTRequired: a72523286ea3381f97b28d87529c265baad3ad7d
321
+  RCTTypeSafety: e3cc0537400222250f0be37bd69f4b339d3c0a0f
322
+  React: 3dc877fc32548b0c7108ca7f301466f4956cbff8
323
+  React-Core: ca94e2e7d22cdcc266a405c4d2ad5e5675145776
324
+  React-CoreModules: aa415458b5d7dacd10ac1b324d679f6e17cd8685
325
+  React-cxxreact: bac5da3d62ee98abd3c1bf7338a7cc6205da7f69
326
+  React-jsi: 8bcf5836caa8a759c135ab9ef97f3e023a7b94af
327
+  React-jsiexecutor: ae078e9df9c65bcdcf68f9a17656657932d95528
328
+  React-jsinspector: a8939cc6909607eb5e8a5ecfff7c6226984e174d
329
+  react-native-webview: 82d6456dfae1b3ef70c3939135536342afc96373
330
+  React-RCTActionSheet: 94671eef55b01a93be735605822ef712d5ea208e
331
+  React-RCTAnimation: 524ae33e73de9c0fe6501a7a4bda8e01d26499d9
332
+  React-RCTBlob: 5481c2db702f57207af7e7a9b32d90524b821b72
333
+  React-RCTImage: b472cc0606f8a7c1ac270d6ccc57123a09439a32
334
+  React-RCTLinking: 9cfc7bfdfda078489736695ac476de1f265b9f82
335
+  React-RCTNetwork: 967547e4eeac92e55d41573a82da7fff4003052a
336
+  React-RCTSettings: 6ab7911172056b5077dacd9240f057eeeb1b121b
337
+  React-RCTText: b8f895b94aa0e7778fef28d13f3d71eed4a10c3d
338
+  React-RCTVibration: 262588c97551b0b1c675468cda857466ba5af18f
339
+  ReactCommon: c2c63d9290b422ca6ad5b3663073a015dd892ae9
340
+  Yoga: 02036f6383c0008edb7ef0773a0e6beb6ce82bd1
190 341
 
191
-PODFILE CHECKSUM: 03c5e59e8f81b8809e805efc7c17e30906e3d940
342
+PODFILE CHECKSUM: 1b8d6c9aba899d79e9fa0a7da5e8b17da1f1e097
192 343
 
193
-COCOAPODS: 1.7.5
344
+COCOAPODS: 1.8.4

+ 61
- 61
demo/ios/demo.xcodeproj/project.pbxproj 파일 보기

@@ -12,14 +12,14 @@
12 12
 		13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; };
13 13
 		13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
14 14
 		13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
15
-		26A793F21BE5DA1639B74874 /* libPods-demo-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 745F48ECAE1041C91082A5AB /* libPods-demo-tvOS.a */; };
16 15
 		2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
17 16
 		2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
18 17
 		2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
19 18
 		2DCD954D1E0B4F2C00145EB5 /* demoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* demoTests.m */; };
20
-		7ABE50066B102BBB8500208F /* libPods-demoTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 40EE619DB72F77134B072A2C /* libPods-demoTests.a */; };
21
-		9E34BCBD974F69122ABE4084 /* libPods-demo-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E7B9E17E93C4E97810C845CA /* libPods-demo-tvOSTests.a */; };
22
-		FD7CB6D85FF560D0C8FA0D61 /* libPods-demo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 67BD63075B4FA94A593EC308 /* libPods-demo.a */; };
19
+		7C3B3371778326AE27DFAB6F /* libPods-demo-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DFAEF58B54617204E1581A2F /* libPods-demo-tvOSTests.a */; };
20
+		C236A29F535FE825D5E22A3C /* libPods-demo-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 947AECEF56CDD875A7AB4373 /* libPods-demo-tvOS.a */; };
21
+		CB4B56EA640F6A4E2A4526B4 /* libPods-demoTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 68FFD7F2608ABBA554FCCB1A /* libPods-demoTests.a */; };
22
+		E1D8E0DD5587E6AD8B67DED9 /* libPods-demo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B9172FAF691E26282FB05206 /* libPods-demo.a */; };
23 23
 /* End PBXBuildFile section */
24 24
 
25 25
 /* Begin PBXContainerItemProxy section */
@@ -44,7 +44,7 @@
44 44
 		00E356EE1AD99517003FC87E /* demoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = demoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
45 45
 		00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
46 46
 		00E356F21AD99517003FC87E /* demoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = demoTests.m; sourceTree = "<group>"; };
47
-		13106B0DCD43AC18B99BB290 /* Pods-demoTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demoTests.debug.xcconfig"; path = "Target Support Files/Pods-demoTests/Pods-demoTests.debug.xcconfig"; sourceTree = "<group>"; };
47
+		0D006781E9CA8C4705992F7E /* Pods-demo-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demo-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-demo-tvOSTests/Pods-demo-tvOSTests.debug.xcconfig"; sourceTree = "<group>"; };
48 48
 		13B07F961A680F5B00A75B9A /* demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = demo.app; sourceTree = BUILT_PRODUCTS_DIR; };
49 49
 		13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = demo/AppDelegate.h; sourceTree = "<group>"; };
50 50
 		13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = demo/AppDelegate.m; sourceTree = "<group>"; };
@@ -52,21 +52,21 @@
52 52
 		13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = demo/Images.xcassets; sourceTree = "<group>"; };
53 53
 		13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = demo/Info.plist; sourceTree = "<group>"; };
54 54
 		13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = demo/main.m; sourceTree = "<group>"; };
55
-		2CA69612F99FF687F19B5F38 /* Pods-demo-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demo-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-demo-tvOS/Pods-demo-tvOS.debug.xcconfig"; sourceTree = "<group>"; };
56 55
 		2D02E47B1E0B4A5D006451C7 /* demo-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "demo-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
57 56
 		2D02E4901E0B4A5D006451C7 /* demo-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "demo-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
58
-		31CEE8D2277891DD0DD69591 /* Pods-demo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demo.release.xcconfig"; path = "Target Support Files/Pods-demo/Pods-demo.release.xcconfig"; sourceTree = "<group>"; };
59
-		3580B5E9F9D71E7E0EC4FD25 /* Pods-demo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demo.debug.xcconfig"; path = "Target Support Files/Pods-demo/Pods-demo.debug.xcconfig"; sourceTree = "<group>"; };
60
-		40EE619DB72F77134B072A2C /* libPods-demoTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-demoTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
61
-		67BD63075B4FA94A593EC308 /* libPods-demo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-demo.a"; sourceTree = BUILT_PRODUCTS_DIR; };
62
-		745F48ECAE1041C91082A5AB /* libPods-demo-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-demo-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; };
63
-		94D25B4717B616D7A7DFBFF3 /* Pods-demoTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demoTests.release.xcconfig"; path = "Target Support Files/Pods-demoTests/Pods-demoTests.release.xcconfig"; sourceTree = "<group>"; };
64
-		95CEDD25A1557663A51F7E5E /* Pods-demo-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demo-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-demo-tvOSTests/Pods-demo-tvOSTests.debug.xcconfig"; sourceTree = "<group>"; };
65
-		E7B9E17E93C4E97810C845CA /* libPods-demo-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-demo-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
57
+		43F930BED887CD5B44B7E49D /* Pods-demoTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demoTests.debug.xcconfig"; path = "Target Support Files/Pods-demoTests/Pods-demoTests.debug.xcconfig"; sourceTree = "<group>"; };
58
+		4C9992F509209CFAA50AD81B /* Pods-demo-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demo-tvOS.release.xcconfig"; path = "Target Support Files/Pods-demo-tvOS/Pods-demo-tvOS.release.xcconfig"; sourceTree = "<group>"; };
59
+		654AF74BC45888F3F66EB742 /* Pods-demo-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demo-tvOSTests.release.xcconfig"; path = "Target Support Files/Pods-demo-tvOSTests/Pods-demo-tvOSTests.release.xcconfig"; sourceTree = "<group>"; };
60
+		68FFD7F2608ABBA554FCCB1A /* libPods-demoTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-demoTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
61
+		7B993CC52E603FB50C5A27D5 /* Pods-demo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demo.release.xcconfig"; path = "Target Support Files/Pods-demo/Pods-demo.release.xcconfig"; sourceTree = "<group>"; };
62
+		947AECEF56CDD875A7AB4373 /* libPods-demo-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-demo-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; };
63
+		A18698B4B0467D78D1D6D366 /* Pods-demo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demo.debug.xcconfig"; path = "Target Support Files/Pods-demo/Pods-demo.debug.xcconfig"; sourceTree = "<group>"; };
64
+		B79410CCB04C67097B17595D /* Pods-demoTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demoTests.release.xcconfig"; path = "Target Support Files/Pods-demoTests/Pods-demoTests.release.xcconfig"; sourceTree = "<group>"; };
65
+		B8D580D1AC01815FE4FA0561 /* Pods-demo-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demo-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-demo-tvOS/Pods-demo-tvOS.debug.xcconfig"; sourceTree = "<group>"; };
66
+		B9172FAF691E26282FB05206 /* libPods-demo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-demo.a"; sourceTree = BUILT_PRODUCTS_DIR; };
67
+		DFAEF58B54617204E1581A2F /* libPods-demo-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-demo-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
66 68
 		ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
67 69
 		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; };
68
-		F660DBAA1AFF4C8242570A7E /* Pods-demo-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demo-tvOS.release.xcconfig"; path = "Target Support Files/Pods-demo-tvOS/Pods-demo-tvOS.release.xcconfig"; sourceTree = "<group>"; };
69
-		F9A43753ED977CF47D68C6B1 /* Pods-demo-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demo-tvOSTests.release.xcconfig"; path = "Target Support Files/Pods-demo-tvOSTests/Pods-demo-tvOSTests.release.xcconfig"; sourceTree = "<group>"; };
70 70
 /* End PBXFileReference section */
71 71
 
72 72
 /* Begin PBXFrameworksBuildPhase section */
@@ -74,7 +74,7 @@
74 74
 			isa = PBXFrameworksBuildPhase;
75 75
 			buildActionMask = 2147483647;
76 76
 			files = (
77
-				7ABE50066B102BBB8500208F /* libPods-demoTests.a in Frameworks */,
77
+				CB4B56EA640F6A4E2A4526B4 /* libPods-demoTests.a in Frameworks */,
78 78
 			);
79 79
 			runOnlyForDeploymentPostprocessing = 0;
80 80
 		};
@@ -82,7 +82,7 @@
82 82
 			isa = PBXFrameworksBuildPhase;
83 83
 			buildActionMask = 2147483647;
84 84
 			files = (
85
-				FD7CB6D85FF560D0C8FA0D61 /* libPods-demo.a in Frameworks */,
85
+				E1D8E0DD5587E6AD8B67DED9 /* libPods-demo.a in Frameworks */,
86 86
 			);
87 87
 			runOnlyForDeploymentPostprocessing = 0;
88 88
 		};
@@ -90,7 +90,7 @@
90 90
 			isa = PBXFrameworksBuildPhase;
91 91
 			buildActionMask = 2147483647;
92 92
 			files = (
93
-				26A793F21BE5DA1639B74874 /* libPods-demo-tvOS.a in Frameworks */,
93
+				C236A29F535FE825D5E22A3C /* libPods-demo-tvOS.a in Frameworks */,
94 94
 			);
95 95
 			runOnlyForDeploymentPostprocessing = 0;
96 96
 		};
@@ -98,7 +98,7 @@
98 98
 			isa = PBXFrameworksBuildPhase;
99 99
 			buildActionMask = 2147483647;
100 100
 			files = (
101
-				9E34BCBD974F69122ABE4084 /* libPods-demo-tvOSTests.a in Frameworks */,
101
+				7C3B3371778326AE27DFAB6F /* libPods-demo-tvOSTests.a in Frameworks */,
102 102
 			);
103 103
 			runOnlyForDeploymentPostprocessing = 0;
104 104
 		};
@@ -141,30 +141,14 @@
141 141
 			children = (
142 142
 				ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
143 143
 				ED2971642150620600B7C4FE /* JavaScriptCore.framework */,
144
-				67BD63075B4FA94A593EC308 /* libPods-demo.a */,
145
-				745F48ECAE1041C91082A5AB /* libPods-demo-tvOS.a */,
146
-				E7B9E17E93C4E97810C845CA /* libPods-demo-tvOSTests.a */,
147
-				40EE619DB72F77134B072A2C /* libPods-demoTests.a */,
144
+				B9172FAF691E26282FB05206 /* libPods-demo.a */,
145
+				947AECEF56CDD875A7AB4373 /* libPods-demo-tvOS.a */,
146
+				DFAEF58B54617204E1581A2F /* libPods-demo-tvOSTests.a */,
147
+				68FFD7F2608ABBA554FCCB1A /* libPods-demoTests.a */,
148 148
 			);
149 149
 			name = Frameworks;
150 150
 			sourceTree = "<group>";
151 151
 		};
152
-		5EDF7549E15B548D16B78FD0 /* Pods */ = {
153
-			isa = PBXGroup;
154
-			children = (
155
-				3580B5E9F9D71E7E0EC4FD25 /* Pods-demo.debug.xcconfig */,
156
-				31CEE8D2277891DD0DD69591 /* Pods-demo.release.xcconfig */,
157
-				2CA69612F99FF687F19B5F38 /* Pods-demo-tvOS.debug.xcconfig */,
158
-				F660DBAA1AFF4C8242570A7E /* Pods-demo-tvOS.release.xcconfig */,
159
-				95CEDD25A1557663A51F7E5E /* Pods-demo-tvOSTests.debug.xcconfig */,
160
-				F9A43753ED977CF47D68C6B1 /* Pods-demo-tvOSTests.release.xcconfig */,
161
-				13106B0DCD43AC18B99BB290 /* Pods-demoTests.debug.xcconfig */,
162
-				94D25B4717B616D7A7DFBFF3 /* Pods-demoTests.release.xcconfig */,
163
-			);
164
-			name = Pods;
165
-			path = Pods;
166
-			sourceTree = "<group>";
167
-		};
168 152
 		832341AE1AAA6A7D00B99B32 /* Libraries */ = {
169 153
 			isa = PBXGroup;
170 154
 			children = (
@@ -180,7 +164,7 @@
180 164
 				00E356EF1AD99517003FC87E /* demoTests */,
181 165
 				83CBBA001A601CBA00E9B192 /* Products */,
182 166
 				2D16E6871FA4F8E400B85C8A /* Frameworks */,
183
-				5EDF7549E15B548D16B78FD0 /* Pods */,
167
+				856E0E3156FD345E15A4177B /* Pods */,
184 168
 			);
185 169
 			indentWidth = 2;
186 170
 			sourceTree = "<group>";
@@ -198,6 +182,22 @@
198 182
 			name = Products;
199 183
 			sourceTree = "<group>";
200 184
 		};
185
+		856E0E3156FD345E15A4177B /* Pods */ = {
186
+			isa = PBXGroup;
187
+			children = (
188
+				A18698B4B0467D78D1D6D366 /* Pods-demo.debug.xcconfig */,
189
+				7B993CC52E603FB50C5A27D5 /* Pods-demo.release.xcconfig */,
190
+				B8D580D1AC01815FE4FA0561 /* Pods-demo-tvOS.debug.xcconfig */,
191
+				4C9992F509209CFAA50AD81B /* Pods-demo-tvOS.release.xcconfig */,
192
+				0D006781E9CA8C4705992F7E /* Pods-demo-tvOSTests.debug.xcconfig */,
193
+				654AF74BC45888F3F66EB742 /* Pods-demo-tvOSTests.release.xcconfig */,
194
+				43F930BED887CD5B44B7E49D /* Pods-demoTests.debug.xcconfig */,
195
+				B79410CCB04C67097B17595D /* Pods-demoTests.release.xcconfig */,
196
+			);
197
+			name = Pods;
198
+			path = Pods;
199
+			sourceTree = "<group>";
200
+		};
201 201
 /* End PBXGroup section */
202 202
 
203 203
 /* Begin PBXNativeTarget section */
@@ -205,7 +205,7 @@
205 205
 			isa = PBXNativeTarget;
206 206
 			buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "demoTests" */;
207 207
 			buildPhases = (
208
-				E2407091751351D9D1827F90 /* [CP] Check Pods Manifest.lock */,
208
+				CAC5D30E546F30603257450B /* [CP] Check Pods Manifest.lock */,
209 209
 				00E356EA1AD99517003FC87E /* Sources */,
210 210
 				00E356EB1AD99517003FC87E /* Frameworks */,
211 211
 				00E356EC1AD99517003FC87E /* Resources */,
@@ -224,7 +224,7 @@
224 224
 			isa = PBXNativeTarget;
225 225
 			buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "demo" */;
226 226
 			buildPhases = (
227
-				F1750B4E3043C918F29B7790 /* [CP] Check Pods Manifest.lock */,
227
+				36CB9F652802D32B4628BB97 /* [CP] Check Pods Manifest.lock */,
228 228
 				FD10A7F022414F080027D42C /* Start Packager */,
229 229
 				13B07F871A680F5B00A75B9A /* Sources */,
230 230
 				13B07F8C1A680F5B00A75B9A /* Frameworks */,
@@ -244,7 +244,7 @@
244 244
 			isa = PBXNativeTarget;
245 245
 			buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "demo-tvOS" */;
246 246
 			buildPhases = (
247
-				89392878E80EB42548AAD922 /* [CP] Check Pods Manifest.lock */,
247
+				9906704EBEC8308742D20FC3 /* [CP] Check Pods Manifest.lock */,
248 248
 				FD10A7F122414F3F0027D42C /* Start Packager */,
249 249
 				2D02E4771E0B4A5D006451C7 /* Sources */,
250 250
 				2D02E4781E0B4A5D006451C7 /* Frameworks */,
@@ -264,7 +264,7 @@
264 264
 			isa = PBXNativeTarget;
265 265
 			buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "demo-tvOSTests" */;
266 266
 			buildPhases = (
267
-				062A127A069C16E4EA7FC3F3 /* [CP] Check Pods Manifest.lock */,
267
+				204C26600B7002BA2F0BA5B7 /* [CP] Check Pods Manifest.lock */,
268 268
 				2D02E48C1E0B4A5D006451C7 /* Sources */,
269 269
 				2D02E48D1E0B4A5D006451C7 /* Frameworks */,
270 270
 				2D02E48E1E0B4A5D006451C7 /* Resources */,
@@ -373,7 +373,7 @@
373 373
 			shellPath = /bin/sh;
374 374
 			shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
375 375
 		};
376
-		062A127A069C16E4EA7FC3F3 /* [CP] Check Pods Manifest.lock */ = {
376
+		204C26600B7002BA2F0BA5B7 /* [CP] Check Pods Manifest.lock */ = {
377 377
 			isa = PBXShellScriptBuildPhase;
378 378
 			buildActionMask = 2147483647;
379 379
 			files = (
@@ -409,7 +409,7 @@
409 409
 			shellPath = /bin/sh;
410 410
 			shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
411 411
 		};
412
-		89392878E80EB42548AAD922 /* [CP] Check Pods Manifest.lock */ = {
412
+		36CB9F652802D32B4628BB97 /* [CP] Check Pods Manifest.lock */ = {
413 413
 			isa = PBXShellScriptBuildPhase;
414 414
 			buildActionMask = 2147483647;
415 415
 			files = (
@@ -424,14 +424,14 @@
424 424
 			outputFileListPaths = (
425 425
 			);
426 426
 			outputPaths = (
427
-				"$(DERIVED_FILE_DIR)/Pods-demo-tvOS-checkManifestLockResult.txt",
427
+				"$(DERIVED_FILE_DIR)/Pods-demo-checkManifestLockResult.txt",
428 428
 			);
429 429
 			runOnlyForDeploymentPostprocessing = 0;
430 430
 			shellPath = /bin/sh;
431 431
 			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";
432 432
 			showEnvVarsInLog = 0;
433 433
 		};
434
-		E2407091751351D9D1827F90 /* [CP] Check Pods Manifest.lock */ = {
434
+		9906704EBEC8308742D20FC3 /* [CP] Check Pods Manifest.lock */ = {
435 435
 			isa = PBXShellScriptBuildPhase;
436 436
 			buildActionMask = 2147483647;
437 437
 			files = (
@@ -446,14 +446,14 @@
446 446
 			outputFileListPaths = (
447 447
 			);
448 448
 			outputPaths = (
449
-				"$(DERIVED_FILE_DIR)/Pods-demoTests-checkManifestLockResult.txt",
449
+				"$(DERIVED_FILE_DIR)/Pods-demo-tvOS-checkManifestLockResult.txt",
450 450
 			);
451 451
 			runOnlyForDeploymentPostprocessing = 0;
452 452
 			shellPath = /bin/sh;
453 453
 			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";
454 454
 			showEnvVarsInLog = 0;
455 455
 		};
456
-		F1750B4E3043C918F29B7790 /* [CP] Check Pods Manifest.lock */ = {
456
+		CAC5D30E546F30603257450B /* [CP] Check Pods Manifest.lock */ = {
457 457
 			isa = PBXShellScriptBuildPhase;
458 458
 			buildActionMask = 2147483647;
459 459
 			files = (
@@ -468,7 +468,7 @@
468 468
 			outputFileListPaths = (
469 469
 			);
470 470
 			outputPaths = (
471
-				"$(DERIVED_FILE_DIR)/Pods-demo-checkManifestLockResult.txt",
471
+				"$(DERIVED_FILE_DIR)/Pods-demoTests-checkManifestLockResult.txt",
472 472
 			);
473 473
 			runOnlyForDeploymentPostprocessing = 0;
474 474
 			shellPath = /bin/sh;
@@ -580,7 +580,7 @@
580 580
 /* Begin XCBuildConfiguration section */
581 581
 		00E356F61AD99517003FC87E /* Debug */ = {
582 582
 			isa = XCBuildConfiguration;
583
-			baseConfigurationReference = 13106B0DCD43AC18B99BB290 /* Pods-demoTests.debug.xcconfig */;
583
+			baseConfigurationReference = 43F930BED887CD5B44B7E49D /* Pods-demoTests.debug.xcconfig */;
584 584
 			buildSettings = {
585 585
 				BUNDLE_LOADER = "$(TEST_HOST)";
586 586
 				GCC_PREPROCESSOR_DEFINITIONS = (
@@ -603,7 +603,7 @@
603 603
 		};
604 604
 		00E356F71AD99517003FC87E /* Release */ = {
605 605
 			isa = XCBuildConfiguration;
606
-			baseConfigurationReference = 94D25B4717B616D7A7DFBFF3 /* Pods-demoTests.release.xcconfig */;
606
+			baseConfigurationReference = B79410CCB04C67097B17595D /* Pods-demoTests.release.xcconfig */;
607 607
 			buildSettings = {
608 608
 				BUNDLE_LOADER = "$(TEST_HOST)";
609 609
 				COPY_PHASE_STRIP = NO;
@@ -623,7 +623,7 @@
623 623
 		};
624 624
 		13B07F941A680F5B00A75B9A /* Debug */ = {
625 625
 			isa = XCBuildConfiguration;
626
-			baseConfigurationReference = 3580B5E9F9D71E7E0EC4FD25 /* Pods-demo.debug.xcconfig */;
626
+			baseConfigurationReference = A18698B4B0467D78D1D6D366 /* Pods-demo.debug.xcconfig */;
627 627
 			buildSettings = {
628 628
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
629 629
 				CURRENT_PROJECT_VERSION = 1;
@@ -643,7 +643,7 @@
643 643
 		};
644 644
 		13B07F951A680F5B00A75B9A /* Release */ = {
645 645
 			isa = XCBuildConfiguration;
646
-			baseConfigurationReference = 31CEE8D2277891DD0DD69591 /* Pods-demo.release.xcconfig */;
646
+			baseConfigurationReference = 7B993CC52E603FB50C5A27D5 /* Pods-demo.release.xcconfig */;
647 647
 			buildSettings = {
648 648
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
649 649
 				CURRENT_PROJECT_VERSION = 1;
@@ -662,7 +662,7 @@
662 662
 		};
663 663
 		2D02E4971E0B4A5E006451C7 /* Debug */ = {
664 664
 			isa = XCBuildConfiguration;
665
-			baseConfigurationReference = 2CA69612F99FF687F19B5F38 /* Pods-demo-tvOS.debug.xcconfig */;
665
+			baseConfigurationReference = B8D580D1AC01815FE4FA0561 /* Pods-demo-tvOS.debug.xcconfig */;
666 666
 			buildSettings = {
667 667
 				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
668 668
 				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -690,7 +690,7 @@
690 690
 		};
691 691
 		2D02E4981E0B4A5E006451C7 /* Release */ = {
692 692
 			isa = XCBuildConfiguration;
693
-			baseConfigurationReference = F660DBAA1AFF4C8242570A7E /* Pods-demo-tvOS.release.xcconfig */;
693
+			baseConfigurationReference = 4C9992F509209CFAA50AD81B /* Pods-demo-tvOS.release.xcconfig */;
694 694
 			buildSettings = {
695 695
 				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
696 696
 				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
@@ -718,7 +718,7 @@
718 718
 		};
719 719
 		2D02E4991E0B4A5E006451C7 /* Debug */ = {
720 720
 			isa = XCBuildConfiguration;
721
-			baseConfigurationReference = 95CEDD25A1557663A51F7E5E /* Pods-demo-tvOSTests.debug.xcconfig */;
721
+			baseConfigurationReference = 0D006781E9CA8C4705992F7E /* Pods-demo-tvOSTests.debug.xcconfig */;
722 722
 			buildSettings = {
723 723
 				BUNDLE_LOADER = "$(TEST_HOST)";
724 724
 				CLANG_ANALYZER_NONNULL = YES;
@@ -745,7 +745,7 @@
745 745
 		};
746 746
 		2D02E49A1E0B4A5E006451C7 /* Release */ = {
747 747
 			isa = XCBuildConfiguration;
748
-			baseConfigurationReference = F9A43753ED977CF47D68C6B1 /* Pods-demo-tvOSTests.release.xcconfig */;
748
+			baseConfigurationReference = 654AF74BC45888F3F66EB742 /* Pods-demo-tvOSTests.release.xcconfig */;
749 749
 			buildSettings = {
750 750
 				BUNDLE_LOADER = "$(TEST_HOST)";
751 751
 				CLANG_ANALYZER_NONNULL = YES;
@@ -920,4 +920,4 @@
920 920
 /* End XCConfigurationList section */
921 921
 	};
922 922
 	rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
923
-}
923
+}

+ 6
- 2
demo/ios/demoTests/demoTests.m 파일 보기

@@ -12,7 +12,7 @@
12 12
 #import <React/RCTRootView.h>
13 13
 
14 14
 #define TIMEOUT_SECONDS 600
15
-#define TEXT_TO_LOOK_FOR @"Welcome to React Native!"
15
+#define TEXT_TO_LOOK_FOR @"Welcome to React"
16 16
 
17 17
 @interface demoTests : XCTestCase
18 18
 
@@ -40,11 +40,13 @@
40 40
   BOOL foundElement = NO;
41 41
 
42 42
   __block NSString *redboxError = nil;
43
+#ifdef DEBUG
43 44
   RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) {
44 45
     if (level >= RCTLogLevelError) {
45 46
       redboxError = message;
46 47
     }
47 48
   });
49
+#endif
48 50
 
49 51
   while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) {
50 52
     [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
@@ -57,8 +59,10 @@
57 59
       return NO;
58 60
     }];
59 61
   }
60
-
62
+  
63
+#ifdef DEBUG
61 64
   RCTSetLogFunction(RCTDefaultLogFunction);
65
+#endif
62 66
 
63 67
   XCTAssertNil(redboxError, @"RedBox error: %@", redboxError);
64 68
   XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS);

+ 14
- 13
demo/package.json 파일 보기

@@ -3,25 +3,26 @@
3 3
   "version": "0.0.1",
4 4
   "private": true,
5 5
   "scripts": {
6
+    "android": "react-native run-android",
7
+    "ios": "react-native run-ios",
6 8
     "start": "react-native start",
7
-    "test": "jest",
8
-    "lint": "eslint ."
9
+    "test": "jest"
9 10
   },
10 11
   "dependencies": {
11
-    "react": "16.8.6",
12
-    "react-native": "0.60.0",
12
+    "react": "16.9.0",
13
+    "react-native": "0.61.3",
13 14
     "react-native-autoheight-webview": "../",
14
-    "react-native-webview": "^7.0.7"
15
+    "react-native-webview": "^7.4.2"
15 16
   },
16 17
   "devDependencies": {
17
-    "@babel/core": "^7.4.5",
18
-    "@babel/runtime": "^7.4.5",
19
-    "@react-native-community/eslint-config": "^0.0.5",
20
-    "babel-jest": "^24.8.0",
21
-    "eslint": "^6.0.1",
22
-    "jest": "^24.8.0",
23
-    "metro-react-native-babel-preset": "^0.54.1",
24
-    "react-test-renderer": "16.8.6"
18
+    "@babel/core": "^7.5.0",
19
+    "@babel/runtime": "^7.5.0",
20
+    "@react-native-community/eslint-config": "^0.0.3",
21
+    "babel-jest": "^24.1.0",
22
+    "eslint": "5.16.0",
23
+    "jest": "^24.1.0",
24
+    "metro-react-native-babel-preset": "^0.51.1",
25
+    "react-test-renderer": "16.8.1"
25 26
   },
26 27
   "jest": {
27 28
     "preset": "react-native"

+ 1831
- 1820
demo/yarn.lock
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 2
- 1
package.json 파일 보기

@@ -1,6 +1,6 @@
1 1
 {
2 2
   "name": "react-native-autoheight-webview",
3
-  "version": "1.2.2",
3
+  "version": "1.2.3",
4 4
   "description": "An auto height webview for React Native, even auto width for inline html",
5 5
   "main": "autoHeightWebView",
6 6
   "types": "index.d.ts",
@@ -37,6 +37,7 @@
37 37
     "prop-types": "^15.7.2"
38 38
   },
39 39
   "devDependencies": {
40
+    "@react-native-community/eslint-config": "^0.0.5",
40 41
     "babel-eslint": "^10.0.2",
41 42
     "eslint": "^5.16.0",
42 43
     "eslint-plugin-jsx": "^0.0.2",

+ 1295
- 0
yarn.lock
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기