React-native: Android OS 6์—์„œ ์•ฑ ์ถฉ๋Œ Samsung Galaxy S7 SM-G930FD (JSC ์ถฉ๋Œ) 64 ๋น„ํŠธ ์ง€์› A / libc : Fatal signal 11 (SIGSEGV)

์— ๋งŒ๋“  2019๋…„ 04์›” 02์ผ  ยท  190์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: facebook/react-native

๋ฒ„๊ทธ ์‹ ๊ณ 
์‹œ์ž‘์‹œ ์ถฉ๋Œ
Android logcat A / libc : Fatal signal 11 (SIGSEGV), ์ฝ”๋“œ 1, ์˜ค๋ฅ˜ ์ฃผ์†Œ 0x0 (tid 20217)์—์„œ ์ถ”์  ๋œ์ด ์˜ค๋ฅ˜ ๋กœ๊ทธ๋งŒ์œผ๋กœ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค

์žฌํ˜„ํ•˜๋ ค๋ฉด
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์‹คํ–‰ ์•ˆ๋“œ๋กœ์ด๋“œ
์ดˆ๊ธฐ ๊ฒฝ๋กœ์—์„œ ์Šคํƒ ํƒ์ƒ‰๊ธฐ๋ฅผ ํ†ตํ•ด ๋‘ ๋ฒˆ์งธ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. React-Navigation 3.6
react-navigation ํ•˜๊ณ  Samsung S7 64 bit CPU ์žฅ์น˜์—์„œ ์ถฉ๋Œ์„ ์‹œ์ž‘ํ•˜์ž๋งˆ์ž ์•ฑ์ด ์ถฉ๋Œํ•˜๋ฉฐ ์‚ฌ์šฉ์ค‘์ธ ๋‹ค๋ฅธ Android ์žฅ์น˜์—์„œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘
์•ˆ์ •๋œ ๋ฐฉ์‹์œผ๋กœ ์ผํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค. ์ด์ „ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „ 0.58์—์„œ์™€ ๊ฐ™์ด

ํ™˜๊ฒฝ
React Native ํ™˜๊ฒฝ ์ •๋ณด :
์ฒด๊ณ„:
์šด์˜์ฒด์ œ : Mac OS mojave 10.14
๋ฐ”์ด๋„ˆ๋ฆฌ :
npm : 6.4.1
Android Studio : ๋ฒ„์ „ 3.2.1
Android 6.0.1 (์‹ค์ œ ๊ธฐ๊ธฐ : Samsung S7 SM-G930FD)
React Native v0.59.3

์ž„์‹œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• :
32 ๋น„ํŠธ ์ง€์› ๋งŒ ์ œ๊ณตํ•˜์—ฌ buidl.gradle์˜ defaultConfig ๋ธ”๋ก์—์žˆ๋Š” ndk abiFilters์—์„œ 64 ๋น„ํŠธ ndk ํ•„ํ„ฐ "arm64-v8a", "x86_64"๋ฅผ ์ œ๊ฑฐํ–ˆ์„ ๋•Œ.
์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

ndk { abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64" -> change to abiFilters "armeabi-v7a", "x86" }

Bug Android Ran Commands Locked

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@hramos @mkonicek ์ง€๊ธˆ๊นŒ์ง€ arm64-v8a ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ณต ํ•œ ํ›„ Samsung S7 , S7 Edge ์—์„œ ์‹คํ–‰๋˜๋Š” Android ๋นŒ๋“œ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ตœ์‹  RN 0.59 ๋ฆด๋ฆฌ์Šค์˜ ๋ฌธ์ œ์ธ ๊ฒƒ์œผ๋กœ ํŒ๋‹จ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. arm64-v8a , x86_64 , build.gradle ์—์„œ ์ œ๊ฑฐํ•ด๋„ ์•ฑ์ด ๋‹ค์šด๋˜์ง€ ์•Š์œผ๋ฉฐ, Google Play 64 ๋น„ํŠธ ์ง€์› ์ •์ฑ…์— ๋”ฐ๋ผ 1 August 2019 ์ดํ›„์— ๊ฒŒ์‹œ๋˜๋Š” ์•ฑ์— ์ž ์žฌ์ ์œผ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ๊ด€์‹ฌ์„ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋ชจ๋“  190 ๋Œ“๊ธ€


๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์„ค๋ช…์„ ๋‹ค์‹œ ์‚ดํŽด๋ณด๊ณ  ๋ฌธ์ œ ํ…œํ”Œ๋ฆฟ์ด ์™„์ „ํžˆ ์ฑ„์›Œ ์กŒ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๐Ÿ‘‰ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ ๋ฌธ์ œ ํ…œํ”Œ๋ฆฟ์„ ๋‹ค์‹œ ๋ณด๋ ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค.

๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์„ค๋ช…์„ ๋‹ค์‹œ ์‚ดํŽด๋ณด๊ณ  ๋ฌธ์ œ ํ…œํ”Œ๋ฆฟ์ด ์™„์ „ํžˆ ์ฑ„์›Œ ์กŒ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๐Ÿ‘‰ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ ๋ฌธ์ œ ํ…œํ”Œ๋ฆฟ์„ ๋‹ค์‹œ ๋ณด๋ ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค.

์—…๋ฐ์ดํŠธ ๋จ

์ฐธ์กฐ ์šฉ Logcat ์˜ค๋ฅ˜ ์Šคํฌ๋ฆฐ ์ƒทScreenshot 2019-04-03 at 5 38 07 PM

64 ๋น„ํŠธ ๋ถ„ํ•  ๋นŒ๋“œ ๊ฒŒ์‹œ Android 7.0์ด ์„ค์น˜๋œ Galaxy S7 ๋ฐ Galaxy S7 Edge์—์„œ ์‹คํ–‰์‹œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
Android vitals ํ‘œ์‹œ :
์‹ ํ˜ธ 11 (SIGSEGV), ์ฝ”๋“œ 1 (SEGV_MAPERR) WTFCrash
์—ญ ์ถ”์  :
# 00 pc 00000000007e048c /data/app/com.mosko.bus-1/lib/arm64/libjsc.so(WTFCrash+16)
# 01 pc 00000000000be650 /data/app/com.mosko.bus-1/lib/arm64/libjsc.so (_Z16WTFCrashWithInfoiPKcS0_i + 24)
# 02 pc 0000000000489f2c /data/app/com.mosko.bus-1/lib/arm64/libjsc.so(operationLinkDirectCall+1120)
# 03 pc 000000000019e27c

ํ•ด๋‹น ์žฅ์น˜์— ๋Œ€ํ•œ Crashlytics์—์„œ ๋‹ค์Œ์„ ์–ป์Šต๋‹ˆ๋‹ค.
์น˜๋ช…์ ์ธ ์˜ˆ์™ธ : com.facebook.react.common.c
๋ถˆ๋ณ€ ์œ„๋ฐ˜ : ์•„์ง ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ์ž‘์—… ์žฌ๊ฐœ.

32 ๋น„ํŠธ ๋นŒ๋“œ ๋งŒ ์ œ๊ณตํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ํ˜„์žฌ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Android 7.0์„ ์‹คํ–‰ํ•˜๋Š” Galaxy S7์˜ @nadavmos ์™€ ๋˜‘๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘์‹œ ์•ฑ์ด ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

Android 7.0์„ ์‹คํ–‰ํ•˜๋Š” Galaxy S7์˜ @nadavmos ์™€ ๋˜‘๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘์‹œ ์•ฑ์ด ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

@nsantacruz ๋„ ๋ฐ˜์‘ ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋‹ค๋ฅธ ๋ชจ๋“  ๊ธฐ์ž์—๊ฒŒ ๊ณตํ†ต์ ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

@nadavmos , ๋‚˜๋Š” react-navigation ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” Android 7.0์—์„œ Samsung S7์˜ 0.59์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ธฐ ๋•Œ๋ฌธ์— .

@nadavmos ์ถฉ๋Œ์€ react-navigation ์™€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์•ฑ์€ react-native init๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ ๋œ ์ƒˆ๋กœ์šด RN ํ”„๋กœ์ ํŠธ์—์„œ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

@hramos @mkonicek ์ง€๊ธˆ๊นŒ์ง€ arm64-v8a ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ณต ํ•œ ํ›„ Samsung S7 , S7 Edge ์—์„œ ์‹คํ–‰๋˜๋Š” Android ๋นŒ๋“œ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ตœ์‹  RN 0.59 ๋ฆด๋ฆฌ์Šค์˜ ๋ฌธ์ œ์ธ ๊ฒƒ์œผ๋กœ ํŒ๋‹จ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. arm64-v8a , x86_64 , build.gradle ์—์„œ ์ œ๊ฑฐํ•ด๋„ ์•ฑ์ด ๋‹ค์šด๋˜์ง€ ์•Š์œผ๋ฉฐ, Google Play 64 ๋น„ํŠธ ์ง€์› ์ •์ฑ…์— ๋”ฐ๋ผ 1 August 2019 ์ดํ›„์— ๊ฒŒ์‹œ๋˜๋Š” ์•ฑ์— ์ž ์žฌ์ ์œผ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ๊ด€์‹ฌ์„ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

0.58.5์—์„œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Galaxy S7. ์•ˆ๋“œ๋กœ์ด๋“œ 6.0. 32 ๋น„ํŠธ ๋นŒ๋“œ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Android 7.0์„ ์‹คํ–‰ํ•˜๋Š” Galaxy S7์—์„œ RN 0.59.4์˜ 64 ๋น„ํŠธ ๋นŒ๋“œ์—์„œ ๋™์ผํ•œ ์ถฉ๋Œ์ด ๊ด€์ฐฐ๋ฉ๋‹ˆ๋‹ค. ์Šฌํ”„๊ฒŒ๋„ ์šฐ๋ฆฌ๋Š” ํ•ด๋‹น ๋ชจ๋ธ์˜ ์žฅ์น˜์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋ชจ๋‘์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ™˜๊ฒฝ์—์„œ Huawai P9 ์žฅ์น˜์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  React Native Environment Info:
    System:
      OS: macOS 10.14.3
      CPU: (12) x64 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
      Memory: 63.57 MB / 32.00 GB
      Shell: 5.3 - /bin/zsh
    Binaries:
      Node: 11.3.0 - /usr/local/bin/node
      Yarn: 1.12.3 - /usr/local/bin/yarn
      npm: 6.9.0 - /usr/local/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 12.2, macOS 10.14, tvOS 12.2, watchOS 5.2
      Android SDK:
        API Levels: 23, 26, 27, 28
        Build Tools: 23.0.1, 25.0.0, 26.0.3, 27.0.3, 28.0.1, 28.0.2, 28.0.3
        System Images: android-24 | Google APIs Intel x86 Atom, android-27 | Google APIs Intel x86 Atom, android-28 | Google APIs Intel x86 Atom
    IDEs:
      Android Studio: 3.2 AI-181.5540.7.32.5056338
      Xcode: 10.2/10E125 - /usr/bin/xcodebuild
    npmPackages:
      react: ^16.8.3 => 16.8.3
      react-native: ^0.59.4 => 0.59.4
    npmGlobalPackages:
      eslint-plugin-react-native: 3.5.0
      react-native-cli: 2.0.1
      react-native-git-upgrade: 0.2.7

๋‹ค์Œ์€ ์šฐ๋ฆฌ๊ฐ€ ์–ป์€ Crashlytics ์Šคํƒ ์ถ”์ ์ž…๋‹ˆ๋‹ค.

# Platform: android
# Issue ID: 5beec130f8b88c29632f185d
# Session ID: 5cb483b90037000127d26eeee3e996f5_DNE_0_v2
# Date: 2019-04-15T13:15:00Z
# OS Version: 7.0
# Device: PRA-LX1
# RAM Free: 1.3%
# Disk Free: 14.3%

#0. Crashed: Thread
0  (Missing)                              0xc00d9b20 (Missing)
1  (Missing)                              0x3ffffffd (Missing)
2  libc.so                                0xeda60d64 (Missing)
3  (Missing)                              0x3fdec95c (Missing)
4  libc.so                                0xeda3223f (Missing)
5  libutils.so                            0xee283df1 (Missing)
6  (Missing)                              0xea6ac55a (Missing)
7  libart.so                              0xebc85331 (Missing)
8  (Missing)                              0x12dfd11e (Missing)
9  (Missing)                              0x12da927e (Missing)
10 system@[email protected]    0x74d6de0d (Missing)
11 (Missing)                              0x3fdec95c (Missing)
12 (Missing)                              0x12f39976 (Missing)
13 (Missing)                              0x12c2064e (Missing)
14 (Missing)                              0x70e43ada (Missing)
15 (Missing)                              0x12f43b8e (Missing)
16 libart.so                              0xebc85331 (Missing)
17 (Missing)                              0x70d268be (Missing)
18 system@[email protected]              0x716279db (Missing)
19 (Missing)                              0x70837262 (Missing)
20 (Missing)                              0x70190306 (Missing)
21 (Missing)                              0x2cb6ab0c (Missing)
22 (Missing)                              0x70d58d82 (Missing)
23 (Missing)                              0x2cb6ab0c (Missing)
24 (Missing)                              0x2cb6ab0c (Missing)
25 (Missing)                              0x70c63cee (Missing)
26 (Missing)                              0x12c2064e (Missing)
27 (Missing)                              0x70e43ada (Missing)
28 (Missing)                              0x12f43c1e (Missing)
29 libart.so                              0xebca3526 (Missing)
30 (Missing)                              0x3fdec95c (Missing)
31 (Missing)                              0x70e43ada (Missing)
32 (Missing)                              0x70e43ada (Missing)
33 (Missing)                              0x12f39976 (Missing)
34 (Missing)                              0x12f43b8e (Missing)
35 libart.so                              0xebc85331 (Missing)
36 (Missing)                              0x70d268e2 (Missing)
37 (Missing)                              0x3fdec95c (Missing)
38 libutils.so                            0xee283ced (Missing)
39 (Missing)                              0x70abe4f6 (Missing)
40 (Missing)                              0x70aadb2e (Missing)
41 libandroid_runtime.so                  0xecdb23ff (Missing)
42 (Missing)                              0x70abe4f6 (Missing)
43 (Missing)                              0x12c2fa8e (Missing)
44 system@[email protected]    0x749d1865 (Missing)
45 (Missing)                              0x12c2fa8e (Missing)
46 system@[email protected]    0x741f0347 (Missing)
47 (Missing)                              0x70d3b9ca (Missing)
48 (Missing)                              0x12c2fa8e (Missing)
49 (Missing)                              0x12c2fa8e (Missing)
50 (Missing)                              0x70abe4f6 (Missing)
51 (Missing)                              0x70aadb2e (Missing)

--

#0. Crashed: Thread
0  (Missing)                              0xc00d9b20 (Missing)
1  (Missing)                              0x3ffffffd (Missing)
2  libc.so                                0xeda60d64 (Missing)
3  (Missing)                              0x3fdec95c (Missing)
4  libc.so                                0xeda3223f (Missing)
5  libutils.so                            0xee283df1 (Missing)
6  (Missing)                              0xea6ac55a (Missing)
7  libart.so                              0xebc85331 (Missing)
8  (Missing)                              0x12dfd11e (Missing)
9  (Missing)                              0x12da927e (Missing)
10 system@[email protected]    0x74d6de0d (Missing)
11 (Missing)                              0x3fdec95c (Missing)
12 (Missing)                              0x12f39976 (Missing)
13 (Missing)                              0x12c2064e (Missing)
14 (Missing)                              0x70e43ada (Missing)
15 (Missing)                              0x12f43b8e (Missing)
16 libart.so                              0xebc85331 (Missing)
17 (Missing)                              0x70d268be (Missing)
18 system@[email protected]              0x716279db (Missing)
19 (Missing)                              0x70837262 (Missing)
20 (Missing)                              0x70190306 (Missing)
21 (Missing)                              0x2cb6ab0c (Missing)
22 (Missing)                              0x70d58d82 (Missing)
23 (Missing)                              0x2cb6ab0c (Missing)
24 (Missing)                              0x2cb6ab0c (Missing)
25 (Missing)                              0x70c63cee (Missing)
26 (Missing)                              0x12c2064e (Missing)
27 (Missing)                              0x70e43ada (Missing)
28 (Missing)                              0x12f43c1e (Missing)
29 libart.so                              0xebca3526 (Missing)
30 (Missing)                              0x3fdec95c (Missing)
31 (Missing)                              0x70e43ada (Missing)
32 (Missing)                              0x70e43ada (Missing)
33 (Missing)                              0x12f39976 (Missing)
34 (Missing)                              0x12f43b8e (Missing)
35 libart.so                              0xebc85331 (Missing)
36 (Missing)                              0x70d268e2 (Missing)
37 (Missing)                              0x3fdec95c (Missing)
38 libutils.so                            0xee283ced (Missing)
39 (Missing)                              0x70abe4f6 (Missing)
40 (Missing)                              0x70aadb2e (Missing)
41 libandroid_runtime.so                  0xecdb23ff (Missing)
42 (Missing)                              0x70abe4f6 (Missing)
43 (Missing)                              0x12c2fa8e (Missing)
44 system@[email protected]    0x749d1865 (Missing)
45 (Missing)                              0x12c2fa8e (Missing)
46 system@[email protected]    0x741f0347 (Missing)
47 (Missing)                              0x70d3b9ca (Missing)
48 (Missing)                              0x12c2fa8e (Missing)
49 (Missing)                              0x12c2fa8e (Missing)
50 (Missing)                              0x70abe4f6 (Missing)
51 (Missing)                              0x70aadb2e (Missing)

Android 7์—์„œ Samsung Galaxy S7๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ASSERT|04-17 00:30:16.272|18763|18813||libc|Fatal signal 11 (SIGSEGV), code 1, fault addr 0xbbadbeef in tid 18813 (mqt_js)
ASSERT|04-17 00:30:16.402|18920|18920||DEBUG|Build fingerprint: 'samsung/heroltexx/herolte:7.0/NRD90M/G930FXXS1DQHF:user/release-keys'
ASSERT|04-17 00:30:16.402|18920|18920||DEBUG|*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
ASSERT|04-17 00:30:16.405|18920|18920||DEBUG|ABI: 'arm64'
ASSERT|04-17 00:30:16.405|18920|18920||DEBUG|Revision: '8'
ASSERT|04-17 00:30:16.406|18920|18920||DEBUG|pid: 18763, tid: 18813, name: mqt_js  >>> com.profibackoffice.reactnative <<<
ASSERT|04-17 00:30:16.406|18920|18920||DEBUG|signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xbbadbeef
ASSERT|04-17 00:30:16.407|18920|18920||DEBUG|    x16  00000070110b1acc  x17  000000700bc121a8  x18  0000000021ecfc88  x19  000000700fed7e80
ASSERT|04-17 00:30:16.407|18920|18920||DEBUG|    x20  00000070108cf560  x21  0000006ffd4c8070  x22  000000700bc00000  x23  0000006ff9616ca0
ASSERT|04-17 00:30:16.407|18920|18920||DEBUG|    x28  ffff000000000002  x29  00000070108cf560  x30  0000007011408484
ASSERT|04-17 00:30:16.407|18920|18920||DEBUG|    x24  0000000000000007  x25  0000000000000000  x26  0000000000000000  x27  ffff000000000000
ASSERT|04-17 00:30:16.407|18920|18920||DEBUG|    x8   00000000bbadbeef  x9   00000070114b19d0  x10  0000000000000000  x11  0000006ffc4f0000
ASSERT|04-17 00:30:16.407|18920|18920||DEBUG|    x0   00000070108cf3c8  x1   00000070108cf3c8  x2   0000000000000000  x3   00000000000000a8
ASSERT|04-17 00:30:16.407|18920|18920||DEBUG|    sp   00000070108cf400  pc   000000701140848c  pstate 00000000a0000000
ASSERT|04-17 00:30:16.407|18920|18920||DEBUG|    x4   000000700bfaee80  x5   0000006ff62a4980  x6   0000006ffa6a6820  x7   0000000000000000
ASSERT|04-17 00:30:16.407|18920|18920||DEBUG|    x12  0000000000000000  x13  000000700b617c00  x14  0000000000000002  x15  00000000bd36143d
ASSERT|04-17 00:30:16.412|18920|18920||DEBUG|backtrace:
ASSERT|04-17 00:30:16.412|18920|18920||DEBUG|    #03 pc 00000000001afe80  <anonymous:000000700bdff000>
ASSERT|04-17 00:30:16.412|18920|18920||DEBUG|    #02 pc 0000000000489f2c  /data/app/com.profibackoffice.reactnative-1/lib/arm64/libjsc.so (operationLinkDirectCall+1120)
ASSERT|04-17 00:30:16.412|18920|18920||DEBUG|    #01 pc 00000000000be650  /data/app/com.profibackoffice.reactnative-1/lib/arm64/libjsc.so (_Z16WTFCrashWithInfoiPKcS0_i+24)
ASSERT|04-17 00:30:16.412|18920|18920||DEBUG|    #00 pc 00000000007e048c  /data/app/com.profibackoffice.reactnative-1/lib/arm64/libjsc.so (WTFCrash+16)

~ android/app/build.gradle ์ถ”๊ฐ€ํ•˜๋ฉด ~ ๊ณ ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ~ (์•ˆ๋จ) : ~

packagingOptions {
      pickFirst '**/libjsc.so'
      pickFirst '**/libc++_shared.so'
}

~ https://github.com/react-native-community/jsc-android-buildscripts/pull/95 ์ฐธ์กฐ ~

๋„์™€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•˜์ง€๋งŒ ํ•ด๊ฒฐ์ฑ…์ด ๋„์›€์ด๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

16 ะฐะฟั€. 2019 ะณ., ะฒ 19:12, Andrew Jack [email protected] ะฝะฐะฟะธัะฐะป (ะฐ) :

์ด๊ฒƒ์„ android / app / build.gradle์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

packagingOptions {
pickFirst ' /libjsc.so'pickFirst ' /libc++_shared.so'
}
react-native-community / jsc-android-buildscripts # 95 https://github.com/react-native-community/jsc-android-buildscripts/pull/95 ์ฐธ์กฐ
์ง€๊ธˆ ํ…Œ์ŠคํŠธ ์ค‘์ž…๋‹ˆ๋‹ค.

โ€”
๋Œ“๊ธ€์„ ๋‹ฌ์•˜ ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์‹  ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub https://github.com/facebook/react-native/issues/24261#issuecomment-483728028 ์—์„œ ๋ณด๊ฑฐ๋‚˜ https://github.com/notifications/unsubscribe-auth/ ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ android/app/build.gradle ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

packagingOptions {
      pickFirst '**/libjsc.so'
      pickFirst '**/libc++_shared.so'
}

react-native-community / jsc-android-buildscripts # 95 ์ฐธ์กฐ

์ง€๊ธˆ ํ…Œ์ŠคํŠธ ์ค‘์ž…๋‹ˆ๋‹ค.

@AndrewJack ์ด ๋‹น์‹ ์„ ์œ„ํ•ด

์ด๊ฒƒ์„ android/app/build.gradle ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

packagingOptions {
      pickFirst '**/libjsc.so'
      pickFirst '**/libc++_shared.so'
}

react-native-community / jsc-android-buildscripts # 95 ์ฐธ์กฐ

์ง€๊ธˆ ํ…Œ์ŠคํŠธ ์ค‘์ž…๋‹ˆ๋‹ค.

์Šฌํ”„๊ฒŒ๋„ ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ๊ฑฐ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค.

Play ์Šคํ† ์–ด์—์„œ 64 ๋น„ํŠธ ๋นŒ๋“œ๋ฅผ ๊ฐ€์ ธ ์™”์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ 64 ๋น„ํŠธ ๋นŒ๋“œ์˜ ์ถฉ๋Œ๊ณผ ์ „ํ˜€ ๊ด€๋ จ์ด ์—†์„ ์ˆ˜ ์žˆ์ง€๋งŒ armeabi-v7a ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” Galaxy S7 ์žฅ์น˜๋Š” ์ด์ œ ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŽ์ด ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘ ์ฆ‰์‹œ.

๋‹ค๋ฅธ ์žฅ์น˜์™€ ๋น„๊ตํ•˜์—ฌ S7์˜ ์ฐจ์ด์ ์ด ๋ฌด์—‡์ธ์ง€ ์ •๋ง ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

Version Code: 10000036
Version Name: 2.3.4
Android: 8.0.0
Android Build: R16NW
Manufacturer: samsung
Model: SM-G930F
Date: undefined

com.facebook.react.bridge.UnexpectedNativeTypeException: TypeError: expected dynamic type `double', but had type `null'
  at com.facebook.react.bridge.ReadableNativeMap.getIntNative
  at com.facebook.react.bridge.ReadableNativeMap.getInt
  at com.facebook.react.g.a.a
  at com.facebook.react.modules.core.ExceptionsManagerModule.reportSoftException
  at java.lang.reflect.Method.invoke(Method.java:-2)
  at com.facebook.react.bridge.JavaMethodWrapper.invoke
  at com.facebook.react.bridge.JavaModuleWrapper.invoke
  at com.facebook.react.bridge.queue.NativeRunnable.run
  at android.os.Handler.handleCallback(Handler.java:789)
  at android.os.Handler.dispatchMessage(Handler.java:98)
  at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage
  at android.os.Looper.loop(Looper.java:164)
  at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run
  at java.lang.Thread.run(Thread.java:764)

@taschik ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๊ณ  jsc-android-buildscripts ๊ตฌ์„ฑ ์ˆ˜์ •์ด ์ž‘๋™ ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์žกํžˆ์ง€ ์•Š์€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ธฐ์— ์˜ํ•ด ์žกํž ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด Android ์•ฑ์—์„œ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

Thread.setDefaultUncaughtExceptionHandler(...);

์˜ˆ์™ธ ์ด๋ฆ„ ๋งŒ ์ฝ˜์†”์— ์“ด ๋‹ค์Œ ์ œ์–ด๋ฅผ ๊ธฐ๋ณธ ํ•ธ๋“ค๋Ÿฌ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์žˆ์ง€๋งŒ ํ•ด๋‹น ์ฝ”๋“œ๋Š” ์•ฑ ์ถฉ๋Œ ์ „์— ์‹คํ–‰๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

Crashlytics๊ฐ€์ด ์˜ˆ์™ธ๋ฅผ ๊ธฐ๋กํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ์กฐ์‚ฌํ•˜๋ ค๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ทธ๊ฒƒ์ด ์ด์œ  ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค ... ์ €๋Š” ํŒจ๋ธŒ๋ฆญ ์ฝ˜์†”์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ ํฌ๋ž˜์‹œ๋ฅผ ํ•œ ๋‘ ๋ฒˆ ๋ณธ ๊ฒƒ์„ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ crashlytics๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ํฌ๋ž˜์‹œ๋ฅผ ๊ธฐ๋ก ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ์ด ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@SpertsyanKM ์ถฉ๋Œ์€ ndk ์ˆ˜์ค€์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Crashlytics NDK ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์œผ๋ฉด Firebase ์ฝ˜์†”์— ๋น„์ •์ƒ ์ข…๋ฃŒ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. https://docs.fabric.io/android/crashlytics/ndk.html

Thread.setDefaultUncaughtExceptionHandler ๋Š” Java ์˜ˆ์™ธ ๋งŒ ํฌ์ฐฉํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋Š˜ RN 0.59.5๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ๋Š”๋ฐ ์—ฌ์ „ํžˆ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์—ฌ๋Ÿฌ๋ถ„, ์ €๋Š” 0.59.5์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  AndroidManifest.xml์—์„œ android : screenOrientation = "portrait"๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

@Jeijie ๋‚˜๋Š” ์ด๋ฏธ ๊ฑฐ๊ธฐ์— ๊ทธ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์•˜์ง€๋งŒ ์–ด์จŒ๋“  ์ถ”๋ฝํ–ˆ์Šต๋‹ˆ๋‹ค.

REDMI NOTE 4X Android 7.0 ๋ฐ huawei HRY AL00A Android 9์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ

SIGSEGV(SEGV_MAPERR)
1 #00 pc 000000000042c064 /data/app/com.example.app-gUSG17yMVBByrSNhEo7j7A==/lib/arm64/libjsc.so [arm64-v8a]
2 #01 pc 0000000000429638 /data/app/com.example.app-gUSG17yMVBByrSNhEo7j7A==/lib/arm64/libjsc.so [arm64-v8a]
3 #02 pc 0000000000429d28 /data/app/com.example.app-gUSG17yMVBByrSNhEo7j7A==/lib/arm64/libjsc.so [arm64-v8a]
4 #03 pc 000000000041664c /data/app/com.example.app-gUSG17yMVBByrSNhEo7j7A==/lib/arm64/libjsc.so [arm64-v8a]
5 #04 pc 00000000007ea4cc /data/app/com.example.app-gUSG17yMVBByrSNhEo7j7A==/lib/arm64/libjsc.so [arm64-v8a]
6 #05 pc 00000000007eabcc /data/app/com.example.app-gUSG17yMVBByrSNhEo7j7A==/lib/arm64/libjsc.so [arm64-v8a]
7 #06 pc 00000000007e0fec /data/app/com.example.app-gUSG17yMVBByrSNhEo7j7A==/lib/arm64/libjsc.so [arm64-v8a]
8 #07 pc 00000000007ee4fc /data/app/com.example.app-gUSG17yMVBByrSNhEo7j7A==/lib/arm64/libjsc.so [arm64-v8a]
9 #08 pc 00000000007ffdb8 /data/app/com.example.app-gUSG17yMVBByrSNhEo7j7A==/lib/arm64/libjsc.so [arm64-v8a]
10 #09 pc 0000000000083550 /system/lib64/libc.so (__pthread_start(void*)+36) [arm64-v8a]
11 #10 pc 00000000000241a0 /system/lib64/libc.so (__start_thread+68) [arm64-v8a]
12 java:
13 [Failed to get Java stack]

Galaxy S7 Edge / Android 7.0 ๋ฐ React-Native์˜ ์„ธ ๊ฐ€์ง€ ๋ฒ„์ „ (0.58.4, 0.58.5 ๋ฐ 0.59.5)์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
๋‹ค๋ฅธ Android ๊ธฐ๊ธฐ์—์„œ๋Š” ์ถฉ๋Œ์ด ๊ฐ์ง€๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ์ด ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ์œ ์ผํ•œ ํ•ด๊ฒฐ์ฑ…์€ 32 ๋น„ํŠธ์—์„œ๋งŒ ์•ฑ์„ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Play ์Šคํ† ์–ด๊ฐ€ ๋” ์ด์ƒ 32 ๋น„ํŠธ ์•ฑ๋งŒ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋Š” 8 ์›” 1 ์ผ์— ํ•ด๊ฒฐ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋™์ผํ•œ ๊ฒฝํ—˜, Android <= 7.0 (8.0 ์•„๋‹˜)์˜ Galaxy S7์— ๊ตญํ•œ๋ฉ๋‹ˆ๋‹ค. 64 ๋น„ํŠธ ์ง€์›์„ ํ™œ์„ฑํ™”ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

gradle ๊ธฐ๋ณธ ๊ตฌ์„ฑ์—์„œ 64 ๋น„ํŠธ๋„ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
```
defaultConfig {
applicationId _applicationId
minSdk ๋ฒ„์ „ 16
targetSdkVersion 27
versionCode _versionCode
versionName _versionName
ndk {
abiFilters "armeabi-v7a", "x86"
}

    packagingOptions {
        exclude "lib/arm64-v8a/libgnustl_shared.so"
    }
    renderscriptTargetApi 27
    renderscriptSupportModeEnabled true
    vectorDrawables.useSupportLibrary = true /
    multiDexEnabled true 
}```

์—ฌ๊ธฐ์„œ ํ•˜๋‚˜ ๋”, ์ผ๋ถ€ Mediatek ์žฅ์น˜์—์„œ๋„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.
Alcatel A5 (ELSA6)
Alcatel 1x / TCL L9 (U5A_PLUS_4G)
x64๋ฅผ ์ง€์›ํ•˜๋Š” MediaTek SoC๊ฐ€์žˆ๋Š” ๋‹ค๋ฅธ ์žฅ์น˜

์•ˆ๋…•ํ•˜์„ธ์š”. ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ~ 64 ๋น„ํŠธ ์ง€์›์„ ์ œ๊ฑฐํ•˜๋Š” ์ˆ˜์ •์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค ~ ์ผ๋ถ€ ์‚ฌ์šฉ์ž์˜ ๋ฌธ์ œ ๋งŒ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  2. ~ ์‚ฌ์šฉ์ž๊ฐ€ _ ํœด๋Œ€ ์ „ํ™”๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ _ (32 ๋น„ํŠธ ์•ฑ์œผ๋กœ ์ „ํ™˜ ํ•  ํ•„์š” ์—†์Œ)ํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ํ•ด๊ฒฐํ•˜๋„๋กํ–ˆ์Šต๋‹ˆ๋‹ค ~ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

64 ๋น„ํŠธ ์ง€์›์„ ์ œ๊ฑฐํ•˜๋ฉด ์ถฉ๋Œ ๋ณด๊ณ ์„œ๊ฐ€ ~ 90 % ๊ฐ์†Œํ–ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์—ฌ์ „ํžˆ ์ผ๋ถ€ ์žฅ์น˜์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ˜„์žฌ์˜ "์ˆ˜์ •"์€ ์ œ๊ฐ€ ์ง€๊ธˆ ํ•  ์ˆ˜์žˆ๋Š” ์ตœ์„ ์ž…๋‹ˆ๋‹ค.

OnePlus 3์—์„œ๋„ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์ง€๋งŒ 64 ๋น„ํŠธ ์ง€์›์„ ์ œ๊ฑฐํ•ด๋„ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊นจ๋—ํ•œ react-native init ํ”„๋กœ์ ํŠธ (์•ฑ์˜ APK๋ฅผ ์—ด ๋•Œ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ๋„ ์ถฉ๋Œ)๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ฒˆ๋“ค ๋ถ„ํ• ๋กœ ํ”„๋กœ๋•์…˜์—์„œ ์ถฉ๋Œํ•˜๋Š” ๋™์ผํ•œ ๋ฌธ์ œ s7 edge android 7.0, other๋Š” ๊ดœ์ฐฎ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์‹ ํ˜ธ 11 (SIGSEGV), ์ฝ”๋“œ 1 (SEGV_MAPERR)
์—ญ ์ถ”์  :
# 00 PC 000000000009e144
# 01 pc 00000000000a4a70

์ด ๋ฌธ์ œ๋Š” ์ด๋ฏธ ์›นํ‚ท ์ €์žฅ์†Œ์—์„œ ์‹๋ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ช‡ ๋‹ฌ ์ „์—์ด ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์„ ๋•Œ ๋Œ“๊ธ€์„ ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค : https://github.com/WebPlatformForEmbedded/WPEWebKit/issues/327#issuecomment -436781890

๋…ธ๋ ฅ์„ ์กฐ์ •ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ  : Youi ์—์„œ๋Š” ๋น„ํ‘œ์ค€ ๋ฐฉ์‹์œผ๋กœ RN์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ž์ฒด 64 ๋น„ํŠธ JSC๋ฅผ ๊ตฌ์ถ•ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—์ด ๋ฌธ์ œ๋Š” 0.58 ์ด์ „์— ํ›จ์”ฌ ์ผ์ฐ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ณตํ†ต ์š”์†Œ๋Š” Android 6.0 ๋˜๋Š” 7.0 (Level 23 ๋ฐ 24) ๋ฐ ARM 64 ๊ธฐ๊ธฐ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ด ์กฐํ•ฉ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์žฅ์น˜๋Š” S7์ž…๋‹ˆ๋‹ค. S7์„ Android 8๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

Android ARM 64 ๋น„ํŠธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์ถฉ๋Œ์„ ์žฌํ˜„ํ–ˆ์ง€๋งŒ Android ARM ์—๋ฎฌ๋ ˆ์ดํ„ฐ ์ด๋ฏธ์ง€๊ฐ€ ๋„ˆ๋ฌด ๋ถˆ์•ˆ์ •ํ•˜๊ณ  ๋ฒ„๊ทธ๊ฐ€ ๋งŽ์•„ ์ž‘์—… ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋””๋ฒ„๊น… ํ•  S7๋„ ์žˆ๋Š”๋ฐ, ์‚ผ์„ฑ์€์ด๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์ง€ ๋ชปํ–ˆ์ง€๋งŒ Android 7๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

@kmagiera & @kudo ์ตœ๊ทผ์— JSC์˜ ์ƒˆ ๋ฒ„์ „์„ ์ถœ์‹œ https://github.com/react-native-community/jsc-android-buildscripts/pull/95

@AndrewJack WebKit ๋ณด์•ˆ ํŒจ์น˜ ๋ฐ https://github.com/facebook/react-native/pull/24672์— ๋Œ€ํ•œ libc ++ _ shared.so ์ œ๊ฑฐ ์ „์šฉ ์ƒˆ ๋ฆด๋ฆฌ์Šค

AFAIK, ๋‹ค์–‘ํ•œ JSC ์ถฉ๋Œ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๊ฐ€๋ณด๊ณ  ๋œ๋Œ€๋กœ ์ผ๋ถ€๋Š” operationLinkDirectCall์—์„œ, ์ผ๋ถ€๋Š” https://github.com/react-native-community/jsc-android-buildscripts/issues/84 ์™€ ๊ฐ™์€ NPE
๋Œ€๋ถ€๋ถ„์€ JIT์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
JIT ์ถฉ๋Œ ๊ฒฝ๋กœ๋Š” ์‚ฌ๋‚ด์—์„œ ์žฌํ˜„ํ•˜๊ธฐ ์–ด๋ ต๊ณ  ๋ฌธ์ œ ํ•ด๊ฒฐ๋„ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
๋ช‡ ๊ฐ€์ง€ ์ž ์žฌ์  ์ธ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์ง€๋งŒ ์ด๊ฒƒ์ด ์ง„์ •์œผ๋กœ ์ถฉ๋Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ• ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์ˆ˜์ • ์‚ฌํ•ญ ์ค‘ ํ•˜๋‚˜๋Š” DFG_JIT ๋ฅผ

  • ์—…์ŠคํŠธ๋ฆผ ๊ด€๋ จ ์ž‘์—… ์˜

  • ์ตœ์‹  JSC (WebKitGTK 2.24)์—๋Š” ๋งŽ์€ JIT ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ๋„์›€์ด๋œ๋‹ค๋ฉด ์‹œ๋„ํ•ด ๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

IMO, ์‚ฌ๋‚ด ๋ณต์ œ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋Œ€์•ˆ์€ ์‹คํ—˜ ๋œ ๋นŒ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚ด ๊ณ„ํš์€ JSC๋ฅผ ๋” ์‰ฝ๊ฒŒ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. yarn add jsc-android@experiment . ์ด๊ฒƒ์€ RN 0.60์—์„œ ๋ฐœ์ƒํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ ์–ด๋„ ์šฐ๋ฆฌ๋Š” ์ถฉ๋Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•œ๋ฐœ ์•ž์„œ ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด์— ์‹ ๋ขฐํ•  ์ˆ˜์žˆ๋Š” ์žฌํ˜„ ์ฝ”๋“œ์™€ ํ™˜๊ฒฝ์ด ์žˆ๋‹ค๋ฉด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด react-native-navigation์˜ repo๊ฐ€ โ€‹โ€‹์žˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค.
https://github.com/react-native-community/jsc-android-buildscripts/issues/84#issue -407898908

๋„์›€์ด๋œ๋‹ค๋ฉด Android 9๊ฐ€ ์„ค์น˜๋œ Pixel 2์—์„œ๋„ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
APK๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ถฉ๋Œ ๋กœ๊ทธ๋ฅผ ์–ป์„ ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๋Ÿฌํ•œ ์ถฉ๋Œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๊บผ์ด ๋„์™€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ Android ๊ฐœ๋ฐœ์— ๋Œ€ํ•ด์„œ๋Š” ์ž˜ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

@quietbits , ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ ๋Œ€๋ถ€๋ถ„์˜ ๋กœ๊ทธ๋Š” ๊ทธ๋‹ค์ง€ ๋„์›€์ด๋˜์ง€๋Š” ์•Š์ง€๋งŒ

adb logcat ์‚ฌ์šฉํ•˜์—ฌ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋Š”์‹œ๊ธฐ๋ฅผ ์ฐพ์œผ์‹ญ์‹œ์˜ค.-์ด๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค (์ •ํ™•ํžˆ ํ‘œ์‹œ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ ์ƒ๋‹จ์—์„œ ์ถ”์ถœํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ทŒ ํ•œ ๊ฒƒ์ด ํ‘œ์‹œ๋˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค). ๋ฐ–):

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/heroqltetmo/heroqltetmo:8.0.0/R16NW/G930TUVU4CRI2:user/release-keys'
Revision: '14'
ABI: 'arm'
pid: 32435, tid: 32482, name: mqt_js  >>> com.YOURAPP <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xcd
Cause: null pointer dereference

๋˜ํ•œ ์ผ๋ฐ˜์ ์œผ๋กœ ๋กœ๊ทธ๊ฐ€ "์‚ญ์ œ ํ‘œ์‹œ"์— ๊ธฐ๋ก๋˜์—ˆ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.

์‚ญ์ œ ํ‘œ์‹œ๋ฅผ ํ•ด์ œํ•˜๋ ค๋ฉด adb bugreport ./MySuperSpecialBugReport ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.์ด ๋ถ€๋ถ„์€ ๋ถ„๋ช…ํžˆ ์›ํ•˜๋Š” ๊ฒฝ๋กœ๊ฐ€๋ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ zip์œผ๋กœ ํ’€๊ณ  ์••์ถ•์„ ํ’€๊ณ  (๋Œ€๋ถ€๋ถ„์˜ ์žฅ์น˜์—์„œ) ./MySuperSpecialBugReport/FS/data/tombstones ๋กœ ์ด๋™ ํ•œ ๋‹ค์Œ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ๋กœ tombstone์„ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์ด๋Ÿฌํ•œ ์ถฉ๋Œ์˜ ํŠน์„ฑ์„ ๊ณ ๋ คํ•  ๋•Œ ๊ทธ๋‹ค์ง€ ์œ ์ตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ mqt_js์™€ ๋‚ฎ์€ ํฌ์ธํ„ฐ ์ฃผ์†Œ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ 32 ๋น„ํŠธ ์ „์šฉ APK์—์„œ๋„ ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค (๋œ ์ด์ƒํ•˜๊ฒŒ / ์˜ˆ์ธกํ•  โ€‹โ€‹์ˆ˜ ์—†์ง€๋งŒ).

===

@ Kudoโ€” ๋‹ค์–‘ํ•œ JSC๋ฅผ๋ณด๋‹ค ์‰ฝ๊ฒŒ โ€‹โ€‹์‹œํ—˜ํ•ด๋ณด๊ณ  ๊ทธ ๊ธฐ๋Šฅ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งค์šฐ ๋น„๊ฒฐ์ •์ ์ด๊ณ  ์˜ˆ์ธกํ•  ์ˆ˜์—†๋Š” ์ถฉ๋Œ๋กœ 0.59๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐ์žˆ์–ด ์ง€๊ธˆ๊นŒ์ง€ ์ง„์ •ํ•œ ๊ณ ํ†ต ํฌ์ธํŠธ์˜€์Šต๋‹ˆ๋‹ค (ํŠน์ • ์žฅ์น˜์—์„œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค ... ๋•Œ๋กœ๋Š”).

๊ธฐํ˜ธํ™” ๋œ ์—ญ ์ถ”์ ์„ ์–ป๊ธฐ ์œ„ํ•ด adb logcat๊ณผ ndk-stack ์„ ๊ฒฐํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด RN 059 ์ฃผ์‹ JSC ([email protected]) ๋ฐ arm64-v8a ABI๋ฅผ ํƒ€๊ฒŸํŒ…ํ•ฉ๋‹ˆ๋‹ค.

wget https://registry.npmjs.org/jsc-android/-/jsc-android-236355.0.0.tgz
tar xf jsc-android-236355.0.0.tgz
unzip package/dist/org/webkit/android-jsc/r236355/android-jsc-r236355.aar
adb logcat | ndk-stack -sym jni/arm64-v8a/libjsc.so

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

64 ๋น„ํŠธ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ Google Play 64 bit support policy. ๋”ฐ๋ฅธ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹™๋‹ˆ๋‹ค. 1 August 2019 ์ดํ›„์— ๊ฒŒ์‹œ๋˜๋Š” ์•ฑ์— ์ž ์žฌ์ ์œผ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ํ•ด๊ฒฐ์ฑ…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. @hramos ์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ฃผ๋ชฉ ํ•ด์ฃผ์„ธ์š”.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ์ €๋Š” 0.59.8์—์„œ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ํ•ด๊ฒฐ์ฑ…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,
์ €๋Š” JSC ์ถฉ๋Œ ๋ฌธ์ œ์™€ jsc-android-buildscripts์˜ ๊ณต๋™ ์ž‘์—…์ž๋ฅผ ๋•๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
RN 0.59 JSC๋Š” ์‹ค์ œ๋กœ jsc-android-buildscripts ์ž…๋‹ˆ๋‹ค.

์ถฉ๋Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์ถฉ๋Œ ์—ญ ์ถ”์ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์•„๋ž˜ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ์—ญ ์ถ”์ ์„ ๋ฐ›๊ณ  ์—ฌ๊ธฐ์— ๊ฒŒ์‹œํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ์ž ์žฌ์  ์ธ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ๊ธฐ ์œ„ํ•ด ํ›„์† ์กฐ์น˜๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ndk-build๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

wget https://registry.npmjs.org/jsc-android/-/jsc-android-236355.0.0.tgz
tar xf jsc-android-236355.0.0.tgz
unzip package/dist/org/webkit/android-jsc/r236355/android-jsc-r236355.aar
adb logcat -c
adb logcat | ndk-stack -sym jni/arm64-v8a/libjsc.so

์‚ผ์„ฑ S7์—์„œ ๋งŽ์€ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ S7์ด ์—†์Šต๋‹ˆ๋‹ค.
์ถ”๊ฐ€ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์–ป์œผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”.

@Kudo ์ด๊ฒƒ์€ RN 0.59.8 ์˜ ์ƒˆ ํ”„๋กœ์ ํŠธ์—์„œ ํ•ด๋‹น ๋ช…๋ น์„ ์‹คํ–‰ ํ•œ ๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
๋‚˜๋Š” ๋””๋ฒ„๊ทธ ๋ฐ ๋ฆด๋ฆฌ์Šค ๋นŒ๋“œ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ๋กœ๊ทธ๋กœ jsc๋ฅผ ์ง์ ‘ ์ปดํŒŒ์ผํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

********** Crash dump: **********
Build fingerprint: โ€˜samsung/heroltexx/herolte:7.0/NRD90M/G930FXXU1DQEL:user/release-keysโ€™
#00 0x00000000007e048c /data/app/com.testproj-2/lib/arm64/libjsc.so (WTFCrash+16)
                                                                    WTFCrash
                                                                    ??:0:0
#01 0x00000000000be650 /data/app/com.testproj-2/lib/arm64/libjsc.so (_Z16WTFCrashWithInfoiPKcS0_i+24)
                                                                    WTFCrashWithInfo(int, char const*, char const*, int)
                                                                    ??:0:0
#02 0x0000000000489f2c /data/app/com.testproj-2/lib/arm64/libjsc.so (operationLinkDirectCall+1120)
                                                                    operationLinkDirectCall
                                                                    ??:0:0
#03 0x00000000001710f0 <anonymous:00000072adbff000>
Crash dump is completed

๋‚˜๋Š” S7์„ ์†์— ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์ด๊ฒƒ์„ ์‹œ๋„ํ•˜๊ณ  ์•Œ์•„ ๋‚ด๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๊ฒƒ์„ ์‹คํ–‰ ํ•ด ๋ณผ ์ˆ˜์žˆ์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

๋‚ด ์ œ์•ˆ์€ JIT๊ฐ€ ๋น„ํ™œ์„ฑํ™” ๋œ ์ƒํƒœ ์—์„œ JSC๋ฅผ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. OS์˜ ๋ณด์•ˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด JIT๋ฅผ ๋ฐฉํ•ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ์ธกํ•  ์ˆ˜์—†๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘์—….

@MalcolmScruggs์™€ ๋™์ผํ•œ ์ถฉ๋Œ ๋กœ๊ทธ๋ฅผ ์žฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. S7-Android 7.1.2-LineageOS 14.1.

RN 0.59.8 ๋ฐ ์ตœ์‹  ๋ฒ„์ „์˜ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—์„œ .

์ถฉ๋Œ์„ ์žฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ RN ํ…œํ”Œ๋ฆฟ์€ ํ™”๋ฉด์„ ์•ฝ๊ฐ„ ํƒญํ•œ ํ›„ ์ถฉ๋Œ์„ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ Repo- https: //github.com/AndrewJack/jsc_crash/tree/rn_master_branch
์ถฉ๋Œ ๋กœ๊ทธ๋Š” README.md์— ์žˆ์Šต๋‹ˆ๋‹ค.


๋‹ค์Œ ๋‹จ๊ณ„ : JIT๊ฐ€ ๋น„ํ™œ์„ฑํ™” ๋œ JSC์˜ ์ž์ฒด ๋ฒ„์ „ ๋นŒ๋“œ


์ƒˆ ๋ฒ„์ „์˜ Android์— S7์ด ์žˆ๊ณ  ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์ด์žˆ๋Š” ๊ฒฝ์šฐ. ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ํ•œ ์ผ์ž…๋‹ˆ๋‹ค.

์ด ์†Œํ”„ํŠธ์›จ์–ด ๋‹ค์šด๋กœ๋“œ :

  1. TWRP ๋ณต๊ตฌ ์„ค์น˜ (odin [์œˆ๋„์šฐ ํ•„์š”] ๋˜๋Š” ๊ธฐํƒ€ ๋ฐฉ๋ฒ• ์‚ฌ์šฉ)
  2. ๋ณต๊ตฌ๋กœ ๋ถ€ํŒ…
  3. ๋งˆ์šดํŠธ ์Šคํ† ๋ฆฌ์ง€
  4. LineageOS rom ๋ฐ gapps ํŒจํ‚ค์ง€ ๋ณต์‚ฌ
  5. Flash LineageOS ๋ฐ gapps ์ด๋ฏธ์ง€ ์„ค์น˜
  6. ์žฌ๋ถ€ํŒ…ํ•˜์‹ญ์‹œ์˜ค.

์ตœ์‹  ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋งˆ์Šคํ„ฐ์™€ @Kudo ์˜ ํฌํฌ์—์„œ ๋˜๋Š” no-jit ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ถฉ๋Œ์„ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

https://github.com/AndrewJack/jsc_crash/tree/no_dfg_jit
https://github.com/AndrewJack/jsc_crash/tree/no_jit

@AndrewJack Amazing, ์‹คํ—˜ ํ•œ ๋นŒ๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋น ๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.
์˜๊ฒฌ์„ ๋ณด๋‚ด ์ฃผ์…”์„œ ๊ฐ์‚ฌ ๋“œ๋ฆฌ๋ฉฐ ์ด๋Ÿฌํ•œ ๋ฒ„์ „์ด ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

์นœ์• ํ•˜๋Š”,

๋‘ ๊ฐœ์˜ ์‹คํ—˜ ๋œ JSC ๋ฒ„์ „์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์‹œ๋„ํ•ด๋ณด์‹ญ์‹œ์˜ค.
์—ฌ๊ธฐ์— ๊ฐ„๋‹จํ•œ ๋‹จ๊ณ„ :
https://gist.github.com/Kudo/cc40662163fbd69dd01d66fd99476c17

ํ•œ ๊ฐ€์ง€ ์‹คํ—˜ ๋ฒ„์ „์€ ํ•œ ์ข…๋ฅ˜์˜ JIT๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” @matthargett ์—์„œ JIT๋ฅผ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์ด ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•ด ์ค€๋‹ค๋ฉด ๋‚ด ์š”์ ์— ์–ธ๊ธ‰ ๋œ๋Œ€๋กœ ์ „๋ฐ˜์ ์ธ ์„ฑ๋Šฅ ๋ฐ TTI์— ๋Œ€ํ•ด์„œ๋„ ํ”ผ๋“œ๋ฐฑ์„ ๋ณด๋‚ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@Kudo ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ด๋Ÿฌํ•œ ๋นŒ๋“œ์˜ ๋™์‹œ GC์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? 32 ๋น„ํŠธ ๋ฒ„์ „๊ณผ ๋‹ค๋ฅธ ์ฐจ์ด์ ์ด์žˆ๋Š” ๊ณณ์—์„œ ์–ธ๊ธ‰ ํ•œ ๊ฒƒ์„ ๋ณด์•˜์ง€๋งŒ ๋” ์ด์ƒ ๊ทธ ์ฃผ์„์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ถฉ๋Œ์ด ์ง€์†๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ฐ€์ง€๊ณ  ๋†€ ๊ฐ€์น˜๊ฐ€์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์ผ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@wbercx ๋™์‹œ GC ๋˜๋Š” ๋™์‹œ JS (๋™์‹œ JIT)๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?
๊ธฐ๋ณธ์ ์œผ๋กœ ๋™์‹œ GC๋Š” arm64 ๋ฐ x64์—์„œ๋งŒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๋™์‹œ GC๋Š” ์ถฉ๋Œ ๋ฌธ์ œ์™€ ๊ด€๋ จ์ด ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํž™ ๊ด€๋ฆฌ์— ๊ด€ํ•œ ๊ฒƒ์ด์ง€ JIT์™€ ๊ด€๋ จ์ด ์—†์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

๋‘ ๋นŒ๋“œ ๋ชจ๋‘์—์„œ ๋™์‹œ JS๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
(๊ธฐ๋ณธ์ ์œผ๋กœ ENABLE(DFG_JIT) && USE(JSVALUE64) ๋Œ€ํ•ด์„œ๋งŒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.)

BTW, JavaScriptCore์˜ JIT๋Š” ๋ณต์žกํ•˜๋ฉฐ ์ด์— ๋Œ€ํ•œ ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ ํ‹€๋ ธ๋‹ค๋ฉด ์ž์œ ๋กญ๊ฒŒ ์ง€์ ํ•˜์‹ญ์‹œ์˜ค.

@Kudo no-jit ๋ฐ no-dfg-jit ์‹คํ—˜์šฉ JSC ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด ๋ณด์•˜์ง€๋งŒ ์ถฉ๋Œ์„ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ @AndrewJack์ด ๋ณด๊ณ  ํ•œ ๊ฒƒ๊ณผ ์ผ์น˜ํ•˜๋Š” ๊ฒƒ

๋‚˜๋Š” ๊ธฐ๋ณธ ํ”„๋กœ์ ํŠธ์—์„œ ์ด๊ฒƒ์„ ์‹œ๋„ํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์— ๋Œ€ํ•ด์„œ๋Š” ์–ธ๊ธ‰ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋” ๋งŽ์€ ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.์ด ์ถฉ๋Œ๋„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
์‚ผ์„ฑ Galaxy S7 (herolte), Android 7.0
Oppo F7 (CPH1819), Android 8.1

0.58.5์—์„œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Galaxy S7. ์•ˆ๋“œ๋กœ์ด๋“œ 6.0. 32 ๋น„ํŠธ ๋นŒ๋“œ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

32 ๋น„ํŠธ๋กœ ๋˜ ๋Œ๋ฆฐ ํ›„์—๋„ ์—ฌ๊ธฐ์—์„œ๋„ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@MalcolmScruggs ๋‘ ์‹คํ—˜ ๋ฒ„์ „์ด ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ๋“ค์œผ๋‹ˆ ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค.
DFG_JIT๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์ ์–ด๋„ JIT ์˜ต์…˜์€ ์ด์ „ JSC์™€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

@Kudo ์˜ํ–ฅ์„๋ฐ›๋Š” ์žฅ์น˜ / CPU์—๋งŒ DFG_JIT ์„ (๋ฅผ) ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ณ„ํš์ž…๋‹ˆ๊นŒ?

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ผ๋ถ€ ์ถฉ๋Œ์„ ์ˆ˜์ •ํ•˜๋Š” React Native (0.59.8)์˜ ๋งˆ์ง€๋ง‰ ๋ฒ„์ „ (๋ฆด๋ฆฌ์Šค ๋…ธํŠธ์— ์–ธ๊ธ‰ ๋จ)์œผ๋กœ ์‹œ๋„ ํ–ˆ์Šต๋‹ˆ๊นŒ?
https://github.com/facebook/react-native/releases

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ผ๋ถ€ ์ถฉ๋Œ์„ ์ˆ˜์ •ํ•˜๋Š” React Native (0.59.8)์˜ ๋งˆ์ง€๋ง‰ ๋ฒ„์ „ (๋ฆด๋ฆฌ์Šค ๋…ธํŠธ์— ์–ธ๊ธ‰ ๋จ)์œผ๋กœ ์‹œ๋„ ํ–ˆ์Šต๋‹ˆ๊นŒ?
https://github.com/facebook/react-native/releases

์ œ ๊ฒฝ์šฐ์—๋Š” 0.59.8์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ๊ทธ ์ดํ›„๋กœ๋Š” ์•„๋ฌด๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์•˜ ๊ธฐ ๋•Œ๋ฌธ์— 0.57.8๋กœ ๋˜๋Œ ๋ ธ์Šต๋‹ˆ๋‹ค. ์ด ๋ฒ„๊ทธ๋Š” ์•ฑ์„ ์—ด ๋•Œ ์ฆ‰์‹œ ์ถฉ๋Œ์„ ์ผ์œผํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ํŠนํžˆ ๋‚˜์ฉ๋‹ˆ๋‹ค. ๋‚ด ์•ฑ์€ ๋ฆฌ๋ทฐ์—์„œ ๊ฝค ์ž˜๋ž์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์žฅ์น˜์—๋Š” ์‹ ํ˜ธ 11 ์ถฉ๋Œ์ด ์žˆ์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜ ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜ ๋ชจ๋ฐ”์ผ GM8 Go-Android 8.1
Motorola Moto E-Android 7.1
์‚ผ์„ฑ Galaxy A6 +-Android 8.0
์‚ผ์„ฑ Galaxy Grand Prime Pro-Android 8.0
์‚ผ์„ฑ Galaxy Tab S2-Android 8.0
์‚ผ์„ฑ Galaxy J5 Prime-Android 8.0
์‚ผ์„ฑ Galaxy J6-Android 8.0
์‚ผ์„ฑ Galaxy J7 Max-Android 8.1

์ด๋Ÿฌํ•œ ์žฅ์น˜๋Š” == / lib / arm64 / libjsc.so ์™€ ๊ฐ™์€ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด ๋‚ด๋ถ€ ์ž‘๋™์— ๋Œ€ํ•ด ์ถฉ๋ถ„ํžˆ ์•Œ์ง€ ๋ชปํ•˜์ง€๋งŒ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Huawei Y9-Android 8.1
Oppo RMX1811-Android 8.1
Oppo R15-Android 8.1
Motorola Moto X-Android 9.0
Nokia 3-Android 8.1
์‚ผ์„ฑ Galaxy Note9-Android 9.0
์‚ผ์„ฑ Galaxy S9-Android 9.0
Xaomi Redmi Note 5 Pro-Android 8.1

@ harryt2 ๋ชฉ๋ก์— ์žฅ์น˜๋ฅผ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜ ๋งŒ์žˆ๋Š” Signal 11 ์ถฉ๋Œ :

์‚ผ์„ฑ Galaxy Note 9-Android 9.0
Huawei Honor 8X-Android 9.0
์‚ผ์„ฑ Galaxy A7 (2018)-Android 9.0
์‚ผ์„ฑ Galaxy S9-Android 9.0
์‚ผ์„ฑ Galaxy A6 +-Android 9.0
Nokia Nokia 8-Android 9.0
Huawei Huawei P30 lite-Android 9.0
์‚ผ์„ฑ Galaxy Note8-Android 9.0
์‚ผ์„ฑ Galaxy A9-Android 8.0
์‚ผ์„ฑ Galaxy S7-Android 8.0
...
๋ชฉ๋ก์€ ~ 65 ๊ฐœ์˜ ๋‹ค๋ฅธ ์žฅ์น˜์™€ 7.0์—์„œ 9.0 ์‚ฌ์ด์˜ Android ๋ฒ„์ „์œผ๋กœ ๊ณ„์†๋ฉ๋‹ˆ๋‹ค.

์ด ์žฅ์น˜์—์„œ ์˜ค๋ฅ˜๊ฐ€ ํ•ญ์ƒ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ตฌ๊ธ€ ํ”Œ๋ ˆ์ด์—๋ณด๊ณ  ๋œ ๋‚ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํฌ๋ž˜์‹œ ์œจ์ด 0.57.8์—์„œ 0.59.5๋กœ ์—…๋ฐ์ดํŠธ ํ›„ 0.16 %์—์„œ 1.02 %๋กœ ๋ณ€๊ฒฝ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ง ๊ฑฑ์ •๊ฑฐ๋ฆฌ์ž…๋‹ˆ๋‹ค.

0.57.8 :
Bildschirmfoto 2019-05-22 um 09 53 12

0.59.5 :
Bildschirmfoto 2019-05-22 um 09 52 05

์ €๋Š” Android ๊ฐœ๋ฐœ ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹ˆ๋ฉฐ์ด ์ถฉ๋Œ์˜ ์›์ธ์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋„์›€์ด๋œ๋‹ค๋ฉด ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์—์„œ @ntorion ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ 0.59.8๋กœ ์‚ผ์„ฑ s7์—์„œ ์ด๋Ÿฌํ•œ ์ถฉ๋Œ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ˆœ๊ฐ„์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ?
๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ ๊ฐค๋Ÿญ์‹œ ๋…ธํŠธ 9์—์„œ ํ…Œ์ŠคํŠธํ–ˆ๋Š”๋ฐ ๋ชจ๋“  ์ „ํ™”๊ฐ€ ์ฆ‰์‹œ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

{"dependencies": {
    "axios": "^0.18.0",
    "prop-types": "^15.7.2",
    "react": "16.8.3",
    "react-native": "0.59.8",
    "react-native-gesture-handler": "^1.2.1",
    "react-native-iphone-x-helper": "^1.2.0",
    "react-native-linear-gradient": "^2.5.4",
    "react-native-vector-icons": "^6.4.2",
    "react-navigation": "^3.11.0",
    "react-redux": "^7.0.3",
    "reactotron-react-native": "^3.5.2",
    "reactotron-redux": "^3.1.0",
    "reactotron-redux-saga": "^4.2.2",
    "realm": "^2.27.0",
    "redux": "^4.0.1",
    "redux-saga": "^1.0.2",
    "reduxsauce": "^1.1.0",
    "seamless-immutable": "^7.1.4",
    "styled-components": "^4.2.0"
  },
  "devDependencies": {
    "@babel/core": "^7.4.5",
    "@babel/runtime": "^7.4.5",
    "babel-eslint": "^10.0.1",
    "babel-jest": "^24.8.0",
    "babel-plugin-root-import": "^6.2.0",
    "eslint": "^5.16.0",
    "eslint-config-airbnb": "^17.1.0",
    "eslint-import-resolver-babel-plugin-root-import": "^1.1.1",
    "eslint-plugin-import": "^2.17.2",
    "eslint-plugin-jsx-a11y": "^6.2.1",
    "eslint-plugin-react": "^7.13.0",
    "eslint-plugin-react-native": "^3.7.0",
    "jest": "^24.8.0",
    "metro-react-native-babel-preset": "^0.54.1",
    "react-test-renderer": "16.8.3"
  }}

@dudusotero ์‚ฌ์šฉ @Kudo ๋ช…๋ น https://gist.github.com/Kudo/cc40662163fbd69dd01d66fd99476c17

@matpaul @Kudo ๋‚˜๋Š”์ด js ์ฝ”์–ด์˜ ์‹คํ—˜์ ์ธ ๋นŒ๋“œ๊ฐ€ ์šฐ๋ฆฌ์—๊ฒŒ๋„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์‚ผ์„ฑ s7์—์„œ ํ…Œ์ŠคํŠธ ๋จ).

์ด ์ถ”์ ๊ณผ ๊ด€๋ จ๋œ ๋‚ด ์ถฉ๋Œ์€ Android์—์„œ 0.58.6 ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ–ˆ์„ ๋•Œ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. 57.6 ๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œ ํ•  ๊ณ„ํš ์ด์—ˆ์ง€๋งŒ 58.6 ์€ (๋Š”)์ด ๋ฌธ์ œ ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ตฌ๋„

์นœ์• ํ•˜๋Š”,

๋‘ ๊ฐœ์˜ ์‹คํ—˜ ๋œ JSC ๋ฒ„์ „์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์‹œ๋„ํ•ด๋ณด์‹ญ์‹œ์˜ค.
์—ฌ๊ธฐ์— ๊ฐ„๋‹จํ•œ ๋‹จ๊ณ„ :
https://gist.github.com/Kudo/cc40662163fbd69dd01d66fd99476c17

ํ•œ ๊ฐ€์ง€ ์‹คํ—˜ ๋ฒ„์ „์€ ํ•œ ์ข…๋ฅ˜์˜ JIT๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” @matthargett ์—์„œ JIT๋ฅผ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์ด ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•ด ์ค€๋‹ค๋ฉด ๋‚ด ์š”์ ์— ์–ธ๊ธ‰ ๋œ๋Œ€๋กœ ์ „๋ฐ˜์ ์ธ ์„ฑ๋Šฅ ๋ฐ TTI์— ๋Œ€ํ•ด์„œ๋„ ํ”ผ๋“œ๋ฐฑ์„ ๋ณด๋‚ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@Kudo ๋‚˜๋Š” ๋‹น์‹ ์˜ ์š”์ ์—์„œ๋„ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์—ฌ๊ธฐ์— ๋‘ ๊ฐ€์ง€ ๊ด€์ฐฐ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ”„๋กœ๋•์…˜ ์•ฑ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ช‡ ๋ถ„ ๋™์•ˆ ์‚ฌ์šฉํ•  ๋•Œ ์•ฑ์ด @kudo-ci/jsc-android@241213-no-dfg-jit ์ข…์†์„ฑ์œผ๋กœ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค.
  • ์•ฑ์ด @kudo-ci/jsc-android@241213-no-jit ์ข…์†์„ฑ as of now ํ•˜๊ณ  TTI๋Š” ์ด์ „ ๋นŒ๋“œ์™€ ๊ด€๋ จํ•˜์—ฌ ๋™์ผํ•˜๊ฑฐ๋‚˜ ๋ˆˆ์— ๋„์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ข‹์•„์š”, no_dfg_jit ์— ๋Œ€ํ•ด ํ…Œ์ŠคํŠธํ–ˆ์„ ๋•Œ ์•ฑ์ด ์ค‘๋‹จ๋˜๋Š” ๊ฒƒ์„ ์•Œ์•˜ ๊ธฐ ๋•Œ๋ฌธ์— ํ’€ ์š”์ฒญ ์ด์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ• ๊นŒ์š”?

์—ฌ๊ธฐ์— ๋” ๋งŽ์€ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
S7 edge์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ ํฌ๋ž˜์‹œ๊ฐ€ ์‰ฝ๊ฒŒ ๋ฐœ์ƒํ•˜๋Š”์ง€ ์ •๋ง ์˜์‹ฌ ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ทธ๋Ÿฌํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์žก์•˜๋‹ค!
Text API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Google Play ์„œ๋น„์Šค์—์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ OSS ์ˆ˜์ • ์‚ฌํ•ญ์€ ์—†์Šต๋‹ˆ๋‹ค.
Mono๋Š” S7 Exynos bit.LITTLE arch์—์„œ ์ถฉ๋Œ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌ ํ–ˆ์œผ๋ฉฐ ์—ฌ๊ธฐ์— ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

JavaScriptCore๋Š” ARM64Assembler์—์„œ __clear_cache ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฒˆ ์ฃผ ํ›„๋ฐ˜์— __clear_cache๋ฅผ ํŒจ์น˜ํ•˜๊ธฐ ์œ„ํ•ด ๋˜ ๋‹ค๋ฅธ ์‹คํ—˜ ๋œ ๋นŒ๋“œ๊ฐ€์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

__clear_cache ๋ฅผ ์ˆ˜์ • ํ•œ ์‹คํ—˜ ๋œ ๋นŒ๋“œ๊ฐ€ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹จ๊ณ„๋Š” ์ด์ „ ๊ณผ ๋™์ผํ•˜์ง€๋งŒ ๋‹ค๋ฅธ npm ์ข…์†์„ฑ ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  1. yarn add '@kudo-ci/jsc-android@241213-fix-clear-cache-dfg' ๋ฐ ๋ฒ„์ „ 241213.8000.0 ํ™•์ธ ๋œ adb logcat ( ์—ฌ๊ธฐ์— ์ฐธ์กฐ ์†Œ์Šค ์ฝ”๋“œ )
  2. yarn add '@kudo-ci/jsc-android@241213-fix-clear-cache-no-dfg' ๋ฐ 241213.9000.1 ๋ฒ„์ „์œผ๋กœ ํ™•์ธ ๋œ adb logcat ( ์—ฌ๊ธฐ์— ์ฐธ์กฐ ์†Œ์Šค ์ฝ”๋“œ )

ํฌ๋ž˜์‹œ ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•  ์ˆ˜ ์—†์ง€๋งŒ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ๋งŒ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์œ ๊ฐ์ž…๋‹ˆ๋‹ค.
๊ฐ€๋Šฅํ•˜๋ฉด ๋‘ ์‹คํ—˜ JSC๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ๋„์›€์„์ฃผ์„ธ์š”.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ํ–‰์šด์„ ๋น•๋‹ˆ๋‹ค.

cc @AndrewJack @MalcolmScruggs @tijs @ishantsagar @timhatch

@Kudo ์ด์ œ @kudo-ci/jsc-android@241213-fix-clear-cache-dfg ๋ฐ @kudo-ci/jsc-android@241213-fix-clear-cache-no-dfg ๋‘˜ ๋‹ค ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ ๋นŒ๋“œ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค .
๋‘ ํ…Œ์ŠคํŠธ ๋นŒ๋“œ ๋ชจ๋‘ ์ง€๊ธˆ๊นŒ์ง€ Samsung Galaxy S7 Edge / Android 7.0์—์„œ ์ถฉ๋Œ์ด์—†๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค (ํ˜„์žฌ๊นŒ์ง€ ๋ฌธ์ œ ์กฐํ•ฉ).

@Kudo ์ €๋Š” React-Native 0.59.8 ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋ณธ ํ”„๋กœ์ ํŠธ์—์„œ @kudo-ci/jsc-android@241213-fix-clear-cache-dfg ๋ฐ @kudo-ci/jsc-android@241213-fix-clear-cache-no-dfg ์„ ๋ชจ๋‘ ์‹œ๋„ํ–ˆ์œผ๋ฉฐ ๋‘ ๋ฒ„์ „ ๋ชจ๋‘ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Android 7.0์—์„œ Samsung Galaxy S7์—์„œ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

[ro.product.board]: [universal8890]
[ro.product.brand]: [samsung]
[ro.product.cpu.abi]: [arm64-v8a]
[ro.product.cpu.abilist]: [arm64-v8a,armeabi-v7a,armeabi]
[ro.product.cpu.abilist32]: [armeabi-v7a,armeabi]
[ro.product.cpu.abilist64]: [arm64-v8a]
[ro.product.device]: [herolte]
[ro.product.first_api_level]: [23]
[ro.product.locale]: [en-GB]
[ro.product.manufacturer]: [samsung]
[ro.product.model]: [SM-G930F]
[ro.product.name]: [heroltexx]

@Kudo ๋‚˜๋Š” ์ตœ์‹  @kudo-ci/jsc-android@241213-fix-clear-cache-dfg ์‹œ๋„ํ–ˆ์ง€๋งŒ React Native 0.59.8์—์„œ JSC์™€ ๋น„์Šทํ•œ Samsung Galaxy S5 (SM-G900F)์—์„œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

JIT๊ฐ€์—†๋Š” ๋ฒ„์ „์€ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ–ˆ๊ณ  ( @kudo-ci/jsc-android@241213-no-jit ) ์•ฑ์„ ์–ผ๋งˆ๋‚˜ ์ œํ•œํ–ˆ๋Š”์ง€์— ๊ด€๊ณ„์—†์ด ํ•ด๋‹น ๋ฒ„์ „์—์„œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ง€๊ธˆ์€ ๊ทธ๊ฒƒ์„ ๊ณ ์ˆ˜ ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ทฐ ํŽ˜์ด์ €์—์„œ ReactRootViews๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— React-native ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฝค ์ž์ฃผ ์ƒ์„ฑํ•˜๊ณ  ํŒŒ๊ดดํ•˜๋Š”๋ฐ, ์ด๊ฒƒ์ด์ด ์ถฉ๋Œ์„ ์œ ๋ฐœํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์•„๋งˆ๋„ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒƒ๋ณด๋‹ค์ด ๋ฌธ์ œ๊ฐ€ ๋” ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์ด์œ  ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ทฐ ํŽ˜์ด์ € ์ ‘๊ทผ ๋ฐฉ์‹์„ ๋‹ค์‹œ ๊ฒ€ํ† ํ•˜๊ณ  ์žˆ์ง€๋งŒ ๊ทธ๋™์•ˆ์ด ์ถฉ๋Œ ๋กœ๊ทธ๊ฐ€ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. (๋ฒ„์ „ 241213.8000.0 , react-native 0.59.8)

A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x66 in tid 16184 (mqt_js)
D/InputReader: Input event: value=1
I/InputReader: Touch event's action is 0x0 (deviceType=0) [pCnt=1, s=0.1239 ] when=8467503214000
I/InputDispatcher: Delivering touch to (1173): action: 0x4, toolType: 1
I/InputDispatcher: Delivering touch to (16117): action: 0x0, toolType: 1
I/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG: Build fingerprint: 'samsung/kltexx/klte:5.0/LRX21T/G900FXXU1BOH4:user/release-keys'
I/DEBUG: Revision: '14'
I/DEBUG: ABI: 'arm'
I/DEBUG: pid: 16117, tid: 16184, name: mqt_js  >>> uk.co.thetimes.debug <<<
I/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x66
I/DEBUG:     r0 00000036  r1 8cc43b20  r2 8e558040  r3 fffffffb
I/DEBUG:     r4 00000000  r5 91800000  r6 8c752df0  r7 92efea88
I/DEBUG:     r8 fffffffb  r9 8cce0000  sl 91a08821  fp fffffffc
I/DEBUG:     ip 8c752df0  sp 92efe8e0  lr 91d970a9  pc 91ea6502  cpsr 600b0030
I/DEBUG: backtrace:
I/DEBUG:     #00 pc 004a7502  <unknown>
I/DEBUG:     #01 pc 003980a7  <unknown>

์Šฌํ”„๊ฒŒ๋„ ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ๊ฑฐ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค.

Play ์Šคํ† ์–ด์—์„œ 64 ๋น„ํŠธ ๋นŒ๋“œ๋ฅผ ๊ฐ€์ ธ ์™”์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ 64 ๋น„ํŠธ ๋นŒ๋“œ์˜ ์ถฉ๋Œ๊ณผ ์ „ํ˜€ ๊ด€๋ จ์ด ์—†์„ ์ˆ˜ ์žˆ์ง€๋งŒ armeabi-v7a ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” Galaxy S7 ์žฅ์น˜๋Š” ์ด์ œ ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŽ์ด ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘ ์ฆ‰์‹œ.

๋‹ค๋ฅธ ์žฅ์น˜์™€ ๋น„๊ตํ•˜์—ฌ S7์˜ ์ฐจ์ด์ ์ด ๋ฌด์—‡์ธ์ง€ ์ •๋ง ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

Version Code: 10000036
Version Name: 2.3.4
Android: 8.0.0
Android Build: R16NW
Manufacturer: samsung
Model: SM-G930F
Date: undefined

com.facebook.react.bridge.UnexpectedNativeTypeException: TypeError: expected dynamic type `double', but had type `null'
  at com.facebook.react.bridge.ReadableNativeMap.getIntNative
  at com.facebook.react.bridge.ReadableNativeMap.getInt
  at com.facebook.react.g.a.a
  at com.facebook.react.modules.core.ExceptionsManagerModule.reportSoftException
  at java.lang.reflect.Method.invoke(Method.java:-2)
  at com.facebook.react.bridge.JavaMethodWrapper.invoke
  at com.facebook.react.bridge.JavaModuleWrapper.invoke
  at com.facebook.react.bridge.queue.NativeRunnable.run
  at android.os.Handler.handleCallback(Handler.java:789)
  at android.os.Handler.dispatchMessage(Handler.java:98)
  at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage
  at android.os.Looper.loop(Looper.java:164)
  at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run
  at java.lang.Thread.run(Thread.java:764)

์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๋‚ด๋ถ€์ ์œผ๋กœ ๋ณด์•˜๊ณ  ์šฐ๋ฆฌ์˜ ์Šคํƒ€์ผ๋ง ์†์„ฑ ์ค‘ ์ผ๋ถ€๊ฐ€ ์กฐ๊ฑด๋ถ€๋กœ null์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ์ œ๊ฑฐํ•˜๊ณ  ์กฐ๊ฑด๋ถ€๋กœ ์Šคํƒ€์ผ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ๋น„์Šทํ•œ ์˜ˆ์™ธ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋“ˆ ์œ ํ˜•์— ๋ฌด์–ธ๊ฐ€๊ฐ€ ์ง„ํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@tuncaulubilge ์ •๋ณด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
Samsung S5 (SM-G900F)๊ฐ€ arm (arm64๊ฐ€ ์•„๋‹˜) ์•„ํ‚คํ…์ฒ˜์ธ์ง€ ๋‹ค์‹œ ํ•œ ๋ฒˆ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฃ ?
adb shell getprop ro.product.cpu.abi ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํฌ๋ž˜์‹œ ๋กœ๊ทธ์—์„œ ๋ณด๋ฉด ๋ฌด์žฅ ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ๊ทผ๋ณธ ์›์ธ์€ ์—ฌ๊ธฐ์™€๋Š” ๋˜ ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ๊ฐ€๋˜์–ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
no-dfg-jit ๋ฒ„์ „ (์˜ˆ : @kudo-ci/jsc-android@241213-no-dfg-jit ๋˜๋Š” @kudo-ci/jsc-android@241213-fix-clear-cache-no-dfg ํ…Œ์ŠคํŠธ ํ•œ ์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ?
์ด ๋‘ ๋ฒ„์ „์€ arm32์—์„œ ๋™์ผํ•ด์•ผํ•˜๋ฉฐ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@Kudo ์—…๋ฐ์ดํŠธ

์›๋ž˜ ๋ฌธ์ œ ([๋…์ ] Samsung S7 Edge + Android 7.0์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์‹œ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ์ถฉ๋Œ)์— ๋Œ€ํ•ด ๊ฐœ๋ฐœ์ž ์ฝ˜์†”์„ ํ†ตํ•ด๋ณด๊ณ  ๋œ ์—ญ ์ถ”์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 #00  pc 00000000007e048c  /data/app/org.ifsc.boulder14-1/lib/arm64/libjsc.so (WTFCrash+16)
 #01  pc 00000000000be650  /data/app/org.ifsc.boulder14-1/lib/arm64/libjsc.so (_Z16WTFCrashWithInfoiPKcS0_i+24)
 #02  pc 0000000000489f2c  /data/app/org.ifsc.boulder14-1/lib/arm64/libjsc.so (operationLinkDirectCall+1120)
 #03  pc 00000000002149a8  <unknown>

์›๋ž˜ ๋ฌธ์ œ๋Š” ๋‹ค์Œ ๊ฐ ๋นŒ๋“œ์—์„œ ์ˆ˜์ • ๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.
@kudo-ci/jsc-android@241213-no-jit
@kudo-ci/jsc-android@241213-fix-clear-cache-no-dfg
@kudo-ci/jsc-android@241213-fix-clear-cache-dfg

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๋‹ค๋ฅธ ์žฅ์น˜์—์„œ ๋‹ค๋ฅธ ์—ญ ์ถ”์ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์ง€๋ง‰ ( @kudo-ci/jsc-android@241213-fix-clear-cache-dfg )์— ๋Œ€ํ•ด ๋‘ ๋ฒˆ์˜ ๋˜ ๋‹ค๋ฅธ ์ถฉ๋Œ์„ ์ž๊ทนํ–ˆ์Šต๋‹ˆ๋‹ค.

  #00  pc 00000000004886ac  /data/app/org.ifsc.boulder14-ECb5NhJUQgyp_UkWAZLdKg==/lib/arm64/libjsc.so (operationLinkDirectCall+176)
  #01  pc 000000000043ad90  <anonymous>

ํ…Œ์ŠคํŠธ ์•ฑ์„ ๋‘ ๋ฒˆ ์ถฉ๋Œ ์‹œ์ผฐ์ง€๋งŒ ๋งค๋ฒˆ ๋™์ผํ•œ ์„œ๋ช…์„ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ์ถฉ๋Œ์€ ์ฒด๊ณ„์ ์œผ๋กœ ๋ฐ˜๋ณต๋˜์ง€ ์•Š์œผ๋ฉฐ ์‹œ์ž‘ ์‹œ๊ฐ€ ์•„๋‹Œ ํ…Œ์ŠคํŠธ ์•ฑ์˜ ๋‹ค๋ฅธ ํ™”๋ฉด ์‚ฌ์ด๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋™์•ˆ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ์žฅ์น˜๊ฐ€ ์†์— ์žกํžˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์žฅ์น˜์—์„œ ๋” ์™„์ „ํ•œ ์ถ”์ ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

05-29 15:39:06.132  9361  9361 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1c
05-29 15:39:06.132  9361  9361 F DEBUG   : Cause: null pointer dereference
05-29 15:39:06.132  9361  9361 F DEBUG   :     x0  0000007363fc4900  x1  000000735b75a000  x2  0000000000000004  x3  0000000000000000
05-29 15:39:06.132  9361  9361 F DEBUG   :     x4  000000736470caa0  x5  e805b658e92d4328  x6  0000007368dfc8f0  x7  0000000000000000
05-29 15:39:06.132  9361  9361 F DEBUG   :     x8  0000000000000007  x9  0000000000000000  x10 0000007364d39d80  x11 0000000000000040
05-29 15:39:06.132  9361  9361 F DEBUG   :     x12 0000007364d39d80  x13 000000000000b324  x14 00000000ffdaeb75  x15 00000073609a09c0
05-29 15:39:06.132  9361  9361 F DEBUG   :     x16 000000736a1515fc  x17 00000073647121a8  x18 0000000000000002  x19 000000735b75a000
05-29 15:39:06.132  9361  9361 F DEBUG   :     x20 0000007368dfca10  x21 0000007363f0c070  x22 0000007364700000  x23 0000000000000004
05-29 15:39:06.132  9361  9361 F DEBUG   :     x24 0000000000000000  x25 0000000000000007  x26 0000000000000000  x27 ffff000000000000
05-29 15:39:06.132  9361  9361 F DEBUG   :     x28 ffff000000000002  x29 0000007368dfca10
05-29 15:39:06.132  9361  9361 F DEBUG   :     sp  0000007368dfc920  lr  000000736a1516ac  pc  000000736a1516ac
05-29 15:39:06.154  9361  9361 F DEBUG   : 
05-29 15:39:06.154  9361  9361 F DEBUG   : backtrace:
05-29 15:39:06.154  9361  9361 F DEBUG   :     #00 pc 00000000004886ac  /data/app/org.ifsc.boulder14-ECb5NhJUQgyp_UkWAZLdKg==/lib/arm64/libjsc.so (operationLinkDirectCall+176)
05-29 15:39:06.154  9361  9361 F DEBUG   :     #01 pc 000000000043ad90  <anonymous:00000073648ff000>

๊ณผ

05-29 15:10:13.010  7853  7853 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1018
05-29 15:10:13.010  7853  7853 F DEBUG   :     x0  00000073642c6c40  x1  0000007359684500  x2  0000000000001000  x3  0000000000000000
05-29 15:10:13.010  7853  7853 F DEBUG   :     x4  00000073008a3030  x5  000000000000006d  x6  00000000ffffffff  x7  cb010063d1004021
05-29 15:10:13.010  7853  7853 F DEBUG   :     x8  0000000000000007  x9  0000000000000000  x10 00000073651159c0  x11 0000000000000040
05-29 15:10:13.010  7853  7853 F DEBUG   :     x12 00000073651159c0  x13 000000736a744558  x14 000000736249dc00  x15 000000736928a2e8
05-29 15:10:13.010  7853  7853 F DEBUG   :     x16 000000736a1575fc  x17 0000007364a121a8  x18 0000000000000045  x19 0000007359684500
05-29 15:10:13.010  7853  7853 F DEBUG   :     x20 000000736928a2a0  x21 0000007362fb7700  x22 0000007364a00000  x23 0000000000001000
05-29 15:10:13.010  7853  7853 F DEBUG   :     x24 0000000000000000  x25 0000000000000007  x26 0000000000000000  x27 ffff000000000000
05-29 15:10:13.010  7853  7853 F DEBUG   :     x28 ffff000000000002  x29 000000736928a2a0
05-29 15:10:13.010  7853  7853 F DEBUG   :     sp  000000736928a110  lr  000000736a1576ac  pc  000000736a1576ac
05-29 15:10:13.024  7853  7853 F DEBUG   : 
05-29 15:10:13.024  7853  7853 F DEBUG   : backtrace:
05-29 15:10:13.024  7853  7853 F DEBUG   :     #00 pc 00000000004886ac  /data/app/org.ifsc.boulder14-ECb5NhJUQgyp_UkWAZLdKg==/lib/arm64/libjsc.so (operationLinkDirectCall+176)
05-29 15:10:13.024  7853  7853 F DEBUG   :     #01 pc 00000000005169d8  <anonymous:0000007364bff000>

์ด๊ฒƒ์ด ๋„์›€์ด๋˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ Android์—์„œ ์ถฉ๋Œ ๋””๋ฒ„๊น… ๋ฐ ํ•ด์„์€ ์ด์ „์— ํ•ด๋ณธ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.

@Kudo ๋‹ค์Œ์€ ๋‚ด ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

์‚ผ์„ฑ S5๋Š” armeabi-v7a ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์ด ์ œ๊ณต ํ•œ 4 ๊ฐ€์ง€ ๋Œ€์•ˆ์„ ๋ชจ๋‘ ์‹œ๋„ํ–ˆ์œผ๋ฉฐ jit๊ฐ€์—†๋Š” ์œ ์ผํ•œ ๋Œ€์•ˆ์€ ์ถฉ๋Œ์ด์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. dfg๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ์ถฉ๋Œ ์†๋„๊ฐ€ ์ƒ๋‹นํžˆ ๊ฐ์†Œํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์ถฉ๋Œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Pixel XL ( arm64-v8a )์—์„œ ํ…Œ์ŠคํŠธ ์ค‘์ด๋ฉฐ kudo-ci/jsc-android@241213-fix-clear-cache-no-dfg ์—์„œ ์•„์ง ํฌ๋ž˜์‹œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๊ทผ๋ณธ ์›์ธ์œผ๋กœ ๋ณด์ด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํ•˜์ด ์—”๋“œ ๊ธฐ๊ธฐ์—์„œ ํฌ๋ž˜์‹œ๋ฅผ ์žฌํ˜„ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์•ฝํ•˜์ž๋ฉด :
@kudo-ci/jsc-android@241213-no-jit : ๋‘ ์žฅ์น˜ ๋ชจ๋‘์—์„œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
@kudo-ci/jsc-android@241213-fix-clear-cache-no-dfg : ์ €๊ฐ€ํ˜• ์žฅ์น˜์—์„œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉฐ ๊ณ ๊ธ‰ํ˜• ์žฅ์น˜์—์„œ๋Š” ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
@kudo-ci/jsc-android@241213-fix-clear-cache-dfg : ์ด๊ฒƒ์€ ์ €๊ฐ€ํ˜• ์žฅ์น˜์˜ ๋‹ค๋ฅธ ๋นŒ๋“œ๋ณด๋‹ค ๋” ์ž์ฃผ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. (์žฌ๊ณ  RN 59 jsc๋ณด๋‹ค ์—ฌ์ „ํžˆ ๋‚ซ์Šต๋‹ˆ๋‹ค)
@kudo-ci/jsc-android@241213-no-dfg-jit : ์ด๊ฒƒ์€ ์ €๊ฐ€ํ˜• ์žฅ์น˜์—์„œ๋„ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ๊ณ ๊ธ‰ํ˜•์—์„œ๋Š” ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

jit๊ฐ€์—†๋Š” ๋นŒ๋“œ์กฐ์ฐจ๋„ ์ฃผ์‹ JSC๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— @kudo-ci/jsc-android@241213-no-jit ๋ฅผ ์‚ฌ์šฉํ•  ๊ณ„ํš์ด๋ฉฐ ํ”„๋กœ๋•์…˜ ์ค€๋น„๋ฅผ ์œ„ํ•ด ๋” ๋งŽ์ด ํ…Œ์ŠคํŠธ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ  ๋ชจ๋“  ๋„์›€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

@timhatch @tuncaulubilge ๋ฉ‹์ง„ ์ฒด๊ณ„์ ์ธ ํ…Œ์ŠคํŠธ์™€ ํ”ผ๋“œ๋ฐฑ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
์ง€๊ธˆ์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๋ฐฉ๋ฒ•์ด ์ „ํ˜€ ์—†์Šต๋‹ˆ๋‹ค.
DFG๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ __clear_cache๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ์ถฉ๋Œ์€ arm32์—์„œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค (๊ทผ๋ณธ ์›์ธ์€ arm64์™€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ).

์ œ ๊ฐœ์ธ์ ์ธ ์˜๊ฒฌ์œผ๋กœ๋Š” ์ตœ์†Œํ•œ ์ถฉ๋Œ์ด์—†๋Š” JSC๊ฐ€ ๋จผ์ € ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ JIT๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
BTW @tuncaulubilge @kudo-ci/jsc-android@241213-no-jit ์ด ์ฃผ์‹ JSC๋ณด๋‹ค ๋น ๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์ธก์ • ํ–ˆ์Šต๋‹ˆ๊นŒ?
๋ฒค์น˜ ๋งˆํฌ ๊ฒฐ๊ณผ์—์„œ ๋ณผ ๋•Œ no-jit ๋ฒ„์ „์ด ์•ฝ๊ฐ„ ๋Š๋ฆฌ๊ฒŒ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

@Kudo ์•ฑ ์‹œ์ž‘ ์‹œ๊ฐ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰๋„ ์ธก์ • ํ–ˆ๋‚˜์š”? ์ €๋Š” ํ•ญ์ƒ์ด ๋‘ ๊ฐ€์ง€ ์ธก์ • ํ•ญ๋ชฉ์ด JIT์—†์ด ๋” ๋‚˜์„ ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์•ฑ์€ UI๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— JIT๊ฐ€ ์‹ค์ œ ์•ฑ์—์„œ ๋งŽ์€ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์„์ง€ ํ™•์‹ ํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ ์‹œ์ž‘ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ๊ฐœ์„ ํ•˜๋ฉด JIT๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ JSC๊ฐ€ JIT์—†์ด ๋” ์ž‘์€ ๋””์Šคํฌ ํ’‹ ํ”„๋ฆฐํŠธ๋ฅผ ๊ฐ–๊ฒŒ ๋ ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ๋„
์ด ํ…Œ์ŠคํŠธ ๋นŒ๋“œ์—์„œํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ __clear_cache๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ์ƒํ™ฉ์ด ํ™•์‹คํžˆ ๊ฐœ์„ ๋˜์ง€๋งŒ ์ˆ˜์ •์œผ๋กœ ์ธํ•œ ๋ถ€์ž‘์šฉ์ด ์žˆ๊ฑฐ๋‚˜ ์•„์ง ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ๋” ๋ณต์žกํ•œ ์ƒํ˜ธ ์ž‘์šฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, -fix-clear-cache-dfg ํ…Œ์ŠคํŠธ ์•ฑ์„ ๋‹ค์‹œ ๋‹ค์šด์‹œํ‚ฌ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. @tuncaulubilge๊ฐ€ ๋งํ–ˆ๋“ฏ์ด ๋™์ž‘์€ ๋ฉ”๋ชจ๋ฆฌ ์••๋ ฅ ๋ฐ / ๋˜๋Š” ๊ธฐํƒ€ ์š”์ธ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

JIT๋ฅผ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์€ "์ถฉ๋Œ์—†๋Š”"์˜ต์…˜ ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ "์•ˆ์ „ํ•œ"์„ ํƒ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@Kudo ๋ฅผ ๋ช…ํ™•ํžˆํ•˜๊ธฐ ์œ„ํ•ด React-Native 0.58.6 (์‚ฌ์šฉ์ž ์ •์˜ jsc๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š์Œ)๊ณผ 0.59.8์„ @kudo-ci/jsc-android@241213-no-jit ๊ณผ ๋น„๊ตํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์–ด๋–ค ์ธก์ •๋„ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์„ฑ๋Šฅ ํ–ฅ์ƒ์€ ๋งค์šฐ ๋ˆˆ์— ๋•๋‹ˆ๋‹ค. ์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด no jit ๋ฒ„์ „์ด [email protected] ๋ณด๋‹ค ์•ฝ๊ฐ„ ๋Š๋ฆด ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜์ง€๋งŒ ๋น„๊ตํ•˜๋ฉด ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์˜ต์…˜์œผ๋กœ no-jit ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์•ˆ์ •์„ฑ ํ–ฅ์ƒ์ด jit์—์„œ ์–ป์„ ์ˆ˜์žˆ๋Š” ์‚ฌ์†Œํ•œ ์„ฑ๋Šฅ ํ–ฅ์ƒ๋ณด๋‹ค ํ›จ์”ฌ ํฝ๋‹ˆ๋‹ค.

Expo v32๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ์„ ๋นŒ๋“œํ•˜๊ณ  ์žˆ์œผ๋ฉฐ Android ๋ฒ„์ „๊ณผ ์žฅ์น˜์—์„œ์ด ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Screen Shot 2019-05-31 at 16 11 49
Screen Shot 2019-05-31 at 16 11 32

@ tido64 TTI๋Š” ํฐ ์ฐจ์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ๊ธฐ๋Š” no_dfg ๋ฒ„์ „์—์„œ ์•ฝ 1MB ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๋Š” ์•ฝ 48 % ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค.
JIT๋ฅผ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด PR์„ ๋ณด๋ƒˆ๊ณ  ์ธก์ • ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/react-native-community/jsc-android-buildscripts/pull/108

@timhatch __clear_cache ์ˆ˜์ •์ด ์•ฝ๊ฐ„ ๋„์›€์ด๋œ๋‹ค๋Š” ์†Œ์‹์„ ๋“ค์œผ๋‹ˆ ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ์—ฌ์ „ํžˆ ๊ทผ๋ณธ ์›์ธ์ด big.LITTLE์—์„œ ์˜ค๋Š” ๊ฒƒ์ธ์ง€ ์˜์‹ฌํ•˜์ง€๋งŒ ์•„์ง ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ๋‹ค๋ฅธ JSC ์ฝ”๋“œ๋ฅผ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
์‚ผ์„ฑ S5์™€ S7์€ ๋ชจ๋‘ ํฝ๋‹ˆ๋‹ค. LITTLE๊ณผ ๋‘ CPU ์„ธํŠธ๋Š” ์บ์‹œ ๋ผ์ธ ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์ด๊ฒƒ์ด ์‚ผ์„ฑ ๋…ธํŠธ 5์—์„œ ์ถฉ๋Œ์„ ์žฌํ˜„ ํ•  ์ˆ˜์—†๋Š” ์ด์œ  ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ CPU ์„ธํŠธ ์บ์‹œ ๋ผ์ธ ํฌ๊ธฐ๊ฐ€ ๋ชจ๋‘ 64B์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
OS ์Šค์ผ€์ค„๋Ÿฌ์™€ JSC๊ฐ€ ๋Ÿฐํƒ€์ž„์— ํฐ <-> LITTLE CPU๊ฐ„์— ์ „ํ™˜ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์‚ฌ์‹ค์ด๋ผ๋ฉด ํŠนํžˆ ๊ทธ ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@tuncaulubilge ์ €์—๊ฒŒ ํ˜ธ๊ธฐ์‹ฌ์ด
๋‚ด PR์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. no-jit ๋ฒ„์ „์€ ์žฌ๊ณ  RN058 JSC๋ณด๋‹ค ๋Š๋ฆฝ๋‹ˆ๋‹ค.
์ธก์ • ์ค‘์— ๋Š๊ผˆ๋˜ ๊ฒƒ์ด๊ธฐ๋„ํ•ฉ๋‹ˆ๋‹ค.
๋ฒค์น˜ ๋งˆํฌ๋Š” ๊ทน๋‹จ์  ์ธ ๊ฒฝ์šฐ์ด๊ณ  ์˜ˆ์ „์˜ RN ์•ฑ๊ณผ๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
BTW, ๋‚˜๋Š” no-jit ๋ฒ„์ „์—์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ๊ธฐ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ€ ๊ฐ์†Œํ•˜๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.
์ด ๋‘ ๊ฐ€์ง€ ์ด์ ๊ณผ ์ถฉ๋Œ ๋ฐฉ์ง€๊ฐ€ ๋” ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค.

@RomanovYurii build.gradle์˜ defaultConfig ๋ธ”๋ก์—์žˆ๋Š” ndk abiFilters์—์„œ 64 ๋น„ํŠธ ndk ํ•„ํ„ฐ "arm64-v8a", "x86_64"๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด 32 ๋น„ํŠธ ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ถฉ๋Œ์€ ์‚ฌ๋ผ์กŒ์ง€ ๋งŒ Google 64 ๋น„ํŠธ ์ง€์› ์˜๋ฌด์— ๋”ฐ๋ผ 64 ๋น„ํŠธ ndk ์ง€์›์œผ๋กœ ์ˆ˜์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

25060

@dishantwalia @Kudo๋Š” JIT๊ฐ€ 64 ๋น„ํŠธ์—์„œ ์ž‘๋™ํ•˜๋ฉฐ ์ง€๊ธˆ๊นŒ์ง€ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์š”์ง€๋Š” ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค https://gist.github.com/Kudo/cc40662163fbd69dd01d66fd99476c17

์นœ์• ํ•˜๋Š”,

์šฐ๋ฆฌ๋Š” no-JIT JSC๋ฅผ jsc-android npm์— ๊ฒŒ์‹œํ–ˆ์œผ๋ฉฐ jsc-android@next ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ด์ „ ์š”์ ์„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
https://gist.github.com/Kudo/cc40662163fbd69dd01d66fd99476c17
๋ชจ๋“  ์ถฉ๋Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ํฌ์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” no-JIT ๋ฒ„์ „์„ @latest ๋ฒ„์ „์œผ๋กœ ๊ณต์‹ ์ œ์•ˆํ•˜๊ณ  ์ตœ์‹  RN์— ๋‚ด์žฅ๋˜๋„๋ก PR์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

์นœ์• ํ•˜๋Š”,

์šฐ๋ฆฌ๋Š” no-JIT JSC๋ฅผ jsc-android npm์— ๊ฒŒ์‹œํ–ˆ์œผ๋ฉฐ jsc-android@next ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ด์ „ ์š”์ ์„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
https://gist.github.com/Kudo/cc40662163fbd69dd01d66fd99476c17
๋ชจ๋“  ์ถฉ๋Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ํฌ์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” no-JIT ๋ฒ„์ „์„ @latest ๋ฒ„์ „์œผ๋กœ ๊ณต์‹ ์ œ์•ˆํ•˜๊ณ  ์ตœ์‹  RN์— ๋‚ด์žฅ๋˜๋„๋ก PR์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @Kudo disable-jit๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค !!!

๋ชจ๋“  ๋…ธ๋ ฅ์— ๋Œ€ํ•ด

์ถฉ๋Œ์ด ์‚ฌ๋ผ์ง„ ๊ฒƒ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ €๊ฐ€ํ˜• ์žฅ์น˜์—์„œ๋„ ์„ฑ๋Šฅ์ด ์ƒ๋‹นํžˆ ์ €ํ•˜๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ข€ ๋” ํ˜„๋Œ€์ ์ธ JSC๋ฅผ ์œ„ํ•ด RN58 / RN59๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜๋ฉด ๋งค์šฐ ์‹ค๋ง ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

@kudo ์ตœ์•…์˜ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ jit์€ 64 ๋น„ํŠธ ๋ฒ„์ „์—์„œ๋งŒ ๋น„ํ™œ์„ฑํ™”๋˜์–ด์•ผํ•˜๋ฉฐ 64 ๋น„ํŠธ ์ง€์› ์žฅ์น˜ ๋งŒ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

@yenda ๋นŒ๋“œ๊ฐ€ ์ˆ˜์ •๋˜๋ฉด ํ•ด๋‹น ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ํž˜๋“ค์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์˜ JSC๋ฅผ ์ถœ์‹œํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

@benoitdion @ItsNoHax ์„ฑ๋Šฅ์ด ์ €ํ•˜ ๋œ ํŠน์ • ์žฅ์น˜๋ฅผ ๋‚˜์—ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌ!

Nexus 5 ๋ฐ Samsung Tab E์—์„œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

RN ํ”„๋กœ์ ํŠธ๋ฅผ 59.x๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” Google ์ง์›์˜ ๊ฒฝ์šฐ android/app/build.gradle -> android {defaultConfig {versionName}}์—์„œ react-native-code-push ์ง€์ •๋œ ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋กœ ์•ฝ 3 ์ผ ๋™์•ˆ ๊ณ ์ƒํ–ˆ๊ณ  ๋‚˜์ค‘์— v59.3์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ ๋œ React Native ํ”„๋กœ์ ํŠธ๊ฐ€ React Native v54.7์ด์žˆ๋Š” ์ฝ”๋“œ ํ‘ธ์‹œ์— ์˜ํ•ด ์—…๋ฐ์ดํŠธ๋˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

90 %์˜ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ €์™€ ๊ฐ™์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ์‹œ๊ฐ„์„ ์ ˆ์•ฝ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ํ›„ @Kudo์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ถฉ๋Œ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

Huawei Honor 8X์—๋„์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถฉ๋Œ์ด ์‚ฌ๋ผ์ง„ ๊ฒƒ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ €๊ฐ€ํ˜• ์žฅ์น˜์—์„œ๋„ ์„ฑ๋Šฅ์ด ์ƒ๋‹นํžˆ ์ €ํ•˜๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ข€ ๋” ํ˜„๋Œ€์ ์ธ JSC๋ฅผ ์œ„ํ•ด RN58 / RN59๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜๋ฉด ๋งค์šฐ ์‹ค๋ง ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. Android์˜ ์ด์ „ RN์€ ๋Š๋ฆฌ๊ณ  ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ์ƒˆ RN์€ ๋น ๋ฅด๊ณ  ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ์ด ์ˆ˜์ •์„ ํ†ตํ•ด ์ƒˆ RN์€ ์•ˆ์ •์ ์ด๊ณ  ๋Š๋ฆฝ๋‹ˆ๋‹ค. Android์—์„œ๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๐Ÿ™ˆ

์นœ์• ํ•˜๋Š”,

No-JIT ๋ฒ„์ „์—์„œ ์„ฑ๋Šฅ์ด ๋‚˜์˜๊ฒŒ ํ–‰๋™ํ•ด์„œ ๋„ˆ๋ฌด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ง€๊ธˆ์€ ํ•ด๊ฒฐ์ฑ…์ด ์—†์–ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.
์žฌํ˜„ ํ•  ์ˆ˜์—†๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋ฌธ์ œ๋ฅผ ํŒŒํ—ค์น˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

RN ์šฉ JSC๋Š” https://github.com/react-native-community/jsc-android-buildscripts ์—์„œ OSS
https://github.com/react-native-community/jsc-android-buildscripts/blob/master/scripts/start.sh#L10 ์—์„œ ์ฃผ์„์„ ์ œ๊ฑฐํ•˜์—ฌ ๋””๋ฒ„๊ทธ ๋นŒ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค
๊ธฐ๋ณธ์ ์œผ๋กœ ๋””๋ฒ„๊ทธํ•˜๊ธฐ ์œ„ํ•ด gdb ๋˜๋Š” lldb๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด ์•ฝ๊ฐ„์˜ ๋‹จ์„œ๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ถฉ๋Œ์€ https://trac.webkit.org/browser/webkit/releases/WebKitGTK/webkit-2.22.6/Source/JavaScriptCore/jit/JITOperations.cpp#L1067์˜ ์ผ๋ถ€ RELEASE_ASSERT๋ฅผ ์œ„๋ฐ˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฃผ์—.

์ด๊ฒƒ์— ๋Œ€ํ•œ ๋ชจ๋“  ์ž‘์—…๊ณผ jsc-android-buildscripts @Kudo์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ๋ฐœ์ „์„ ๋”ฐ๋ผ๊ฐ€๋Š” ๊ฒƒ์€ ๋†€๋ž์Šต๋‹ˆ๋‹ค! ์šฐ๋ฆฌ (์ด ๋ฌธ์ œ๋ฅผ๋ณด๊ณ ์žˆ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ)๊ฐ€ ๋„์šธ ์ˆ˜์žˆ๋Š” ์ผ์ด ์žˆ์Šต๋‹ˆ๊นŒ? @tuncaulubilge ๋Š” ๋Œ€๋ถ€๋ถ„ ์•ˆ์ •์ ์ธ ์žฌํ˜„ ์‚ฌ๋ก€๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๋ถ€ ํŽ˜์ด์Šค ๋ถ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ํŒ€์— jsc ์ „๋ฌธ๊ฐ€๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฐฉ๊ธˆ์ด ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์œผ๋ฉฐ ์‹ค์ œ ์žฅ์น˜, LENOVO A701a48, RUNNING ANDROID 6์—์„œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
"arm64-v8a", "x86_64" ์‚ญ์ œ

ndk {
            abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
 }

๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ–ˆ์ง€๋งŒ ์•ฝ๊ฐ„ ํ•ดํ‚น ๋Š๋‚Œ.

๊ณง RN ํŒ€์˜ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค :(

์นœ์• ํ•˜๋Š”,

์•„๋งˆ ๋งˆ์ง€๋ง‰ ์‹œ๋„ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ตœ์‹  WebKit ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
@kudo-ci/jsc-android@245459-fix-clear-cache-no-dfg ๋Š” WebKitGTK 2.24.2๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•˜๋ฉฐ ๊ธฐ์ค€ JIT๋Š” ์žˆ์ง€๋งŒ DFG JIT๋Š” ์—†์Šต๋‹ˆ๋‹ค.
์ฃผ๋ชฉํ• ๋งŒํ•œ ๋ณ€ํ™”๋Š” ์ตœ์‹  WebKit์ด JIT ๋ฐ”์ดํŠธ ์ฝ”๋“œ ํ˜•์‹์„ ๋ณ€๊ฒฝํ–ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
x86์˜ JIT๋Š” ์ง€์›๋˜์ง€ ์•Š์œผ๋ฉฐ armeabi-v7a JIT ์ง€์›์€ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค (Igalia์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค).
์ถฉ๋Œ์€ arm64์—์„œ๋งŒ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ์ƒˆ ๋ฒ„์ „์„ ์‹œ๋„ํ•ด ๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฒ„์ „์„ ํ†ตํ•ฉํ•˜๋Š” ์ž์„ธํ•œ ๋‹จ๊ณ„๋Š” https://gist.github.com/Kudo/cc40662163fbd69dd01d66fd99476c17#file -steps_for_webkitgtk_2_24_2-md์— ์žˆ์Šต๋‹ˆ๋‹ค.
์ฃผ๋ชฉํ• ๋งŒํ•œ ๋ณ€ํ™”๋Š”์ด๋‹ค 241213 -> 245459 ์ด์ „ JSC์˜ ๋ฒ„์ „ ๋ฐ ํ™•์ธ์ด ๊ฐ€์ง€๊ณ  245459.9000.0 ADB ๋กœ๊ทธ์—.
์ด ์‹คํ—˜ ๋œ JSC๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ๋„์›€์„์ฃผ์„ธ์š”.
์ด๋ฒˆ์—๋Š” ํ–‰์šด์ด ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๐Ÿคž

@benoitdion ๊ฒฉ๋ คํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค โค๏ธ

@Kudo @kudo-ci/jsc-android@245459-fix-clear-cache-no-dfg ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

์œ„์˜ JSC ์‚ฌ์šฉ์‹œ RN v0.59์—์„œ ๋ฐœ์ƒํ•˜๋˜ ์ถฉ๋Œ์ด ์‚ฌ๋ผ์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Google Nexus 6์—์„œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์œผ๋ฉฐ ๋‹ค๋ฅธ ์ œํ’ˆ์€ ์ถœ์‹œ ํ›„ ํ™•์ธ๋ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌ!!

@Kudo @kudo-ci/jsc-android@245459-fix-clear-cache-no-dfg ์ €์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. RN v0.59์—์„œ ์ด์ „์— ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ no-jit ๋˜๋Š” jsc-android v241213.2.0 ๋กœ ์ˆ˜์ • ๋œ Samsung Galaxy S7 SM-G930FD์—์„œ๋Š” ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์ƒˆ๋กœ์šด ๋นŒ๋“œ๋ฅผ ํ†ตํ•ฉ ํ•  ๊ธฐํšŒ๊ฐ€ ์•„์ง ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ ์ด์ •ํ‘œ๊ฐ€ ๋ฐฉํ•ด๋ฅผ ๋ฐ›๊ณ  ์žˆ์ง€๋งŒ์ด ์ž‘์—…์ด ๋๋‚˜ ์ž๋งˆ์ž ๊ทธ๋ ‡๊ฒŒ ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

@Kudo ์˜ ์›๋ž˜ no-dfg ๋Š” ๋‚ด๊ฐ€ ๋ณธ ์ถฉ๋Œ์˜ 99 %๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ๋‹จ์ผ ์ถฉ๋Œ์„ ์ž๊ทน ํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ๋ฐ˜๋ณต ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

@tuncaulubilge ๊ฐ€ ์›๋ž˜์˜ no-dfg ๋นŒ๋“œ๋กœ ์ถฉ๋Œ์„ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๊ฐ€์ด ์ƒˆ๋กœ์šด ๋นŒ๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ๋งŒ๋“œ๋Š”์ง€ ๋ณด๋Š” ๊ฒƒ์ด ํฅ๋ฏธ๋กœ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@rimzici @dishantwalia @timhatch ๋„์™€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@tuncaulubilge ์‹œ๊ฐ„์ด ์žˆ๋‹ค๋ฉด ์ตœ์‹  ์‹คํ—˜ ๋ฒ„์ „์„ ํ™•์ธํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
IIRC, ๋‹น์‹ ๊ณผ @timhatch ๋งŒ์ด 241213 -fix-clear-cache-no-dfg"์—์„œ ์ถฉ๋Œ์„๋ณด๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.
์—…๋ฐ์ดํŠธ ๋œ ๋ฒ„์ „์œผ๋กœ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ๋„
Error when loading lib: dlopen failed: "/data/data/com.amiclient.qa/lib-main/librealmreact.so" is 32-bit instead of 64-bit lib hash: 28b81ed6ba5d3bb31c51509ac8150cd4 search path is /data/app/com.amiclient.qa-1/lib/arm64
ZTE Blade, Samsung S8, OnePlus 6์— @kudo-ci/jsc-android@245459-fix-clear-cache-no-dfg ๋ฅผ ํ†ตํ•ฉ ํ•œ ํ›„์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Motorola Z2 Android 7.1.1์—์„œ๋งŒ ๋นŒ๋“œ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

๊ตฌ๋„
Error when loading lib: dlopen failed: "/data/data/com.amiclient.qa/lib-main/librealmreact.so" is 32-bit instead of 64-bit lib hash: 28b81ed6ba5d3bb31c51509ac8150cd4 search path is /data/app/com.amiclient.qa-1/lib/arm64
ZTE Blade, Samsung S8, OnePlus 6์— @kudo-ci/jsc-android@245459-fix-clear-cache-no-dfg ๋ฅผ ํ†ตํ•ฉ ํ•œ ํ›„์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Motorola Z2 Android 7.1.1์—์„œ๋งŒ ๋นŒ๋“œ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

์ด๊ฒƒ์€ realm ์™€ ๊ด€๋ จ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค https://github.com/realm/realm-js/issues/2261#issuecomment -468691502
https://github.com/realm/realm-js/issues/2221

@Kudo ๋‹ค์‹œ ํ•œ ๋ฒˆ ํ›Œ๋ฅญํ•œ ์ž‘์—…์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ์•ˆํƒ€๊น๊ฒŒ๋„ ์ƒˆ ํ”„๋กœ์ ํŠธ๋กœ ์ด๋™ํ–ˆ๊ณ  ๋” ์ด์ƒ ์ด์ „ ํ”„๋กœ์ ํŠธ์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ์ „ ํŒ€์›๋“ค์—๊ฒŒ ๋‹ค๊ฐ€๊ฐ€ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์‹œ๋„ํ•ด ๋ณด๋„๋กํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ reactRootView.unmountReactApplication ์—์„œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์—ฌ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘์„ ํŠธ๋ฆฌ๊ฑฐํ•˜์—ฌ ๊ฐ€๋” ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒ˜ํ”Œ ์•ฑ์œผ๋กœ ์žฌํ˜„ํ•˜์—ฌ ReactRootViews๋ฅผ ๋งŒ๋“ค๊ณ  ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ๋„
Error when loading lib: dlopen failed: "/data/data/com.amiclient.qa/lib-main/librealmreact.so" is 32-bit instead of 64-bit lib hash: 28b81ed6ba5d3bb31c51509ac8150cd4 search path is /data/app/com.amiclient.qa-1/lib/arm64
ZTE Blade, Samsung S8, OnePlus 6์— @kudo-ci/jsc-android@245459-fix-clear-cache-no-dfg ๋ฅผ ํ†ตํ•ฉ ํ•œ ํ›„์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Motorola Z2 Android 7.1.1์—์„œ๋งŒ ๋นŒ๋“œ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

realm ์™€ ๊ด€๋ จ์ด์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. realm / realm-js # 2261์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
์˜์—ญ / ์˜์—ญ -js # 2221

์ •๋ง ๊ณ ๋ง™์Šต๋‹ˆ๋‹ค! ์˜์—ญ์„ 2.28๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค.
@Kudo ํŠน๋ณ„ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์•ฑ์ด ์ด๋ฏธ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

@Kudo ์ด์ „ ํ…Œ์ŠคํŠธ์™€ ๋™์ผํ•œ ๋นŒ๋“œ ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ @kudo-ci/jsc-android@245459-fix-clear-cache-no-dfg ์‚ฌ์šฉํ•˜์—ฌ ์ด์ „์— ์˜ํ–ฅ์„๋ฐ›์€ ์•ฑ ๋ฒ„์ „์„ ๋‹ค์‹œ ๋นŒ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.
์ง€๊ธˆ๊นŒ์ง€ ๋‹ค์šด๋˜๊ฑฐ๋‚˜ ์ค‘๋‹จ๋˜์ง€ ์•Š์Œ-์ฃผ๋ง ๋‚ด๋‚ด ์•ฑ์— ์ŠคํŠธ๋ ˆ์Šค๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋‹ค์‹œ๋ณด๊ณ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@timhatch ์ •๋ง ๊ฐ์‚ฌ ๋“œ๋ฆฌ๋ฉฐ ์ฃผ๋ง์— ์‹œ๊ฐ„์„๋‚ด์–ด์ฃผ์„ธ์š”.
๋‹ค์Œ ๋ฒˆ์— ๋‹น์‹ ์˜ ์ข‹์€ ์†Œ์‹์„ ๋“ฃ๊ธฐ ์œ„ํ•ด ์†๊ฐ€๋ฝ์„ ๊ต์ฐจ.

ํŒจ์น˜๋กœ ๋นŒ๋“œ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. FBSDK์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

````
์ž‘์—… : react- native- fbsdk : compileReleaseJavaWithJavac FAILED
/ Users / waltermonecke / Documents / Code / React-Native2 / moodPixel / node_modules / react-native-fbsdk / android / src / main / java / com / facebook / reactnative / androidsdk / FBAppEventsLoggerMod
ule. java : 209 : ์˜ค๋ฅ˜ : ๊ธฐํ˜ธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
@ReactMethod (isBlockingSynchronousMethod = true)
^
symbol : isBlockingSynchronousMethod () ๋ฉ”์„œ๋“œ
์œ„์น˜ : @interface ReactMethod
์ฐธ๊ณ  : ์ผ๋ถ€ ์ž…๋ ฅ ํŒŒ์ผ์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” API๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์ฐธ๊ณ  : ์ž์„ธํ•œ ๋‚ด์šฉ์€ -Xlint : deprecation ์œผ๋กœ
์ฐธ๊ณ  : /Users/waltermonecke/Documents/Code/React-Native2/moodPixel/node_modules/react-native-fbsdk/android/src/main/java/com/facebook/reactnative/androidsdk/Utility.java๋Š” ํ™•์ธ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ž‘์—…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ฐธ๊ณ  : -Xlint : unchecked ๋กœ
์˜ค๋ฅ˜ 1 ๊ฐœ

์‹คํŒจ : ์˜ˆ์™ธ๋กœ ์ธํ•ด ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.
````

@wmonecke ๋ฌธ์ œ๊ฐ€ ๋‚˜์—๊ฒŒ ์ด์ƒํ•˜๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค. JSC AAR์—์„œ Java ์ฝ”๋“œ ๋˜๋Š” Gradle ์ข…์†์„ฑ์„ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ ๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ํŒจ์น˜ ์ ์šฉ ๋ฐฉ๋ฒ•์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
์šฐ์—ฐํžˆ ์˜ค๋ž˜๋œ RN ์˜์กด์„ฑ์„ ์‚ฌ์šฉํ•˜๊ณ 
./gradlew :app:dependencies | grep 'com.facebook.react:react-native:' ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๋ฐ˜ํ™˜ ๋œ RN ๋ฒ„์ „์ด ์˜ˆ์ƒ ํ•œ ๋ฒ„์ „์ธ์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค).

ํŒจ์น˜๋กœ ๋นŒ๋“œ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. FBSDK์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Task :react-native-fbsdk:compileReleaseJavaWithJavac FAILED
/Users/waltermonecke/Documents/Code/React-Native2/moodPixel/node_modules/react-native-fbsdk/android/src/main/java/com/facebook/reactnative/androidsdk/FBAppEventsLoggerMod
ule.java:209: error: cannot find symbol
     @ReactMethod(isBlockingSynchronousMethod = true)
                                                ^
  symbol:   method isBlockingSynchronousMethod()
  location: <strong i="7">@interface</strong> ReactMethod
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /Users/waltermonecke/Documents/Code/React-Native2/moodPixel/node_modules/react-native-fbsdk/android/src/main/java/com/facebook/reactnative/androidsdk/Utility.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error

FAILURE: Build failed with an exception.

@wmonecke ์ปดํŒŒ์ผ ํ•˜๋ ค๋ฉด (react-native ๋ฐ kudo ci) maven ์ €์žฅ์†Œ๋ฅผ ๋ชจ๋‘ ์ถ”๊ฐ€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
maven {
// ๋ชจ๋“  React Native (JS, Obj-C ์†Œ์Šค, Android ๋ฐ”์ด๋„ˆ๋ฆฌ)๋Š” npm์—์„œ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.
URL "$ rootDir /../ node_modules / react-native / android"
}

maven {
// Android ์šฉ์œผ๋กœ ๋นŒ๋“œ ๋œ JSC ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€์žˆ๋Š” AAR์ด ํฌํ•จ ๋œ ๋กœ์ปฌ Maven ์ €์žฅ์†Œ
URL "$ rootDir /../ node_modules / @ kudo-ci / jsc-android / dist"
}

@Kudo @kudo-ci/jsc-android@245459-fix-clear-cache-no-dfg ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ค‘๋‹จ๋˜๊ฑฐ๋‚˜ ์ถฉ๋Œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@Kudo @kudo-ci/jsc-android@245459-fix-clear-cache-no-dfg ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ค‘๋‹จ๋˜๊ฑฐ๋‚˜ ์ถฉ๋Œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@Kudo jsc-android-buildscripts ์—์„œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ํ‘ธ์‹œํ•˜๊ณ  ๋ฒ„์ „์„ ๊ฒŒ์‹œํ•˜์‹ญ์‹œ์˜ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ๋•์…˜ ์•ฑ https://github.com/react-native-community/jsc-android-buildscripts ์—์„œ์ด๋ฅผ ๋กค์•„์›ƒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

@timhatch ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค! ํŠนํžˆ ํ™•์ธ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ณง JSC ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ RN์œผ๋กœ ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค.

@dishantwalia ์˜ˆ, ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ๋ชจ๋“  ์ž‘์—…์— ๋Œ€ํ•ด

์ €๋Š” ํ˜„์žฌ RN 0.59.9์ž…๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์šฉ๋˜๋ฉด RN์˜ ์—…๋ฐ์ดํŠธ ๋œ ๋ฒ„์ „์ด 0.59.10๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๋Œ€์‹  jsc-android-buildscripts ๋ฅผ ํƒ€์‚ฌ ํŒจํ‚ค์ง€๋กœ ์„ค์น˜ํ•˜๊ณ  ์„ค๋ช…์„œ์— ๋”ฐ๋ผ 0.59x๋กœ ๊ตฌํ˜„ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

@Kudo ๋งˆ์ง€๋ง‰ ๋ฒ„์ „์—๋„ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ํ›Œ๋ฅญํ•œ ์ผ! ๐Ÿ’ช

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @Kudo , @jacquesdev ๊ฐ€ 0.59.10 ๋˜๋Š” jsc-android-buildscripts ๋ฌป๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@ Kudo
๊ฐ์‚ฌ! ๋‚˜๋Š” ๋‹จ์ง€ ์œ ์ง€ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค :
maven { // workaround for crash on 64 bit devices - remove once RN 59+ has resolved issue. // issue: https://github.com/facebook/react-native/issues/24261 url "$rootDir/../node_modules/@kudo-ci/jsc-android/dist" }

build.gradle ์‚ฌ์šฉ

@Kudo ๋ถˆํ–‰ํžˆ๋„ ๋ฌธ์ œ๋Š” ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค (Galaxy S7, Android7). @kudo-ci/jsc-android@245459-fix-clear-cache-no-dfg ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ๋„์›€์ด๋˜์ง€ ์•Š์€ no-JIT ๋ฒ„์ „์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์ด ์ œ๊ณต ํ•œ grep์„ ์‚ฌ์šฉํ•˜์—ฌ "JavaScriptCore"๋ฒ„์ „์ด adb logcat์— ์ถœ๋ ฅ๋˜๋„๋ก ๋งŒ๋“ค์ง€ ๋ชปํ–ˆ๊ณ , ์ˆ˜๋™์œผ๋กœ ๋ด์„œ ๋กœ๊ทธ ์ž์ฒด์—์„œ JavaScriptCore์— ๋Œ€ํ•œ ์–ธ๊ธ‰์„ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถฉ๋Œ์„ ๊ฝค ์ž์ฃผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ญ์ƒ ๊ฐ™์€ ์žฅ์†Œ์—์„œ ์ถฉ๋Œํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค (245459-fix-clear-cache-no-dfg).

06-26 13:56:22.982  4374  4521 W google-breakpad: Chrome build fingerprint:
06-26 13:56:22.982  4374  4521 W google-breakpad: 3.0.70
06-26 13:56:22.982  4374  4521 W google-breakpad: 30070
06-26 13:56:22.982  4374  4521 W google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ###
06-26 13:56:22.984  4374  4521 F libc    : Fatal signal 11 (SIGSEGV), code 1, fault addr 0xafca in tid 4521 (mqt_js)
06-26 13:56:22.986  3075  3075 W         : debuggerd: handling request: pid=4374 uid=10169 gid=10169 tid=4521
06-26 13:56:23.089  3769  5715 D SSRM:k  : SIOP:: AP = 430, PST = 398 (W:6), CP = 318, CUR = -104, LCD = 99
06-26 13:56:23.154  4557  4557 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-26 13:56:23.156  4557  4557 F DEBUG   : Build fingerprint: 'samsung/hero2ltexx/hero2lte:7.0/NRD90M/G935FXXU1ZPL3:user/release-keys'
06-26 13:56:23.156  4557  4557 F DEBUG   : Revision: '8'
06-26 13:56:23.156  4557  4557 F DEBUG   : ABI: 'arm64'
06-26 13:56:23.157  4557  4557 F DEBUG   : pid: 4374, tid: 4521, name: mqt_js  >>> com.myapp <<<
06-26 13:56:23.157  4557  4557 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xafca
06-26 13:56:23.157  4557  4557 F DEBUG   :     x0   000000000000a01a  x1   0000000000000000  x2   00000079f6a30000  x3   0000007a05afe748
06-26 13:56:23.157  4557  4557 F DEBUG   :     x4   0000000000000000  x5   0000000000000010  x6   ffff000000000002  x7   0000000000009ab0
06-26 13:56:23.158  4557  4557 F DEBUG   :     x8   0000007a045acd6c  x9   0000000000000002  x10  0000000000000001  x11  0000000000000000
06-26 13:56:23.158  4557  4557 F DEBUG   :     x12  0000000000000fff  x13  00000079df7ed2b8  x14  00000079f6973890  x15  0000000000000001
06-26 13:56:23.158  4557  4557 F DEBUG   :     x16  00000079f6a59a30  x17  0000007a1ae56058  x18  000000000045b4fb  x19  0000007a05afe7f0
06-26 13:56:23.158  4557  4557 F DEBUG   :     x20  0000007a05afe750  x21  00000079f6a3a6b8  x22  0000007a1ae4b000  x23  00000079f693cf50
06-26 13:56:23.158  4557  4557 F DEBUG   :     x24  0000000000000000  x25  00000079df415e10  x26  0000000000000001  x27  ffff000000000000
06-26 13:56:23.158  4557  4557 F DEBUG   :     x28  ffff000000000002  x29  0000007a05afe750  x30  0000007a045ac890
06-26 13:56:23.158  4557  4557 F DEBUG   :     sp   0000007a05afe640  pc   0000007a045a27e4  pstate 0000000040000000
06-26 13:56:23.173  4557  4557 F DEBUG   : 
06-26 13:56:23.173  4557  4557 F DEBUG   : backtrace:
06-26 13:56:23.173  4557  4557 F DEBUG   :     #00 pc 00000000001647e4  /data/app/com.test.app-1/lib/arm64/libjsc.so
06-26 13:56:23.173  4557  4557 F DEBUG   :     #01 pc 000000000016e88c  /data/app/com.test.app-1/lib/arm64/libjsc.so
06-26 13:56:23.173  4557  4557 F DEBUG   :     #02 pc 000000000016ebf0  /data/app/com.test.app-1/lib/arm64/libjsc.so
06-26 13:56:23.173  4557  4557 F DEBUG   :     #03 pc 000000000016ed8c  /data/app/com.test.app-1/lib/arm64/libjsc.so
06-26 13:56:23.173  4557  4557 F DEBUG   :     #04 pc 0000000000005ecc  <anonymous:00000079eb5f9000>

์—ญ ์ถ”์ ์€ ์˜๋ฏธ์žˆ๋Š” ๊ฒƒ์„ ๋งํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Android8์—์„œ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— (Android8์—์„œ ๋ฌธ์ œ๋ฅผ ์ƒ์„ฑ ํ•  ์ˆ˜ ์—†์Œ) Galaxy S7์— ๊ณต์‹ Android7์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— Android7์„ ์ง€์›ํ•  ์‚ฌ์šฉ์ž ์ง€์ • ROM์„ ์ฐพ์•„์•ผํ–ˆ์Šต๋‹ˆ๋‹ค.

jsc-android-buildscripts์—์„œ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹์„ ์‚ฌ์šฉํ•˜์—ฌ jsc-android์˜ ๋””๋ฒ„๊ทธ ๋ฒ„์ „์„ ์ปดํŒŒ์ผํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๊ณ  ์žˆ์ง€๋งŒ ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.groundspeak.react.adventures <<<

backtrace:
  #00  pc 00000000007e048c  /data/app/com.groundspeak.react.adventures-1/lib/arm64/libjsc.so
  #01  pc 00000000000be650  /data/app/com.groundspeak.react.adventures-1/lib/arm64/libjsc.so
  #02  pc 0000000000489f2c  /data/app/com.groundspeak.react.adventures-1/lib/arm64/libjsc.so
  #03  pc 000000000025fd98  <anonymous>

Android ๋ฒ„์ „ :

๋ฒ„์ „ | ๋ฒˆํ˜ธ | ํผ์„ผํŠธ
-| -| -
์•ˆ๋“œ๋กœ์ด๋“œ 7.0 | 66 | 100.0 %

์žฅ์น˜ ๋ณ„ :

์žฅ์น˜ | ๋ฒˆํ˜ธ | ํผ์„ผํŠธ
-| -| -
hero2lte | 26 | 39.4 %
ํ—ค๋กค ํ…Œ | 24 | 36.4 %
heroltebmc | 16 | 24.2 %

RN์„ 0.58.6์—์„œ 0.59.9๋กœ ์—…๋ฐ์ดํŠธ ํ•œ ํ›„์—๋„ Galaxy S7 ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

jsc-android ์˜ ํ˜„์žฌ npm ๋ฒ„์ „์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์•ฑ ์ถฉ๋Œ์„ ์ผ์œผํ‚ค์ง€ ๋งŒ @kudo-ci/jsc-android@245459-fix-clear-cache-no-dfg ๋ฐ JSC ๋ฒ„์ „ 245459.9000.0 ํ•˜๋ฉด S7์—์„œ ์ถฉ๋Œ์ด ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@ChrisEelmaa adb logcat์˜ "JavaScriptCore.Version"๋กœ๊ทธ์ธ์€ ์˜ฌ๋ฐ”๋ฅธ JSC ๋ฒ„์ „์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
RN 0.59์—๋Š” libjsc.so๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ๊ณ  pickFirst '** / libjsc.so'๋Š” ์ œ ์ƒ๊ฐ์—๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

JSC ๋ฒ„์ „์„ ํ™•์ธํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

  1. /path/to/app.apk์˜ ์••์ถ•์„ ํ’‰๋‹ˆ ๋‹ค.
  2. ๋ฌธ์ž์—ด jni / arm64-v8a / libjsc.so | grep -C 1 JavaScriptCore.Version

์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

$ strings jni/arm64-v8a/libjsc.so|grep -C 1 JavaScriptCore.Version                                                                                                   
API Wrapper
JavaScriptCore.Version
245459.9000.0

@Kudo ๊ท€ํ•˜์˜ ์ˆ˜์ •์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ง€์˜ฅ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚ด 2 ์„ผํŠธ : jni ํด๋”๊ฐ€ ์—†์ง€๋งŒ ๋Œ€์‹  lib ํด๋”๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ์ด ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์••์ถ•์„ ํ‘ผ ํ›„ ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

$ strings lib/arm64-v8a/libjsc.so | grep -C 1 JavaScriptCore.Version
API Wrapper
JavaScriptCore.Version
245459.9000.0

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @Kudo

๋‚˜๋Š” ์ด์ „์— ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ 0.58.3์„ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ ์‚ฌ๋žŒ๋“ค์ด ํ•ญ์ƒ 0.59๋ฅผ ์–ธ๊ธ‰ํ•˜๋Š” ๊ฒƒ์„ ๋ณด์•˜์œผ๋ฏ€๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. 0.59.0๊ณผ @ kudo-ci / jsc-android @ 245459-fix-clear-cache-no-dfg์˜ ์กฐํ•ฉ ์ด ๋‚˜๋ฅผ ์œ„ํ•ด ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

๋” ์ด์ƒ ์ถฉ๋Œ์„ ์ผ์œผํ‚ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ˆ˜์ •์ด ๋‹ค์Œ RN ๋ฆด๋ฆฌ์Šค์— ํฌํ•จ๋  ๊ฒƒ์ธ์ง€ ์•„๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ˆ˜์ •์ด ๋‹ค์Œ RN ๋ฆด๋ฆฌ์Šค์— ํฌํ•จ๋  ๊ฒƒ์ธ์ง€ ์•„๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

https://github.com/react-native-community/jsc-android-buildscripts#for -react-native-version-060-and-newer

ํ—‰ํ—‰
๋”ฐ๋ผํ–ˆ๋˜ ๋‹จ๊ณ„๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด.

https://github.com/react-native-community/jsc-android-buildscripts#for -react-native-version-059์˜ ์ง€์นจ์„ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ "jsc-android": "241213.x.x", ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋Œ€์‹  ๊ต์ฒดํ–ˆ๊ณ , package.json์— @kudo-ci/jsc-android": "^245459.9000.0 ์„ ์ถ”๊ฐ€ ํ–ˆ์Šต๋‹ˆ๊นŒ? ๋‹ค๋ฅธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ๋ฅผ ๋“ค์–ด, build.grade์—์„œ implementation "org.webkit:android-jsc:r241213" ์ถ”๊ฐ€ํ•ด์•ผํ•˜๋ฉฐ ํ•ด๋‹น ์ค„๋„ ๋ณ€๊ฒฝํ•ด์•ผํ•˜๋‚˜์š”? ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒํ•ด์•ผํ•˜๋‚˜์š”?

๋นŒ๋“œ ์˜ค๋ฅ˜ Could not find org.webkit:android-jsc:r241213. ๋˜๋Š” Could not find org.webkit:android-jsc:r245459.9000.0. ํ•˜๋ฏ€๋กœ ๋‚ด ๋ฌธ์ œ๊ฐ€ ์ž˜๋ชป๋œ ์ฐธ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๊ทธ๊ฒŒ ๋ฌด์—‡์ธ์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@jacquesdev ๋Š”์ด ๊ฐ€์ด๋“œ์˜ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. https://gist.github.com/Kudo/cc40662163fbd69dd01d66fd99476c17#file -steps_for_webkitgtk_2_24_2-md

์นœ์• ํ•˜๋Š”,

@kmagiera ์˜ ๋„์›€์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ํŒจ์น˜๊ฐ€ ' [email protected] '์œผ๋กœ ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์—…๋ฐ์ดํŠธ ๋œ JSC๋ฅผ RN์œผ๋กœ ๊ฐ€์ ธ ์˜ค๊ธฐ ์œ„ํ•ด https://github.com/facebook/react-native/pull/25426 ์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  @kelset ์€ RN 0.60 RC์—๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋งˆ์นจ๋‚ด์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์ข…๊ฒฐ ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
์—ฌ๊ธฐ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ํŠนํžˆ ๋‚ด ์‹คํ—˜ ๋ฒ„์ „์„ ์•ž๋’ค๋กœ ํ™•์ธํ•˜๋Š” ๋ฐ ๋„์›€์„ ์š”์ฒญํ•˜์‹ญ์‹œ์˜ค.
์šฐ๋ฆฌ๋Š” ์†Œ์œ„ RN ์ปค๋ฎค๋‹ˆํ‹ฐ์ž…๋‹ˆ๋‹ค!

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @Kudo! ์ด๊ฒƒ์ด 0.59.x ๋ฆด๋ฆฌ์Šค๋ฅผ ๋งŒ๋“ค ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š”์ง€ ์•„๋‹ˆ๋ฉด 0.60์—์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š”์ง€ ์•„์‹ญ๋‹ˆ๊นŒ?

0.59.x์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ต‰์žฅ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
0.60์€ AndroidX ๋ฐ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋งŽ์€ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

+1, 0.59.x์— ๋„ฃ์œผ๋ฉด ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
์•ฑ.

Android X ์ง€์› ๋•Œ๋ฌธ์— 0.60์œผ๋กœ ํ–ฅํ•˜๊ณ  ์‹ถ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.
์ง€๊ธˆ๊นŒ์ง€ ๋„์„œ๊ด€.

JSC์˜ pickFirst๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๋„ค์ดํ‹ฐ๋ธŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ํ•˜๋‚˜ ์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค.
๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ ํ•ญ์ƒ rn ๋‚ด๋ถ€ ๋ฒ„์ „์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
(๊นจ๋—ํ•œ ํ”„๋กœ์ ํŠธ๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์œผ๋ฏ€๋กœ ์›์ธ์ด๋˜๋Š” ๋ถ€์„œ ์ค‘ ํ•˜๋‚˜ ์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค)

๊ตํšŒ

2019 ๋…„ 6 ์›” 29 ์ผ ํ† ์š”์ผ, 19:35 Anurag Dadheech, [email protected]
์ผ๋‹ค :

0.59.x์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ต‰์žฅ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
0.60์€ AndroidX ๋ฐ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋งŽ์€ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

โ€”
์ด ์Šค๋ ˆ๋“œ๋ฅผ ๊ตฌ๋…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—์ด ๋ฉ”์‹œ์ง€๊ฐ€ ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/facebook/react-native/issues/24261?email_source=notifications&email_token=AABPHZ25TBIFBOI3QWMSPXLP46TN3A5CNFSM4HC77RA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNDY355W9292ZLOBW63LNDY506VXHJKTDN5W9772ZLOPWSZGONMVXHJKTDN
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AABPHZ2D5WUEM4S3242ZTYTP46TN3ANCNFSM4HC77RAQ
.

์•ˆ๋…•ํ•˜์„ธ์š”,์ด "@ kudo-ci / jsc-android @ 245459-fix-clear-cache-no-dfg "๋ฅผ ์–ด๋””์— ์ถ”๊ฐ€ํ•ด์•ผํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” @Kudo ๋‹˜์˜ ๋ฉ‹์ง„ ์ž‘์—…์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

DFG JIT๊ฐ€์—†๋Š” ์ด์ „ WebKit์—์„œ๋Š” ์—ฌ์ „ํžˆ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์ง€๋งŒ DFG JIT๊ฐ€์—†๋Š” ์ตœ์‹  WebKit 2.24.2๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ ์ตœ์ƒ์˜ ์„ฑ๋Šฅ์„ ํ—ˆ์šฉํ•˜๊ธฐ ์œ„ํ•ด DFG JIT๊ฐ€ ํ™œ์„ฑํ™” ๋œ์ด ์ƒˆ๋กœ์šด WebKit์„ ์‚ฌ์šฉํ•ด ๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

0.60 @Kudo @kelset @grabbou @turnrye๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ๋” ์–ด๋ ค์šธ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—์ด ์ˆ˜์ •์œผ๋กœ 0.59.10์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์„ ๊ฒƒ์ด๊ธฐ ์ „์— ๋ช‡ ๊ฐ€์ง€ ์˜๊ฒฌ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

react-native-maps๋Š” ์•„์ง AndroidX๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— 0.60์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, S7 ๋ฐ S7 plus ์ถฉ๋Œ๋กœ ์ธํ•ด ์—…๋ฐ์ดํŠธ๋ฅผ 0.59.X๋กœ ํ‘ธ์‹œ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ๊ธฐ์—…์˜ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ์— ๋‹ฌ๋ ค์žˆ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@adnkh์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ AndroidX๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์—†์ง€๋งŒ 0.59 ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ • ์‚ฌํ•ญ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด 0.60์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. https://github.com/react-native-community/jsc-android-buildscripts/#for -react-native-version-059์˜ ์ง€์นจ์„ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ํ•˜๋ ค๋Š” ๋ฒ„์ „์€ 245459.0.0 ์ด์ƒ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @benoitdion ,

์˜ˆ, ๋ฉ”์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์—†๋Š” ๊ฒฝ์šฐ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ์‹ค์ œ๋กœ

ํ•˜์ง€๋งŒ Android ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ•ด์•ผํ•˜๋Š” ๋งŽ์€ ๊ฒƒ๋“ค์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ์˜๊ตฌ์  ์ธ ํ•ด๊ฒฐ์ฑ…์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฉ”์ธ RN์˜ ํ•ซํ”ฝ์Šค๊ฐ€ ๊ฐœ๋ฐœ์ž ๊ด€์ ์—์„œ ๋” ํŽธ๋ฆฌ ํ•  ๊ฒƒ์ด๋ฉฐ ๋งŽ์€ ์ถฉ๋Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. Android ์•ฑ์—์„œ

์ˆ˜์ • ์‚ฌํ•ญ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด 0.60์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. https://github.com/react-native-community/jsc-android-buildscripts/#for -react-native-version-059์˜ ์ง€์นจ์„ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ํ•˜๋ ค๋Š” ๋ฒ„์ „์€ 245459.0.0 ์ด์ƒ์ž…๋‹ˆ๋‹ค.

@benoitdion ์˜ˆ, ๊ทธ๋Ÿฌ๋‚˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด๋ฉฐ 0.59.10์œผ๋กœ ๊ฒŒ์‹œ ๋œ ๊ณต์‹ ์ˆ˜์ •์ด ๋” ์ข‹์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @Kudo
@kudo-ci/jsc-android@245459-fix-clear-cache-no-dfg ํ•˜๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ์ถฉ๋Œ์ด ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ๋•์…˜์—๋Š” ์—ฌ์ „ํžˆ ๋ช‡ ๊ฐ€์ง€ ์ถฉ๋Œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

xiaomi MIX 3 XiaoMi / MIUI Android 9, ๋ ˆ๋ฒจ 28 arm64-v8a

1ย #00 pc 00000000000f7748 /data/app/com.gezbox.windmessage--4BWJ7puodXEdg5g4H7Mdg==/lib/arm64/libjsc.so (JSC::AccessCase::propagateTransitions(JSC::SlotVisitor&) const+16) [arm64-v8a]
2ย #01 pc 0000000000143fe8 /data/app/com.gezbox.windmessage--4BWJ7puodXEdg5g4H7Mdg==/lib/arm64/libjsc.so (JSC::PolymorphicAccess::propagateTransitions(JSC::SlotVisitor&) const+48) [arm64-v8a]
3ย #02 pc 000000000012f0a8 /data/app/com.gezbox.windmessage--4BWJ7puodXEdg5g4H7Mdg==/lib/arm64/libjsc.so (JSC::CodeBlock::propagateTransitions(JSC::ConcurrentJSLocker const&, JSC::SlotVisitor&)+556) [arm64-v8a]
4ย #03 pc 0000000000139484 /data/app/com.gezbox.windmessage--4BWJ7puodXEdg5g4H7Mdg==/lib/arm64/libjsc.so (JSC::ExecutableToCodeBlockEdge::runConstraint(JSC::ConcurrentJSLocker const&, JSC::VM&, JSC::SlotVisitor&)+40) [arm64-v8a]
5ย #04 pc 000000000013900c /data/app/com.gezbox.windmessage--4BWJ7puodXEdg5g4H7Mdg==/lib/arm64/libjsc.so (JSC::ExecutableToCodeBlockEdge::visitChildren(JSC::JSCell*, JSC::SlotVisitor&)+1044) [arm64-v8a]
6ย #05 pc 00000000001fb9c4 /data/app/com.gezbox.windmessage--4BWJ7puodXEdg5g4H7Mdg==/lib/arm64/libjsc.so (_ZZN3JSC11SlotVisitor5drainEN3WTF13MonotonicTimeEENK3$_3clERNS_14MarkStackArrayE+324) [arm64-v8a]
7ย #06 pc 00000000001f8e90 /data/app/com.gezbox.windmessage--4BWJ7puodXEdg5g4H7Mdg==/lib/arm64/libjsc.so (JSC::SlotVisitor::drain(WTF::MonotonicTime)+132) [arm64-v8a]
8ย #07 pc 00000000001f96bc /data/app/com.gezbox.windmessage--4BWJ7puodXEdg5g4H7Mdg==/lib/arm64/libjsc.so (JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode, WTF::MonotonicTime)+580) [arm64-v8a]
9ย #08 pc 00000000001e41a0 /data/app/com.gezbox.windmessage--4BWJ7puodXEdg5g4H7Mdg==/lib/arm64/libjsc.so (_ZN3WTF17SharedTaskFunctorIFvvEZN3JSC4Heap13runBeginPhaseENS2_11GCConductorEE4$_17E3runEv+580) [arm64-v8a]
10ย #09 pc 00000000006171ec /data/app/com.gezbox.windmessage--4BWJ7puodXEdg5g4H7Mdg==/lib/arm64/libjsc.so (WTF::ParallelHelperClient::runTask(WTF::RefPtr<WTF::SharedTask<void ()>, WTF::DumbPtrTraits<WTF::SharedTask<void ()> > > const&)+40) [arm64-v8a]
11ย #10 pc 0000000000617950 /data/app/com.gezbox.windmessage--4BWJ7puodXEdg5g4H7Mdg==/lib/arm64/libjsc.so (WTF::ParallelHelperPool::Thread::work()+16) [arm64-v8a]
12ย #11 pc 000000000060de7c /data/app/com.gezbox.windmessage--4BWJ7puodXEdg5g4H7Mdg==/lib/arm64/libjsc.so (_ZN3WTF8FunctionIFvvEE15CallableWrapperIZNS_15AutomaticThread5startERKNS_14AbstractLockerEE3$_0E4callEv+376) [arm64-v8a]
13ย #12 pc 000000000061b084 /data/app/com.gezbox.windmessage--4BWJ7puodXEdg5g4H7Mdg==/lib/arm64/libjsc.so (WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)+212) [arm64-v8a]
14ย #13 pc 0000000000646dc8 /data/app/com.gezbox.windmessage--4BWJ7puodXEdg5g4H7Mdg==/lib/arm64/libjsc.so (WTF::wtfThreadEntryPoint(void*)+4) [arm64-v8a]
15ย #14 pc 0000000000081dac /system/lib64/libc.so (__pthread_start(void*)+36) [arm64-v8a]
16ย #15 pc 0000000000023788 /system/lib64/libc.so (__start_thread+68) [arm64-v8a]

OPPO R9S Oppo / COLOROS Android 6.0.1, ๋ ˆ๋ฒจ 23 arm64-v8a

1ย #00 pc 00000000000f7748 /data/app/com.gezbox.windmessage-1/lib/arm64/libjsc.so (JSC::AccessCase::propagateTransitions(JSC::SlotVisitor&) const+16) [arm64-v8a]
2ย #01 pc 0000000000143fe8 /data/app/com.gezbox.windmessage-1/lib/arm64/libjsc.so (JSC::PolymorphicAccess::propagateTransitions(JSC::SlotVisitor&) const+48) [arm64-v8a]
3ย #02 pc 000000000012f0a8 /data/app/com.gezbox.windmessage-1/lib/arm64/libjsc.so (JSC::CodeBlock::propagateTransitions(JSC::ConcurrentJSLocker const&, JSC::SlotVisitor&)+556) [arm64-v8a]
4ย #03 pc 0000000000139484 /data/app/com.gezbox.windmessage-1/lib/arm64/libjsc.so (JSC::ExecutableToCodeBlockEdge::runConstraint(JSC::ConcurrentJSLocker const&, JSC::VM&, JSC::SlotVisitor&)+40) [arm64-v8a]
5ย #04 pc 000000000013900c /data/app/com.gezbox.windmessage-1/lib/arm64/libjsc.so (JSC::ExecutableToCodeBlockEdge::visitChildren(JSC::JSCell*, JSC::SlotVisitor&)+1044) [arm64-v8a]
6ย #05 pc 00000000001fb9c4 /data/app/com.gezbox.windmessage-1/lib/arm64/libjsc.so (_ZZN3JSC11SlotVisitor5drainEN3WTF13MonotonicTimeEENK3$_3clERNS_14MarkStackArrayE+324) [arm64-v8a]
7ย #06 pc 00000000001f8e90 /data/app/com.gezbox.windmessage-1/lib/arm64/libjsc.so (JSC::SlotVisitor::drain(WTF::MonotonicTime)+132) [arm64-v8a]
8ย #07 pc 00000000001f96bc /data/app/com.gezbox.windmessage-1/lib/arm64/libjsc.so (JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode, WTF::MonotonicTime)+580) [arm64-v8a]
9ย #08 pc 00000000001e41a0 /data/app/com.gezbox.windmessage-1/lib/arm64/libjsc.so (_ZN3WTF17SharedTaskFunctorIFvvEZN3JSC4Heap13runBeginPhaseENS2_11GCConductorEE4$_17E3runEv+580) [arm64-v8a]
10ย #09 pc 00000000006171ec /data/app/com.gezbox.windmessage-1/lib/arm64/libjsc.so (WTF::ParallelHelperClient::runTask(WTF::RefPtr<WTF::SharedTask<void ()>, WTF::DumbPtrTraits<WTF::SharedTask<void ()> > > const&)+40) [arm64-v8a]
11ย #10 pc 0000000000617950 /data/app/com.gezbox.windmessage-1/lib/arm64/libjsc.so (WTF::ParallelHelperPool::Thread::work()+16) [arm64-v8a]
12ย #11 pc 000000000060de7c /data/app/com.gezbox.windmessage-1/lib/arm64/libjsc.so (_ZN3WTF8FunctionIFvvEE15CallableWrapperIZNS_15AutomaticThread5startERKNS_14AbstractLockerEE3$_0E4callEv+376) [arm64-v8a]
13ย #12 pc 000000000061b084 /data/app/com.gezbox.windmessage-1/lib/arm64/libjsc.so (WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)+212) [arm64-v8a]
14ย #13 pc 0000000000646dc8 /data/app/com.gezbox.windmessage-1/lib/arm64/libjsc.so (WTF::wtfThreadEntryPoint(void*)+4) [arm64-v8a]
15ย #14 pc 00000000000664a4 /system/lib64/libc.so (__pthread_start(void*)+52) [arm64-v8a]
16ย #15 pc 000000000001ebc4 /system/lib64/libc.so (__start_thread+16) [arm64-v8a]

RMX1901 Oppo / COLOROS Android 9, ๋ ˆ๋ฒจ 28 arm64-v8a

1ย #00 pc 0000007772fbb2c0 <unknown>
2ย #01 pc 00000000005519bc /data/app/com.gezbox.windmessage-vCMpnEKA509f1Di2EyrZ2w==/lib/arm64/libjsc.so (JSC::RegExp::match(JSC::VM&, WTF::String const&, unsigned int, WTF::Vector<int, 0ul, WTF::CrashOnOverflow, 16ul>&)+500) [arm64-v8a]
3ย #02 pc 00000000005722e8 /data/app/com.gezbox.windmessage-vCMpnEKA509f1Di2EyrZ2w==/lib/arm64/libjsc.so (JSC::stringProtoFuncReplaceUsingRegExp(JSC::ExecState*)+3072) [arm64-v8a]
4ย #03 pc 0000007772dff1ec <unknown>

๐Ÿ‘‹ ๋ชจ๋‘.

์—ฌ๋Ÿฌ๋ถ„ ๋ชจ๋‘์˜ ์˜๊ฒฌ์„ ๋“ฃ๊ณ  ์žˆ์œผ๋ฉฐ, ๋งŽ์€ ๋ถ„๋“ค์ด ๊ฒช๊ณ ์žˆ๋Š” ๋ฌธ์ œ๋กœ ์ธํ•ด JSC์˜ ์ƒˆ ๋ฒ„์ „์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋งˆ์ง€๋ง‰ 0.59.10 ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ 0.59๋กœ ๋ฐฑ ํฌํŒ…ํ•˜๋Š” ์ž‘์—…์— ๋Œ€ํ•œ @Kudo ์—๊ฒŒ ํฐ ๊ฐ์‚ฌ๋ฅผ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” 0.60 (์ƒˆ๋กœ์šด JSC๋„ ํฌํ•จ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค!)์—์„œ ์ž‘์—…ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋„์ „์ ์ธ ์ž‘์—…์ด๊ณ  ๋” ์–ด๋ ต ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๊นŒ์šด ๋ฏธ๋ž˜์— ๋‹ค๋ฅธ 0.59 ๋ฆด๋ฆฌ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ํ•ต์‹ฌ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์œผ๋ฏ€๋กœ์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ์œผ๋ ค๊ณ ํ•˜์ง€๋งŒ 0.59.10 ์ดํ›„์— ๋ฐœ์ƒํ•  ์ˆ˜์žˆ๋Š” ๋‹ค๋ฅธ ์ถฉ๋Œ์— ๋Œ€ํ•ด ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ฌ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ข‹์€ ์†Œ์‹ !!

๋ชจ๋‘ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ํŠนํžˆ @kudo !!

2019 ๋…„ 7 ์›” 2 ์ผ ํ™”์š”์ผ 12:29 Lorenzo Sciandra, [email protected]
์ผ๋‹ค :

๐Ÿ‘‹ ๋ชจ๋‘.

์šฐ๋ฆฌ๋Š” ์—ฌ๋Ÿฌ๋ถ„ ๋ชจ๋‘์˜ ๋ง์„ ๋“ฃ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งŽ์€ ์—ฌ๋Ÿฌ๋ถ„์ด ๊ฒช๊ณ ์žˆ๋Š” ๋ฌธ์ œ ๋•Œ๋ฌธ์—
์ตœ์‹  ๋ฒ„์ „์˜ 0.59.10 ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.
JSC.

๊ทธ์˜ ์ž‘์—…์— ๋Œ€ํ•ด @Kudo https://github.com/Kudo ์—๊ฒŒ ํฐ ๊ฐ์‚ฌ๋ฅผ ํ‘œ ํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์„ 0.59๋กœ ๋ฐฑ ํฌํŒ…ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ƒˆ๋กœ์šด 0.59 ๋ฆด๋ฆฌ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
0.60 (์ƒˆ๋กœ์šด JSC
๋„ˆ๋ฌด!).

์ฃผ์š” ํ•ต์‹ฌ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์œผ๋ฏ€๋กœ์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
๋ฐœ์ƒํ•  ์ˆ˜์žˆ๋Š” ๋‹ค๋ฅธ ์ถฉ๋Œ์— ๋Œ€ํ•ด ์ƒˆ ํŒŒ์ผ์„ ์—ด ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.
0.59.10 ์ดํ›„.

โ€”
์ด ์Šค๋ ˆ๋“œ๋ฅผ ๊ตฌ๋…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—์ด ๋ฉ”์‹œ์ง€๊ฐ€ ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/facebook/react-native/issues/24261?email_source=notifications&email_token=AABPHZZG2Z764HFNPJB7UVTP5M325A5CNFSM4HC77RA2YY3PNVWWK3TUL52HS4DFVRZG43VMVLOBW63LNODMVXHJKissue ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AABPHZ5PYT4F7ZZGQXZKKKLP5M325ANCNFSM4HC77RAQ
.

์ˆ˜์ • ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! react-native๋ฅผ 0.59.10 ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„์—๋„ ์—ฌ๊ธฐ์— ์–ธ๊ธ‰ ๋œ ๋‹จ๊ณ„๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

์ผ€๋นˆ,

RN 0.59.10์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„์—๋Š” ์š”์ ์„ ๋”ฐ๋ฅผ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๋” ์ด์ƒ ์ง€์‹œ.

์ผ€์ด

์ˆ˜์š”์ผ, 2019 ๋…„ 7 ์›” 3 ์ผ, 15:42 Kevin Etore, [email protected] ์ž‘์„ฑ :

์ˆ˜์ • ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! react-native๋ฅผ ๋ฒ„์ „ 0.59.10์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„,
์—ฌ๊ธฐ์— ์–ธ๊ธ‰ ๋œ ๋‹จ๊ณ„๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?
https://gist.github.com/Kudo/cc40662163fbd69dd01d66fd99476c17 ?

โ€”
์ด ์Šค๋ ˆ๋“œ๋ฅผ ๊ตฌ๋…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—์ด ๋ฉ”์‹œ์ง€๊ฐ€ ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/facebook/react-native/issues/24261?email_source=notifications&email_token=AABPHZ6H66HMI6CFMXMR4Y3P5S3DVA5CNFSM4HC77RA2YY3PNVWWK3TUL52HS4DFVRWSG43VMVDYQ#TDNGissueMVXHJK#TDNNODVXHJK
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AABPHZ6UMO5NS4F4OZ7RWPTP5S3DVANCNFSM4HC77RAQ
.

๋‚ด ์•ฑ์€ RN-0.59.10์„ ์‚ฌ์šฉํ•˜๋Š” Meizu M5s M612H Android OS 6์—์„œ ์—ฌ์ „ํžˆ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. @kelset์ด ์ œ์•ˆํ•œ๋Œ€๋กœ ์ƒˆ๋กœ์šด ๋ฌธ์ œ ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

Caterpillar S41 (Android 8.0)์—์„œ ์—ฌ์ „ํžˆ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์ˆ˜์ •์€ ๋‹ค๋ฅธ ๋ชจ๋“  ์žฅ์น˜์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ด ์•„๋‹Œ์ง€ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„
64 ๋น„ํŠธ๋กœ ์ปดํŒŒ์ผ ํ•  ๋•Œ ๋‚ด ์•ฑ๋„ ์ผ๋ถ€ Android ๊ธฐ๊ธฐ์—์„œ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

react-native-elements ํŒจํ‚ค์ง€ ๋ฒ„์ „ 1.1.0์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ ??
๊ตฌ์„ฑ ์š”์†Œ ํ—ค๋”๊ฐ€ ๋‚ด ์•ฑ๊ณผ ์•„๋ฐ”ํƒ€ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ถฉ๋Œ์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ์†Œํ’ˆ ์•„์ด์ฝ˜์ด๋‚˜ ์ œ๋ชฉ์„ ๋„ฃ์„ ๋•Œ

๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๊ทธ๋“ค์—๊ฒŒ๋„ ๊ฐ™์€ ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์–ด๋–ค s7 ์†Œ์œ ์ž๊ฐ€ Hermes์™€ ํ•จ๊ป˜์ด ๋ฌธ์ œ๋ฅผ ํ…Œ์ŠคํŠธ ํ•  ๊ธฐํšŒ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ?

์•„๋ž˜ ์•ฑ ์ถฉ๋Œ์„ ์‚ฌ์šฉํ•˜๊ณ  Google Play ์Šคํ† ์–ด์—์„œ ํ—ˆ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
ndk {abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"}
์•„๋ž˜ ์•ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘๋™ํ•˜์ง€๋งŒ Google Play ์Šคํ† ์–ด์—์„œ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
ndk {abiFilters "armeabi-v7a", "x86"}

๋ˆ„๊ตฌ๋“ ์ง€ ๋‚˜๋ฅผ ํ•ด๊ฒฐํ•˜๋„๋ก ๋„์™€์ฃผ์„ธ์š”.

64 ๋น„ํŠธ ์•” APK๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Moto G7 ๋ฐ Pixel 2 (๋‘˜ ๋‹ค Android 9.0)์—์„œ ์—ฌ์ „ํžˆ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 32 ๋น„ํŠธ ์•” APK์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

@ afras21- ์ด๋Š” Google Play ์Šคํ† ์–ด์—์„œ ์˜๋ฌดํ™”ํ•˜๊ณ ์žˆ๋Š” 64 ๋น„ํŠธ ๋ฒ„์ „์— ๋ฒ„๊ทธ๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@jacquesdev ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค jacq, ์ด์ œ ๊ทธ๋“ค์€ ํ•„์ˆ˜ ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•˜๊ณ  ์ด์ œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

@ afras21 ๊ตฌ๊ธ€์ด ํ–ˆ๋‹ค๋Š” ๋œป์ธ๊ฐ€์š”?

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ 0.59.9์—์„œ 0.60.4๋กœ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ 0.59.9๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 0.60.x๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๊นŒ?

0.59.10์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋Š”์ง€ ๋จผ์ € ์‹œ๋„ํ•ด๋ณด์‹ญ์‹œ์˜ค.
๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด RN 0.60.4๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ๋Œ€์‹  Hermes ๋ฅผ ์ผœ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Kudo๊ฐ€ ๋งํ•œ ๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜๊ณ  ์ปจํ…์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•˜๊ณ ์ด ๋ฌธ์ œ์˜ ์ด์ „ ๋‚ด์šฉ์„ ์š”์•ฝํ•ฉ๋‹ˆ๋‹ค (์ด ์‹œ์ ์—์„œ ๋„ˆ๋ฌด ๋งŽ์€ ์ฃผ์„์„ ์ •๋ ฌํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ).

0.59.9 ์ดํ•˜์ธ ๊ฒฝ์šฐ ์ด์ „ JSC์—์„œ ํ™•์ธ ๋œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์œ„์— ์–ธ๊ธ‰ ๋œ ์ˆ˜๋ฐฑ ๊ฐœ์˜ ๋Œ“๊ธ€์˜ ์ฃผ์ œ์ž…๋‹ˆ๋‹ค (๋ฐ ๊ธฐํƒ€ ๋ฌธ์ œ). ์ด ๋ฌธ์ œ๋Š” 64 ๋น„ํŠธ์—๋งŒ ๊ตญํ•œ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„ 64 ๋น„ํŠธ์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

0.60+์—๋Š” ํŠนํžˆ Android์—์„œ ๋‹ค์–‘ํ•œ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š์œผ๋ ค๋ฉด 0.59.10์„ ์‹œ๋„ํ•ด๋ณด์‹ญ์‹œ์˜ค. ์œ„์— ์„ค๋ช… ๋œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ๋ฒ„์ „ / ๋นŒ๋“œ์— ์ง์ ‘ ํ†ตํ•ฉ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ํŠน์ • ์ „ํ™”๊ธฐ์— ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค (์ €๋„ ๊ฒฝํ—˜ํ–ˆ์Šต๋‹ˆ๋‹ค). # 25494๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.์ด ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ ์Šคํƒ ํŠธ๋ ˆ์ด์Šค๋ฅผ ํ•ด๋‹น ๊ณต๊ฐœ ๋ฌธ์ œ์— ๊ฒŒ์‹œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ 0.59.9๊ฐ€ ์žˆ๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒฝ์šฐ 0.59.10์œผ๋กœ ์ด๋™ํ•˜์—ฌ _ ์•„๋งˆ๋„ _ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@MalcolmScruggs @ntorion @ harryt2
ํ•ด๊ฒฐ ํ–ˆ์Šต๋‹ˆ๊นŒ? ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•? ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

0.59.10์œผ๋กœ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 0.60.x ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ๋„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@MalcolmScruggs @ntorion @ harryt2
ํ•ด๊ฒฐ ํ–ˆ์Šต๋‹ˆ๊นŒ? ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•? ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

0.59.10๋„ ๋‚˜์—๊ฒŒ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์ข…์†์„ฑ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— 0.60.x๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Hermes์—์„œ ์ปดํŒŒ์ผํ–ˆ์ง€๋งŒ ANR์ด ํฌ๊ฒŒ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค (๋‹จ๊ณ„์  ์ถœ์‹œ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค). RN ๋ฒ„์ „ 0.57.8๋กœ Play ์Šคํ† ์–ด์— ๊ณ„์† ์•‰์•„ ์žˆ์ง€๋งŒ 64 ๋น„ํŠธ ์š”๊ตฌ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ๋” ์ด์ƒ ๋‚ด ์•ฑ์„ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ์‹ค๋ง์Šค๋Ÿฝ๊ณ  ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„ ์›Œํฌ๋กœ ์ „์ฒด ์•ฑ์„ ๋‹ค์‹œ ๋นŒ๋“œํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

@ harryt2 @rogerkerse ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
์ œ ์ƒํ™ฉ์€ ๋” ๋‚˜์ฉ๋‹ˆ๋‹ค. ์ถœ์‹œ ๋œ ๋ฒ„์ „์—๋Š” ๋ฒ„๊ทธ๊ฐ€์žˆ์–ด์„œ 64 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ์€์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ flutter๋ฅผ ์‹œ๋„ํ•˜๊ณ  ์žˆ์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ๋น ๋ฅธ ์™„์ „ํ•œ ๊ต์ฒด๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ React-Native๋ฅผ 0.60.5๋กœ ๋ฒ”ํ”„ํ•˜๊ณ  Hermes + 64 ๋น„ํŠธ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค (react-native๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ํ•ญ์ƒ ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ํ†ต์ด์—ˆ์Šต๋‹ˆ๋‹ค). HUAWEI MYA-L41).

๋‚˜๋Š” ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ์ฐพ์€ ๋ชจ๋“  ๊ฒƒ์„ ์šด์—†์ด ์‹œ๋„ํ•ด ๋ณด์•˜์œผ๋ฏ€๋กœ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ๋ฒ”ํ•‘ํ•˜๊ณ  Hermes๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ๋ชจ๋‘ ํ•ด๊ฒฐ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ ๋œ react-native + Hermes ๋ฐ 64 ๋น„ํŠธ๋Š” ๋‚ด๊ฐ€ ์‹คํ–‰ ํ•œ ๋‹ค๋ฅธ Android ๊ธฐ๊ธฐ์—์„œ ๋†€๋ž๊ณ  ์šฐ๋ฆฌ ์•ฑ์ด ๋” ๋ถ€๋“œ๋Ÿฌ์›Œ ์ง„ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ์–ธ๊ธ‰ ํ•œ ํŠน์ • ์žฅ์น˜ (Huawei)์—์„œ ํ…Œ์ŠคํŠธ ํ•  ๋•Œ๋งˆ๋‹ค ์ฆ‰์‹œ ์ถฉ๋Œํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์ถฉ๋Œ ๋ฉ”์‹œ์ง€์—†์ด ์•ฑ์ด 1 ~ 2 ์ดˆ ๋™์•ˆ ์—ด๋ฆฐ ํ›„ ํ•ด๋‹น ์žฅ์น˜์™€ ์ตœ์‹  Huawei ( ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ ํ•จ) ๋‹ค๋ฅธ ํœด๋Œ€ ์ „ํ™”์— ๋Œ€ํ•ด์„œ๋Š” ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฌ๋“ ์ง€์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ง„์ „์ด ์žˆ๊ฑฐ๋‚˜ ๋‚ด ๋ฌธ์ œ๋ฅผ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ๊ธฐ๋ก ํ•  ์•„์ด๋””์–ด๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ ์–ธ์ œ๋“ ์ง€ ์กฐ์–ธ์„ ํ™˜์˜ํ•˜๋ฉฐ์ด ๋ฌธ์ œ์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ๊ณต์œ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜๋Š”์ด ์Šค๋ ˆ๋“œ์˜ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ฐ์‚ฌํ•˜์ง€๋งŒ ์ง€๊ธˆ๊นŒ์ง€๋Š” ์šด์ด ์—†์Šต๋‹ˆ๋‹ค. ๐Ÿ™‚

@YoranRoels react-native init๋กœ ๋งŒ๋“  ๊นจ๋—ํ•œ ์•ฑ์„ ์‹คํ–‰ ํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ? ์ถฉ๋Œ์ด RN ์ž์ฒด ๋•Œ๋ฌธ์ธ์ง€ ์•„๋‹ˆ๋ฉด ์ž‘์„ฑํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋˜๋Š” ์ฝ”๋“œ ๋•Œ๋ฌธ์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

@armenbadalyan ์‹ ์†ํ•œ ์‘๋‹ต์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์ •ํ•˜๊ณ  ์žฅ์น˜์—์„œ ์‹คํ–‰ ํ•ด ๋ณด์•˜๋Š”๋ฐ ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ๋ณด์˜€์œผ๋ฏ€๋กœ ๊ฒฐ๊ตญ์—๋Š” ๋‚ด ์„ค์ •์—์„œ ๋ฌด์–ธ๊ฐ€์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ๋‚ด logcat์ด com.<our_app_id> ์™ธ์— ์œ ์šฉํ•œ ๊ฒƒ์„ ๋ถ„์ถœํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋””๋ฒ„๊น…ํ•˜๋Š” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

React Native 59.10๋„ ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ํ•ด๊ฒฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•ฑ์„ ์ฒ˜์Œ ์‹คํ–‰ํ•  ๋•Œ ์—ฌ์ „ํžˆ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

@GreanBeetle https://github.com/facebook/react-native/issues/25494๋ฅผ ์ฐธ์กฐ

๊ฐ€์žฅ ์ตœ์‹  ๊ฒฝ๋กœ๋Š” 0.60+ ๋ฐ Hermes๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@YoranRoels ์žฅ์น˜์—์„œ ์‚ญ์ œ ํ‘œ์‹œ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ฐธ์กฐ : https://github.com/facebook/react-native/issues/24261#issuecomment -490239902

@GreanBeetle 0.59.10์—์„œ V8 ์—”์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/Kudo/react-native-v8

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @ j-wang. @manuhook ์ด ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

@GreanBeetle 0.59.10์—์„œ V8 ์—”์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/Kudo/react-native-v8

์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 64 ๋น„ํŠธ์™€ ๋นŒ๋“œ react-native-v8 ์— 0.59.10 ๋” ์ด์ƒ ์ถฉ๋Œํ•˜์ง€ ์•Š์œผ๋ฉฐ ์šฐ๋ฆฌ๋Š” ๋งˆ์นจ๋‚ด ๊ตฌ๊ธ€ ํ”Œ๋ ˆ์ด์— ๋‹ค์‹œ ์—…๋ฐ์ดํŠธ๋ฅผ ํ‘ธ์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@ j-wang์ด ์–ธ๊ธ‰ ํ•œ ์‚ญ์ œ ํ‘œ์‹œ ๋กœ๊น…์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ ํ•œ๋™์•ˆ ๊ฒ€์ƒ‰ ํ•œ ํ›„ ์ฝ์„ ์ˆ˜์žˆ๋Š” ๊ทผ๋ณธ ์›์ธ์„ ์ฐพ์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™์•˜ ๊ธฐ ๋•Œ๋ฌธ์— ์ฝ๊ธฐ๊ฐ€ ์–ด๋ ค์› ๋˜ ์—„์ฒญ๋‚œ ํŒŒ์ผ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

@armenbadalyan ์˜ ์กฐ์–ธ์„

ํ•ด๋‹น ๊ตฌ์„ฑ ์š”์†Œ์—์„œ react-native Image ์˜ source ๋ณ€์ˆ˜๋กœ null ๋ฅผ ์ „๋‹ฌํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์‚ฌ์‹ค์ด ๋ถ„๋ช…ํ•˜์ง€ ์•Š์€ ์˜ค๋ฅ˜๋ฅผ ์ฐพ๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์ง€ ๋งŒ ๋งˆ์นจ๋‚ด ๋ชจ๋“  ๊ฒƒ์ด ์ˆ˜์ •๋˜์—ˆ์œผ๋ฉฐ ๋ชจ๋“  ํ…Œ์ŠคํŠธ ์žฅ์น˜์—์„œ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ ์žฅ์น˜์—์„œ ์‹คํŒจํ•˜์ง€ ์•Š์€ ์ด์œ ๋Š” ์—ฌ์ „ํžˆ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์•ฑ์˜ ์ฒซ ๋ฒˆ์งธ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ํ•ด๋‹น ์ฝ”๋“œ์—์„œ ์ถฉ๋Œํ•˜์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”๋ น : ์ง€๊ธˆ ์ฏค์ด๋ฉด ์ฃผ์ œ์—์„œ ์™„์ „ํžˆ ๋ฒ—์–ด ๋‚ฌ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ๊ด€์‹ฌ ๋Œ€์ƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. source Image ๋ณ€์ˆ˜๋กœ null ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. t ๋ชจ๋“  ์žฅ์น˜์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜…

@ harryt2 ๊ทธ๋ž˜, ๋‚˜๋„. RN 0.60์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„ ANR์ด ํฌ๊ฒŒ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. +

์—ฌ์ „ํžˆ ์‹œ์ž‘ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์•ฝ๊ฐ„์˜ ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค.

  1. ์ฝ˜์†”์—์„œ adb logcat ์‹คํ–‰
  2. ์ฝ˜์†” ์ŠคํŒธ์ด ์ค‘์ง€ ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.
  3. ๊ธฐ๊ธฐ์—์„œ ์ถฉ๋Œํ•˜๋Š” ์•ฑ์„ ์—ฝ๋‹ˆ ๋‹ค.
  4. Ctrl + c๋กœ adb logcat ์ค‘์ง€
  5. ์œ„๋กœ ์Šคํฌ๋กคํ•˜์—ฌ ์ถฉ๋Œ์„ ์ฐพ์œผ์‹ญ์‹œ์˜ค.

๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€๋Š” ์•Š์ง€๋งŒ ๋” ๋งŽ์€ ๊ฒƒ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” 2 ๊ฐœ์˜ ์•ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ, ํ•˜๋‚˜๋Š” 64 ๋น„ํŠธ์—์„œ ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ, ๊ตฌ์„ฑ์ด ๋™์ผํ•˜๋”๋ผ๋„ ๋‹ค๋ฅธ ํ•˜๋‚˜์—์„œ๋Š” ์—ฌ์ „ํžˆ ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ถฉ๋Œ ์žฅ์น˜๋Š” One Plus 5t (64 ๋น„ํŠธ)์ž…๋‹ˆ๋‹ค.

RN 59.10, ํŠนํžˆ Android 9์˜ Samsung Galaxy Note9์—์„œ ๋นŒ๋“œ ํ•œ ์ƒˆ๋กœ์šด ์•ฑ ๋ฆด๋ฆฌ์Šค์—์„œ์ด ๋ฌธ์ œ๋ฅผ ๋ฐฉ๊ธˆ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@msspshaw ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๋‹ค๋ฅธ ๋ฌธ์ œ์—์„œ๋„ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด JSC๋Š” ๋น„ ๊ฒฐ์ •์ ์œผ๋กœ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๋˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • Android ๊ธฐ๊ธฐ์—์„œ ๋ฌด์ž‘์œ„๋กœ ์ •์ง€ / ์ถฉ๋Œ ํ•œ ๋‹ค์Œ ์ „์ฒด ์•ฑ์ด ๋‹ค์šด๋ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ…์€ 0.60+๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  Hermes๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ v8 ์šฉ JSC๋ฅผ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@ j-wang์ด ์–ธ๊ธ‰ ํ•œ ์‚ญ์ œ ํ‘œ์‹œ ๋กœ๊น…์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ ํ•œ๋™์•ˆ ๊ฒ€์ƒ‰ ํ•œ ํ›„ ์ฝ์„ ์ˆ˜์žˆ๋Š” ๊ทผ๋ณธ ์›์ธ์„ ์ฐพ์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™์•˜ ๊ธฐ ๋•Œ๋ฌธ์— ์ฝ๊ธฐ๊ฐ€ ์–ด๋ ค์› ๋˜ ์—„์ฒญ๋‚œ ํŒŒ์ผ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

@armenbadalyan ์˜ ์กฐ์–ธ์„

ํ•ด๋‹น ๊ตฌ์„ฑ ์š”์†Œ์—์„œ react-native Image ์˜ source ๋ณ€์ˆ˜๋กœ null ๋ฅผ ์ „๋‹ฌํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์‚ฌ์‹ค์ด ๋ถ„๋ช…ํ•˜์ง€ ์•Š์€ ์˜ค๋ฅ˜๋ฅผ ์ฐพ๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์ง€ ๋งŒ ๋งˆ์นจ๋‚ด ๋ชจ๋“  ๊ฒƒ์ด ์ˆ˜์ •๋˜์—ˆ์œผ๋ฉฐ ๋ชจ๋“  ํ…Œ์ŠคํŠธ ์žฅ์น˜์—์„œ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ ์žฅ์น˜์—์„œ ์‹คํŒจํ•˜์ง€ ์•Š์€ ์ด์œ ๋Š” ์—ฌ์ „ํžˆ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์•ฑ์˜ ์ฒซ ๋ฒˆ์งธ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ํ•ด๋‹น ์ฝ”๋“œ์—์„œ ์ถฉ๋Œํ•˜์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”๋ น : ์ง€๊ธˆ ์ฏค์ด๋ฉด ์ฃผ์ œ์—์„œ ์™„์ „ํžˆ ๋ฒ—์–ด ๋‚ฌ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ๊ด€์‹ฌ ๋Œ€์ƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. source Image ๋ณ€์ˆ˜๋กœ null ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. t ๋ชจ๋“  ์žฅ์น˜์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜…

+1 ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋˜ํ•œ Android 7.0 RN 0.59.10์˜ Samsung Galaxy S7 IO-IL 086์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@BracketMan JSC ๋Œ€์‹  V8์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

@EmilScherdin ์•„ ์•„๋‹ˆ, ์•„๋‹ˆ์—์š”. ํ•œ ๋ฒˆ ํ•ด๋ณด๊ณ  ๊ฐ์‚ฌ์˜ ๋งˆ์Œ์„ ์ „ํ•ฉ๋‹ˆ๋‹ค.

@EmilScherdin RN 0.59.10์—์„œ V8์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด๋ฉฐ ๋” ์ด์ƒ ์ถฉ๋Œ์ด ์—†์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ!

v8์˜ RN 0.59.10์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. arm64-v8a์— ๋Œ€ํ•ด JIT๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ์ด ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์žฅ์น˜์—์„œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@mmamoyco V8์—์„œ ์ถฉ๋Œ ์Šคํƒ

@Kudo ์˜ˆ, ์ถฉ๋Œ ๋กœ๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถฉ๋Œ์ด ๋งŽ์ด ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— jsc์—์„œ v8๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ v8์„ ์‚ฌ์šฉํ•˜์—ฌ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๋กœ๊ทธ์ž…๋‹ˆ๋‹ค

00 pc 0000000000c31dd8 /data/app/my.app.id-a42vFQTz2lrEJMUnXdYsYA==/lib/arm64/libv8.so

# 01 pc 0000000000c3437c /data/app/my.app.id-a42vFQTz2lrEJMUnXdYsYA==/lib/arm64/libv8.so
# 02 pc 0000000000c30554 /data/app/my.app.id-a42vFQTz2lrEJMUnXdYsYA==/lib/arm64/libv8.so
# 03 pc 0000000000c33070 /data/app/my.app.id-a42vFQTz2lrEJMUnXdYsYA==/lib/arm64/libv8.so
# 04 pc 0000000000bf2e94 /data/app/my.app.id-a42vFQTz2lrEJMUnXdYsYA==/lib/arm64/libv8.so (v8 :: internal :: ItemParallelJob :: Task :: RunInternal () + 24)
# 05 pc 0000000000a4d660 /data/app/my.app.id-a42vFQTz2lrEJMUnXdYsYA==/lib/arm64/libv8.so (v8 :: platform :: DefaultWorkerThreadsTaskRunner :: WorkerThread :: Run () + 56)
# 06 pc 0000000000a4a074 /data/app/my.app.id-a42vFQTz2lrEJMUnXdYsYA==/lib/arm64/libv8.so
# 07 pc 0000000000067ec4 /system/lib64/libc.so (__pthread_start (void *) + 36)
# 08 pc 000000000001f2f4 /system/lib64/libc.so (__start_thread + 68)

0.59.1์—์„œ์ด ์ •ํ™•ํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ˆ˜์ •ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

โ›„๏ธ ์ด๋Ÿฌํ•œ ์ง€์นจ์€ jsc-android README ์™€ ๋™์ผ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค . ๋ฒ„์ „ ๋ฒˆํ˜ธ์™€ ์ผ๋ถ€ ๊ธฐํ˜ธ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. canary ๋ฒ„์ „ jsc ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒƒ์€ jsc-android @ canary ์ดํ›„ ์˜ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. react-native repo์— ๋ณ‘ํ•ฉ ๋œ ์›๋ž˜ ์ˆ˜์ • ์‚ฌํ•ญ์€ ์ด ํŒจ์น˜ ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ์‹  @ ravali121 ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  1. jsc-android ์˜ "dependencies"์„น์…˜์— package.json :
dependencies {
   ...
+  "jsc-android": "^245459.0.0",
   ...
}

๋‹ค์Œ ์‹คํ–‰ npm install ๋˜๋Š” yarn ์ƒˆ๋กœ์šด ์˜์กด์„ฑ์— ์„ค์น˜ํ•˜๋Š” (์ด NPM ํด๋ผ์ด์–ธํŠธ ์‚ฌ์šฉ์— ๋”ฐ๋ผ) ์ˆœ์„œ node_modules

  1. android/build.gradle ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์—ฌ jsc-android ํŒจํ‚ค์ง€์— ํŒจํ‚ค์ง€ ๋œ ์ƒˆ ๋กœ์ปฌ Maven ์ €์žฅ์†Œ๋ฅผ ๊ฒ€์ƒ‰ ๊ฒฝ๋กœ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
allprojects {
    repositories {
        mavenLocal()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
+       maven {
+           // Local Maven repo containing AARs with JSC library built for Android
+           url "$rootDir/../node_modules/jsc-android/dist"
+       }
    }
}
  1. ์•ฑ์˜ ์—…๋ฐ์ดํŠธ build.gradle ์—์žˆ๋Š” ํŒŒ์ผ android/app/build.gradle JSC ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข…์†์„ฑ์ด React Native ์ข…์†์„ฑ ์•ž์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
dependencies {
+   // Make sure to put android-jsc at the top
+   implementation 'org.webkit:android-jsc:+'
    compile fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    implementation "com.facebook.react:react-native:+"  // From node_modules
}
  1. android/app/build.gradle ์—์žˆ๋Š” ์•ฑ์˜ build.gradle ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์ฒซ ๋ฒˆ์งธ๋กœ ์ผ์น˜ํ•˜๋Š” JSC ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
android {
    // ...
+   packagingOptions {
+       pickFirst '**/armeabi-v7a/libc++_shared.so'
+       pickFirst '**/x86/libc++_shared.so'
+       pickFirst '**/x86_64/libc++_shared.so'
+       pickFirst '**/arm64-v8a/libc++_shared.so'
+       pickFirst '**/libjsc.so'
+    }
}

์•„๋ฌด๋„์ด ์งˆ๋ฌธ์— ๋Œ€๋‹ตํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
https://github.com/react-native-community/jsc-android-buildscripts/issues/127

null source ๋ณ€์ˆ˜ Image ๋กœ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”. ๋ชจ๋“  ๊ธฐ๊ธฐ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๐Ÿ˜…

๋‚˜๋Š” ๋‹น์‹ ์„ ์ธ์šฉํ•˜๋Š” ๊ฒƒ์ด ์‹ซ์ง€๋งŒ์ด ์Šค๋ ˆ๋“œ์˜ ์†Œ์Œ์—์„œ ๋‹น์‹ ์˜ ํ•ด๊ฒฐ์ฑ… ์„ ๊ฑฐ์˜ ๋†“์ณค์Šต๋‹ˆ๋‹ค. @YoranRoels ๋„ˆ๋ฌด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค !! ์ด๊ฒƒ์€ ๋‚ ์„ ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค!

์˜จ๋ผ์ธ ์‹ค์ œ ๋จธ์‹  ํ…Œ์ŠคํŠธ ์›น ์‚ฌ์ดํŠธ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์—์„œ GALAXY S7 Edge ๋ฐ Android 7.0 os๋ฅผ ์„ ํƒํ–ˆ์ง€๋งŒ, ๋ถˆํ–‰ํžˆ๋„ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ @YoranRoels ๋ฉ”์„œ๋“œ ์„ธํŠธ source Image ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. {null} ๋ฐ {{ uri: null }} ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์ถฉ๋Œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌด์„ญ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๋œ ์ผ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฌ๋“ ์ง€ ๋„์™€ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

0.59.1์—์„œ์ด ์ •ํ™•ํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ˆ˜์ •ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

โ›„๏ธ ์ด๋Ÿฌํ•œ ์ง€์นจ์€ jsc-android README ์™€ ๋™์ผ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค . ๋ฒ„์ „ ๋ฒˆํ˜ธ์™€ ์ผ๋ถ€ ๊ธฐํ˜ธ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. canary ๋ฒ„์ „ jsc ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒƒ์€ jsc-android @ canary ์ดํ›„ ์˜ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. react-native repo์— ๋ณ‘ํ•ฉ ๋œ ์›๋ž˜ ์ˆ˜์ • ์‚ฌํ•ญ์€ ์ด ํŒจ์น˜ ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ์‹  @ ravali121 ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  1. jsc-android ์˜ "dependencies"์„น์…˜์— package.json :
dependencies {
   ...
+  "jsc-android": "^245459.0.0",
   ...
}

๋‹ค์Œ ์‹คํ–‰ npm install ๋˜๋Š” yarn ์ƒˆ๋กœ์šด ์˜์กด์„ฑ์— ์„ค์น˜ํ•˜๋Š” (์ด NPM ํด๋ผ์ด์–ธํŠธ ์‚ฌ์šฉ์— ๋”ฐ๋ผ) ์ˆœ์„œ node_modules

  1. android/build.gradle ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์—ฌ jsc-android ํŒจํ‚ค์ง€์— ํŒจํ‚ค์ง€ ๋œ ์ƒˆ ๋กœ์ปฌ Maven ์ €์žฅ์†Œ๋ฅผ ๊ฒ€์ƒ‰ ๊ฒฝ๋กœ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
allprojects {
    repositories {
        mavenLocal()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
+       maven {
+           // Local Maven repo containing AARs with JSC library built for Android
+           url "$rootDir/../node_modules/jsc-android/dist"
+       }
    }
}
  1. ์•ฑ์˜ ์—…๋ฐ์ดํŠธ build.gradle ์—์žˆ๋Š” ํŒŒ์ผ android/app/build.gradle JSC ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข…์†์„ฑ์ด React Native ์ข…์†์„ฑ ์•ž์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
dependencies {
+   // Make sure to put android-jsc at the top
+   implementation 'org.webkit:android-jsc:+'
    compile fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    implementation "com.facebook.react:react-native:+"  // From node_modules
}
  1. android/app/build.gradle ์—์žˆ๋Š” ์•ฑ์˜ build.gradle ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์ฒซ ๋ฒˆ์งธ๋กœ ์ผ์น˜ํ•˜๋Š” JSC ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
android {
    // ...
+   packagingOptions {
+       pickFirst '**/armeabi-v7a/libc++_shared.so'
+       pickFirst '**/x86/libc++_shared.so'
+       pickFirst '**/x86_64/libc++_shared.so'
+       pickFirst '**/arm64-v8a/libc++_shared.so'
+       pickFirst '**/libjsc.so'
+    }
}

๋‹น์‹ ์€ ์ƒ๋ช…์˜ ์€์ธ์ž…๋‹ˆ๋‹ค! โค๏ธ ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ๋ถ™์—ฌ๋„ฃ๊ณ  jsc-android ๋ฒ„์ „์„ ์ •ํ™•ํžˆ ์–ธ๊ธ‰ ํ•œ๋Œ€๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด 3 ์ผ ๋™์•ˆ ๋‹ต๋ณ€์„ ์ฐพ๊ณ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ž‘๋™ ์ค‘์ž…๋‹ˆ๋‹ค! RN ๋ฒ„์ „์„ 0.59์—์„œ 0.60์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์•ฑ์€ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋งŒ ๊ณ ์žฅ ๋‚ฌ๊ณ  ios๋Š” ๊ดœ์ฐฎ ์•˜์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ด์ƒํ•œ ์ ์€ ์•ฑ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ปดํŒŒ์ผ๋˜์–ด ๋ชจ๋“  ๊ฒƒ์ด ํ›Œ๋ฅญํ•ด ๋ณด์˜€์ง€๋งŒ ์‹œ์ž‘ํ•˜์ž๋งˆ์ž ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰