Flutter: 32๋น„ํŠธ ๋ฐ 64๋น„ํŠธ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ํฌํ•จ๋œ ์•ฑ ๋ฒˆ๋“ค ์ง€์›

์— ๋งŒ๋“  2019๋…„ 05์›” 01์ผ  ยท  194์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: flutter/flutter

๊ฒฝ๊ณ 

์ด ๋ฆด๋ฆฌ์Šค๋Š” Play 64๋น„ํŠธ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ค€์ˆ˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ APK ๋˜๋Š” App Bundle์€ 64๋น„ํŠธ ๊ธฐ๊ธฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ 32๋น„ํŠธ ๊ธฐ๋ณธ ์ฝ”๋“œ๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค: {version code}.

2019๋…„ 8์›” 1์ผ๋ถ€ํ„ฐ ๋ชจ๋“  ๋ฆด๋ฆฌ์Šค๋Š” Play 64๋น„ํŠธ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•ฑ์— 32๋น„ํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ 64๋น„ํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. Android App Bundle ๊ฒŒ์‹œ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ธฐ๊ธฐ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ํ•„์š”ํ•œ ๊ธฐ๋ณธ ์ฝ”๋“œ๋งŒ ์ˆ˜์‹ ํ•˜๋„๋ก ์ž๋™์œผ๋กœ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ๋” ์•Œ์•„๋ณด๊ธฐ

์ด ๊ฒฝ๊ณ ๋Š” ์˜ค๋Š˜ ์ดํ›„ flutter build appbundle ์— ์˜ํ•ด ์ƒ์„ฑ๋œ aab flutter build appbundle ๋ฅผ Play ์Šคํ† ์–ด ์— ๊ฒŒ์‹œํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ๊ฑฑ์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด Flutter๊ฐ€ ์ž๋™์œผ๋กœ ์ด๊ฒƒ์„ ํ•ด๊ฒฐํ•  ๊ฒƒ์ž…๋‹ˆ๊นŒ?

crowd engine waiting for PR to land (fixed)

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

์•ˆ๋…•ํ•˜์„ธ์š” ํ”Œ๋Ÿฌํ„ฐํŒ€์ž…๋‹ˆ๋‹ค.
์ด ์ฃผ์ œ ์ƒํƒœ์— ๋Œ€ํ•ด ๊ฐ•์กฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ œ ์ž…์žฅ์—์„œ๋Š” ๋‘ ๊ฐ€์ง€ ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ˜„์žฌ ์•ˆ์ •์ ์ธ ํ”Œ๋Ÿฌํ„ฐ ๋ฒ„์ „ 1.7.8+hotfix.3 ์€ ์•ˆ์ •์ ์ธ apk๋ฅผ ๋นŒ๋“œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. - ์ตœ์†Œํ•œ split-per-abi ๋Š” ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. - arm32์—๋Š” ํšŒ๊ท€ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ผ๋ถ€ arm32 ์žฅ์น˜์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค . ์ด ๋ฌธ์ œ๊ฐ€ ์–ธ์ œ ์ˆ˜์ •๋ ์ง€๋Š” ์•„์ง ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • 8์›” 1์ผ ๋งˆ๊ฐ์ผ - ์•ฝ ์ผ์ฃผ์ผ ์•ˆ์— ์šฐ๋ฆฌ ๊ฐœ๋ฐœ์ž๋“ค์€ Google Play ์Šคํ† ์–ด์— ์ƒˆ๋กœ์šด Flutter ์•ฑ์„ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ์ถœ์‹œํ•  ์ˆ˜ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ Flutter ๋ฒ„์ „ ๋ฌธ์ œ(์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋Œ€๋กœ)์™€ ๋‚จ์€ ์‹œ๊ฐ„์„ ๊ณ ๋ คํ•  ๋•Œ ์›”๋ง ์ด์ „์— ์•ˆ์ •์ ์ธ ์ฑ„๋„์—์„œ ์ˆ˜์ •์„ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒƒ์€ ์‹คํ˜„ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์—ฌ๋Ÿฌ๋ถ„ ์ค‘ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋งˆ์ˆ  ์ง€ํŒก์ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋Š” ํ•œ :- ))

์œ„์˜ ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ IMO๊ฐ€ ๊ฐœ๋ฐœ์ž๋กœ์„œ ์šฐ๋ฆฌ์—๊ฒŒ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋น„์ƒ ๊ณ„ํš์„ ์ œ์•ˆํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

  • ํ”Œ๋Ÿฌํ„ฐ ์•ˆ์ • ์ฑ„๋„์„ hotfix.2 ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋กค๋ฐฑ
  • 8์›” 1์ผ ๋งˆ๊ฐ์ผ์„ ๋‘ ๋‹ฌ ์—ฐ๊ธฐ - ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์•ฝ๊ฐ„์˜ ์—์Šค์ปฌ๋ ˆ์ด์…˜์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€๋งŒ ๊ฐœ๋ฐœ์ž๊ฐ€ 8์›” 1์ผ ์ดํ›„์— Flutter ํ”„๋ ˆ์ž„์›Œํฌ ๋ฌธ์ œ๋กœ ์•ˆ์ •์ ์ธ Flutter ์•ฑ์„ ์ถœ์‹œํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์–ผ๋งˆ๋‚˜ ์‹ฌ๊ฐํ•œ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋Š”์ง€ ์ดํ•ดํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ €๋Š” ์ €๋ฅผ ๋Œ€์‹ ํ•ด์„œ๋งŒ ๋งํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ณ„์•ฝ์ด ์žˆ๋Š” ๊ณ ๊ฐ์ด ์žˆ๊ณ  Google์ด ์ž์ฒด ์ œํ’ˆ์— ๋Œ€ํ•ด ๋” ๋‚˜์€ ์ง€์›์„ ์ œ๊ณตํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— React Native์—์„œ Flutter๋กœ ์ด๋™ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ์™€ ์ง€์›ํ•ด์•ผ ํ•  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ด์ œ Google์—์„œ 64๋น„ํŠธ apk ๋ฒ„์ „์„ ์ถœ์‹œํ•˜๋„๋ก ๊ฐ•์š”ํ•˜๋Š” ๋™์‹œ์— Google์—์„œ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ํ„ฐ๋ฌด๋‹ˆ์—†๋Š” ์ƒํ™ฉ์— ์ฒ˜ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ, Flutter ํŒ€์ด Google Play์™€ ๊ฐ™์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์••๋‹ˆ๋‹ค. ํŒ€์ด์ง€๋งŒ ๋‚ด๊ฐ€ ์„œ์žˆ๋Š” ๊ณณ - ๋‹น์‹ ์€ ๊ฐ™์€ ์‚ฌ์—…์ฒด์ž…๋‹ˆ๋‹ค).
Google์ด ์ œ์‹œ๊ฐ„์— ์ œ๊ณตํ•˜์ง€ ๋ชปํ•˜๋ฉด Flutter์˜ ๊ฐ•๋ ฅํ•œ ๋ฐ˜๋ฐœ๋กœ ์ด์–ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 8์›” 1์ผ ์ดํ›„ ๋งค์ผ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์‹ ๋ขฐ์„ฑ์ด ์ค„์–ด๋“ค๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
์ œ ๋ง์ด ์กฐ๊ธˆ ๋” ๊ฐ•ํ•˜๊ฒŒ ๋“ค๋ฆฌ์…จ๋‹ค๋ฉด ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ž ์‹œ๋งŒ ์ œ ์ž…์žฅ์ด ๋˜์…จ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฌ๋“ ์ง€ - ์ด๊ฒƒ์— ํˆฌํ‘œํ•ด ์ฃผ์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฌ๋ฉด ์šฐ๋ฆฌ์˜ ๋ชฉ์†Œ๋ฆฌ๊ฐ€ ๋“ค๋ฆด ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

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

์•„๋‹ˆ์š”

๋‚˜๋Š” ๊ฐ™์€ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›์•˜๋‹ค. Flutter ํŒ€์˜ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•˜๊ฑฐ๋‚˜ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? flutter build appbundle --release ์ƒ์„ฑ๋œ ์•ฑ ๋ฒˆ๋“ค์—๋„ 64๋น„ํŠธ ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? @zoechi ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ๋‚˜์š”?

์ €๋„ ์ด๊ฑฐ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์Šคํฌ๋ฆฐ์ƒท์ž…๋‹ˆ๋‹ค.
Screen Shot 2019-05-02 at 12 25 57 PM

๊ทธ๋ฆฌ๊ณ  "์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ" ๋ฌธ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://developer.android.com/distribute/best-practices/develop/64-bit

Flutter ํŒ€์˜ ๋‹ต๋ณ€์„ ๊ธฐ๋‹ค๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜๋„ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

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

์ €๋„ ์š”

์ €๋„ ์š”

์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์•„์ง ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์„ ๋ณด์‹ญ์‹œ์˜ค: https://github.com/flutter/flutter/issues/18494#issuecomment -477502287

๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

Google Play Console์˜ ์•ฑ ์ถœ์‹œ ํŽ˜์ด์ง€(์œ„์˜ 64๋น„ํŠธ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ํ™”๋ฉด)์—์„œ [๋‚ด๋ถ€ ํ…Œ์ŠคํŠธ ๋กค์•„์›ƒ ์‹œ์ž‘] ๋ฒ„ํŠผ์ด ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

64๋น„ํŠธ ๋ฒˆ๋“ค ์š”๊ตฌ ์‚ฌํ•ญ์€ ์ด์ œ ํ”Œ๋Ÿฌํ„ฐ ํ”„๋กœ์ ํŠธ์˜ ์‡ผ ์Šคํ† ํผ์ž…๋‹ˆ๋‹ค.

/ cc @mklim @cbracken

ํ”Œ๋ ˆ์ด ์Šคํ† ์–ด๊ฐ€ Flutter์˜ ๊ธฐ๋ณธ ๋ฆด๋ฆฌ์Šค ์ง€์นจ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํŠธ๋ฆฌ๊ฑฐ๋˜๋Š” ๊ฒฝ๊ณ ๋ฅผ ๋ฐœํ–‰ํ•˜๊ธฐ ์‹œ์ž‘ํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.
https://flutter.dev/docs/deployment/android

Flutter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 32๋น„ํŠธ ๋ฐ 64๋น„ํŠธ ARM ๋ชจ๋‘์— ๋Œ€ํ•œ APK๋ฅผ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ˜„์žฌ ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ๋‹จ๊ณ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋‹ค์Œ์—์„œ ๋…ผ์˜๋ฉ๋‹ˆ๋‹ค.
https://github.com/flutter/flutter/issues/18494#issuecomment -477502287

๋˜ํ•œ ์ด ๊ฒฝ๊ณ ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ ํ…œํ”Œ๋ฆฟ/๋„๊ตฌ/๋ฆด๋ฆฌ์Šค ๋‹จ๊ณ„๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์ตœ์„ ์˜ ๋ฐฉ๋ฒ•์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ง€๊ธˆ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋‹ค๋ ค ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@eseidelGoogle ๋‚ด๊ฐ€ ํ‹€๋ ธ๋‹ค๋ฉด ์ •์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•ฑ ๋ฒˆ๋“ค์˜ ์š”์ ์€ ๋ชจ๋“  ๊ฒƒ์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ์••์ถ• ํ•˜๊ณ  Play ์Šคํ† ์–ด์—์„œ ๊ฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•„์š”ํ•œ APK ๋งŒ ๋ฐฐ์†กํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ์›๋ž˜ ์งˆ๋ฌธ์—์„œ ์ง€์ ํ–ˆ๋“ฏ์ด flutter build appbundle ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ œ์•ˆํ•œ ์†”๋ฃจ์…˜์ด ์ ์šฉ๋˜์ง€ ์•Š๊ฒ ์ฃ ?

์–ด์ œ flutter build appbundle์„ ์‹œ๋„ํ–ˆ๋Š”๋ฐ ํ”Œ๋ ˆ์ด ์Šคํ† ์–ด์—์„œ ๋””๋ฒ„๊ทธ ๋นŒ๋“œ๋ผ๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค...

๋ฌผ๋ก  flutter.dev์˜ ์ง€์นจ์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ  ๋Œ€์‹  android studio build->Generate Signed APK๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” add2app ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋„ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”ํ•˜๋‹ค๊ณ  ํ‘œ์‹œํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ์ง์ ‘ ๋…ผ์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. @tvolkert ๋Š” ์ด๊ฒƒ์„ ์ข…๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์‚ฌ๋žŒ์„ ์ฐพ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ์ด ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 64bit๋กœ ๊ธฐ๋ณธ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

build.gradle ๋ฅผ ์•ฝ๊ฐ„ ์ˆ˜์ •ํ•˜๋ฉด ๋ฆด๋ฆฌ์Šค apk ๋ฐ aab์— 64๋น„ํŠธ ๊ธฐ๋ณธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๊ฐ•์ œ๋กœ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์€

Google์„ ์œ„ํ•ด ์•„์ง 32๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํœด๋Œ€์ „ํ™”๊ฐ€ ๋ช‡ ๋Œ€์ธ์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”.
64๋น„ํŠธ ๋ฐ 32๋น„ํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ตœ์ข… APK ํฌ๊ธฐ๊ฐ€ ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค.

ABI๋กœ APK๋ฅผ ๋ถ„ํ• ํ•˜๋Š” non-flutter ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด 32๋น„ํŠธ ๋ฐ 64๋น„ํŠธ์šฉ ๋ณ„๋„์˜ apk๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ์ด ๋‹จ๊ณ„๋Š” ์•ž์œผ๋กœ APK ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฌ๋„๋ก ๊ฐ•์š”ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์™œ?

๋‚˜๋Š” ์ธ๋„/์•„ํ”„๋ฆฌ์นด์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ 32๋น„ํŠธ ์ „์šฉ ์ „ํ™”๊ธฐ๊ฐ€ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ํ†ต๊ณ„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์œ ๋Ÿฝ, ๋ฏธ๊ตญ ๋ฐ ์•„์‹œ์•„ ์ผ๋ถ€ ์ง€์—ญ์—์„œ๋Š” ๊ฑฐ์˜ ์—†๋Š” ๊ฒƒ์œผ๋กœ ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.
x86/x86_64 vs armeabi/arm64-v8a๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? 4๊ฐœ์˜ ABI ๋ชจ๋‘์— ๋Œ€ํ•ด libflutter.so๋ฅผ ์ตœ์ข… ํ”„๋กœ๋•์…˜ apk์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
.. ๋˜ํ•œ mips ... ์•„์ง๋„ mips๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ „ํ™”๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ตฌ๊ธ€๋งŒ์ด ์•Œ๊ณ  ์žˆ๋‹ค.

@VarolOkan AAB๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  Google์ด ํ•„์š”ํ•œ ๋ชจ๋“  ABI ๋ฐ ํ™”๋ฉด dpi ์กฐํ•ฉ์— ๋Œ€ํ•œ APK๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

Google Play Console์˜ ์•ฑ ์ถœ์‹œ ํŽ˜์ด์ง€(์œ„์˜ 64๋น„ํŠธ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ํ™”๋ฉด)์—์„œ [๋‚ด๋ถ€ ํ…Œ์ŠคํŠธ ๋กค์•„์›ƒ ์‹œ์ž‘] ๋ฒ„ํŠผ์ด ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

64๋น„ํŠธ ๋ฒˆ๋“ค ์š”๊ตฌ ์‚ฌํ•ญ์€ ์ด์ œ ํ”Œ๋Ÿฌํ„ฐ ํ”„๋กœ์ ํŠธ์˜ ์‡ผ ์Šคํ† ํผ์ž…๋‹ˆ๋‹ค.

@eseidelGoogle ๋˜๋Š” ๋ˆ„๊ตฌ๋“ ์ง€ - ๋ˆ„๊ตฌ๋“ ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
a) ์‡ผ ์Šคํ† ํผ
๋˜๋Š” b) 8์›”๊นŒ์ง€ ๊ฒฝ๊ณ 
์ฐธ์กฐ: https://forums.expo.io/t/warning-with-the-google-play-64-bit-requirement/22305
๊ทธ๋Š” ์™ผ์ชฝ์— ์ž‘๋™์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ™•์ธํ•ด์•ผ ํ•  ์ƒ์ž๊ฐ€ ์žˆ๋‹ค๊ณ  ํ‘œ์‹œํ•˜๊ณ  ๊ฒฝ๊ณ ์— 8์›”์ด๋ผ๊ณ  ํ‘œ์‹œ๋˜๋ฉด ์‹ค์ œ๋กœ 5์›” ์ดˆ๋ผ๋ฉด ํฐ ๋ฌธ์ œ๊ฐ€ ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ - ์‹ค์ œ๋กœ 32๋น„ํŠธ ๋จธ์‹ ์ด ๊ฑฐ์˜ ์—†๊ณ  64๋น„ํŠธ arm์šฉ ๋‹จ์ผ ๋ผ์ธ abiFilter๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด 99.5%์˜ ์‚ฌ์šฉ์ž ๋˜๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ์ง€์›ํ•˜๋Š” ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์˜ต์…˜์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ์•„๋Š” ๋ฐ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. 1๋…„ ์ „์— ๋ˆ„๊ตฐ๊ฐ€ ์ฒญ์†Œํ•˜๋Š” ๊ฒƒ์„ ๋ณธ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. "์‹œ์žฅ์— ๋‚˜์™€ ์žˆ๋Š” ๋ชจ๋“  ์ „ํ™”๊ธฐ"๋Š” 64๋น„ํŠธ์˜€์Šต๋‹ˆ๋‹ค... ์•„๋งˆ๋„ ์˜ค๋ž˜๋œ ์ „ํ™”๊ธฐ๊ฐ€ ๋งŽ์ด ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ผ๊นŒ์š”?

๋‚ด ์ดํ•ด๋Š” ์ด๊ฒƒ์ด ์‡ผ ์Šคํ† ํผ๊ฐ€ ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜์ ์ธ ๊ฒฝ๊ณ ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” @blasten ์—๊ฒŒ ๊ธฐ๋ณธ Flutter ์„ค์ •์ด ์ด ๊ฒฝ๊ณ ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์„ ์‚ดํŽด๋ณด๋„๋ก ์š”์ฒญ

@eseidelGoogle์ด ๋งํ–ˆ๋“ฏ์ด ์ด ๋ฌธ์ œ๋Š” ์ œ๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋™์•ˆ https://github.com/flutter/flutter/issues/18494#issuecomment -489807239 ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ผํ•ด๋ณด์…จ๋‚˜์š”?

์ด๊ฒƒ์€ ๋” ์ด์ƒ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? https://github.com/flutter/flutter/issues/18494#issuecomment -482795450

์‡ผ์Šคํ† ํผ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›์•˜์ง€๋งŒ ๋‚ด ์•ฑ์„ ์ถœ์‹œํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
ํ”Œ๋ ˆ์ด์Šคํ† ์–ด.

ํฌ๋ฅด ๋ชจ๋ฅดํ…

2019๋…„ 5์›” 7์ผ ํ™”์š”์ผ 17:46, Audrius Karosevicius [email protected]
์ผ๋‹ค:

์ด๊ฒƒ์€ ๋” ์ด์ƒ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? #18494 (๋Œ“๊ธ€)
https://github.com/flutter/flutter/issues/18494#issuecomment-482795450

โ€”
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/flutter/flutter/issues/31922#issuecomment-490135779 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AA4B4J5BY3BJVIELNEPC4N3PUGP7BANCNFSM4HJU7TZA
.

>

;-)
/๋ชจํ…

์›น: http://buildsucceeded.dk
๋ชจ๋นŒ: 51 21 90 79

์š”์•ฝ:

1) ์˜ฌํ•ด ์ดˆ Play๋Š” 8์›”๋ถ€ํ„ฐ ์Šคํ† ์–ด์— ์•ฑ์„ ์—…๋กœ๋“œํ•˜์—ฌ 64๋น„ํŠธ ๋ฒ„์ „์„ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์•Œ๋ ธ์Šต๋‹ˆ๋‹ค(https://android-developers.googleblog.com/2019/01/get-your-apps-ready). -for-64-bit.html). ์ด๋ฒˆ ์ฃผ์— Play ์Šคํ† ์–ด๋Š” ๋‹ค๊ฐ€์˜ค๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์—…๋กœ๋“œ๋œ ์•ฑ์— ๋Œ€ํ•œ ์ •๋ณด ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ˜„์žฌ Play ์Šคํ† ์–ด ์š”๊ตฌ ์‚ฌํ•ญ์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

2) Flutter ํ”„๋กœ์ ํŠธ์—์„œ gradle ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•œ ์•ฝ๊ฐ„์˜ ์ˆ˜๋™ ๋…ธ๋ ฅ์œผ๋กœ ๊ฒฝ๊ณ  ์ฐธ์กฐ๊ฐ€ ์ด์ œ ์ค€์ˆ˜ํ•  ์ˆ˜ ์žˆ๋Š” 64๋น„ํŠธ APK ์š”๊ตฌ ์‚ฌํ•ญ: https://github.com/flutter/flutter/issues/18494#issuecomment - ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํ•œ ๊ฐ€์ง€ ์˜ˆ๋Š” 489807239์ž…๋‹ˆ๋‹ค.

3) ์‚ฌ์šฉ์ž์˜ ์ถ”๊ฐ€ ๋…ธ๋ ฅ ์—†์ด Flutter์˜ ๊ธฐ๋ณธ ๋™์ž‘์ด 64๋น„ํŠธ ์ง€์›์— ๋Œ€ํ•œ Play ์ง€์นจ์˜ ํ–ฅํ›„ ์—…๋ฐ์ดํŠธ๋ฅผ ์ค€์ˆ˜ํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์—…์€ 8์›” ๋งˆ๊ฐ์ผ๋ณด๋‹ค ํ›จ์”ฌ ์ „์— ๋ฉฐ์น /๋ช‡ ์ฃผ ์•ˆ์— ์™„๋ฃŒ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

์œ„์—์„œ ๋†“์นœ ๊ฒƒ์ด ์žˆ์œผ๋ฉด ์ฃผ์ €ํ•˜์ง€ ๋ง๊ณ  ๋Œ“๊ธ€์„ ๋‹ฌ๊ฑฐ๋‚˜ ์—ฐ๋ฝํ•ด ์ฃผ์„ธ์š”. Play์—์„œ ๊ฒฝ๊ณ ๋ฅผ ์ผœ๊ธฐ ์ „์— ์—…๋ฐ์ดํŠธํ•˜์ง€ ๋ชปํ•œ ์  ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์˜ ๋„์›€๊ณผ ํ”ผ๋“œ๋ฐฑ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

@seidelGoogle

  1. flutter build apk ๋งŒ๋“  ์•ฑ์„ ๊ฒŒ์‹œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Play ์Šคํ† ์–ด๋Š” ๋‚ด ํ”„๋กœํ•„์—์„œ 32๋น„ํŠธ ์ „์šฉ ๋นŒ๋“œ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  2. #18494(๋Œ“๊ธ€)์˜ ์†”๋ฃจ์…˜์€ OnePlus One๊ณผ ๊ฐ™์€ 32๋น„ํŠธ ์žฅ์น˜์—์„œ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์ƒ๊ฐ์—, ๊ทธ๊ฒƒ์€ ์‡ผ์Šคํ† ํผ์ž…๋‹ˆ๋‹ค.

@eseidelGoogle

  1. ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋“ฑ๊ธ‰ ๋ฐ ๊ตญ๊ฐ€๊ฐ€ ๊ตฌ์„ฑ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ Google Play๋Š” ๋นŒ๋“œ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ์ง€ ๋ฉ”์‹œ์ง€๊ฐ€ ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

64๋น„ํŠธ APK ์š”๊ตฌ ์‚ฌํ•ญ์€ ์ด์ œ Flutter ํ”„๋กœ์ ํŠธ์—์„œ gradle ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•œ ์•ฝ๊ฐ„์˜ ์ˆ˜๋™ ๋…ธ๋ ฅ์œผ๋กœ ๊ฒฝ๊ณ  ์ฐธ์กฐ๋ฅผ ์ค€์ˆ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํ•œ ๊ฐ€์ง€ ์˜ˆ: #18494(์ฃผ์„).

๋ช‡ ์‹œ๊ฐ„์˜ ์‹œํ–‰์ฐฉ์˜ค ๋์— 64๋น„ํŠธ libflutter.so๋ฅผ ํฌํ•จํ•˜๋Š” ์„œ๋ช…๋œ apk๋‚˜ appbundle์„ ์ƒ์„ฑํ•  ์ˆ˜ __์—†์Šต๋‹ˆ๋‹ค__

๋ฒˆ๋“ค์— ํฌํ•จ๋œ ์œ ์ผํ•œ libflutter.so๋Š”
armeabi-v7a(32๋น„ํŠธ)
, ์‚ฌ์šฉํ•  ๋•Œ
์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค 3.4
๋นŒ๋“œ #AI-183.5429.30.34.5452501, 2019๋…„ 4์›” 10์ผ ๋นŒ๋“œ

๋ฉ”๋‰ด: ๋นŒ๋“œ > ์„œ๋ช…๋œ ๋ฒˆ๋“ค ์ƒ์„ฑ/APK


flutter build apk --release --target-platform=android-arm64 -v
flutter build appbundle --release --target-platform=android-arm64 -v

๋‘˜ ๋‹ค ์‹คํŒจ @ > ์ž‘์—…: app:validateSigningRelease FAILED

@ciez ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด 64๋น„ํŠธ ์ „์šฉ apk๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

$ flutter build apk --release --target-platform=android-arm64
Initializing gradle...                                              1.1s
Resolving dependencies...                                           1.8s
Running Gradle task 'assembleRelease'...                                
Running Gradle task 'assembleRelease'... Done                       9.0s
Built build/app/outputs/apk/release/app-release.apk (7.5MB).

@adriank
์˜ˆ, ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„ ๋ƒˆ์Šต๋‹ˆ๋‹ค. keystore.jks ๊ฒฝ๋กœ์˜ "~"๋Š” /home/user๋กœ ๋Œ€์ฒด๋˜์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ž˜๋ชป๋œ ๊ฒฝ๋ณด์— ๋Œ€ํ•ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๋นŒ๋“œ๋œ ๊ฐ ๋ฒˆ๋“ค์€ ์ตœ๋Œ€ 1๊ฐœ์˜ ์•„์น˜๋งŒ ๋Œ€์ƒ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๊นŒ?

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ Flutter ์—…๋ฐ์ดํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ๋นŒ๋“œ๊ฐ€ ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@mulderpf ์–ด๋–ค ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ ์šฉํ–ˆ์œผ๋ฉฐ ๋นŒ๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

Flutter ํŒ€์˜ ์ตœ์‹  ์—…๋ฐ์ดํŠธ๋Š” ์ด ๋Œ“๊ธ€ ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ง€์ ์—์„œ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!
ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” flutter build appbundle --release --target-platform=android-arm-all (APK๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค) ๋˜๋Š” flutter build apk --release --target-platform=android-arm-all ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

PST ์‹œ๊ฐ„๋Œ€์— ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ๊ฒƒ์„ ์‹œ๋„ ํ•  ์˜ํ–ฅ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด Gitter ๋˜๋Š” Slack์— ๋ฌธ์˜ํ•˜์„ธ์š”. :)

@blasten ์Šฌํ”„๊ฒŒ๋„ ๋‚˜๋Š” ๋‹น์‹ ์˜ ๋ธŒ๋žœ์น˜๋กœ appbundle์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. Gradle์€ app:properties ์–ด๋–ป๊ฒŒ๋“  ์‹คํŒจํ•˜์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์œ ๋งํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.
flutter/engine ์ด ./lib/ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ AOT ์Šค๋ƒ…์ƒท์„ ๋กœ๋“œํ•˜๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๊นŒ? ์—”์ง„ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ๋ชจ๋“  ๊ณณ์—์„œ ์ž์‚ฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค... ์ด๊ฒƒ์ด ์ž‘๋™ํ•˜๋ฉด ์ „์ฒด App Bundle ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ๋กœ์„œ๋Š” ABI์— ์˜ํ•œ ์ž์‚ฐ ๋””๋ ‰ํ† ๋ฆฌ ํƒ€๊ฒŸํŒ… ์ง€์›์ด ๋ถ€์กฑํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@SPodjasek ๋งž์Šต๋‹ˆ๋‹ค. ์—”์ง„์˜ ๋กœ์ปฌ ๋นŒ๋“œ๋„ ํ•„์š”ํ•˜๋ฏ€๋กœ APK์˜ ํด๋ž˜์Šค๊ฐ€ ์ƒˆ ์Šค๋ƒ…์ƒท์„ ์ฐพ์Šต๋‹ˆ๋‹ค.

@blasten ๋นŒ๋“œ ํŠธ๋ฆฌ๋ฅผ ์ˆ˜์ •ํ–ˆ์œผ๋ฉฐ ์ด์ œ base/lib/${abi}/ AOT ์Šค๋ƒ…์ƒท์ด ํฌํ•จ๋œ App Bundle์„ ์„ฑ๊ณต์ ์œผ๋กœ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  4649616  2019-05-13 20:52   base/lib/arm64-v8a/isolate_snapshot_data.so
  6296768  2019-05-13 20:52   base/lib/arm64-v8a/isolate_snapshot_instr.so
  8472736  2019-05-13 20:52   base/lib/arm64-v8a/libflutter.so
    32352  2019-05-13 20:52   base/lib/arm64-v8a/vm_snapshot_data.so
    19200  2019-05-13 20:52   base/lib/arm64-v8a/vm_snapshot_instr.so
  3700504  2019-05-13 20:52   base/lib/armeabi-v7a/isolate_snapshot_data.so
  6019680  2019-05-13 20:52   base/lib/armeabi-v7a/isolate_snapshot_instr.so
  6036116  2019-05-13 20:52   base/lib/armeabi-v7a/libflutter.so
    23520  2019-05-13 20:52   base/lib/armeabi-v7a/vm_snapshot_data.so
    12640  2019-05-13 20:52   base/lib/armeabi-v7a/vm_snapshot_instr.so

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ• ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค...

https://github.com/flutter/engine/blob/1b649a57d18a8c41ae017d79cf9bdb999a2276ac/shell/platform/android/io/flutter/view/FlutterMain.java#L334 -L336

๋‹ค์Œ๊ณผ ๊ฐ™์ด

getContext().getApplicationInfo().nativeLibraryDir;

๋ฌผ๋ก  ๊ทธ๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•˜์ง€๋Š” ์•Š๊ฒ ์ง€๋งŒ ์ „์ฒด์ ์ธ ๊ฐœ๋…์„ ํŒŒ์•…ํ•˜์ž๋ฉด...

32๋น„ํŠธ ๋ฐ 64๋น„ํŠธ ์ง€์›์œผ๋กœ flutter build appbundle ๋ฅผ ์‹œ๋„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ๋‹ค์šด๋กœ๋“œ flutter.jar ์—์„œ https://drive.google.com/open?id=1yAkfhPKfhdd8MwW39qfkZDePc66SMA_z ๊ณผ ์•„๋ž˜์— ๋ฐฐ์น˜ {flutterInstallationPath}/bin/cache/artifacts/engine/android-arm-release . Flutter ์„ค์น˜ ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด which flutter ์‚ฌ์šฉํ•˜์„ธ์š”.

FlutterMain.java์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณด๋ ค๋ฉด https://github.com/blasten/engine/commit/b3ab9def28a414ffa53bf10ad6a3249f31ed00e3์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

  1. ์ด ๋ถ„๊ธฐ์—์„œ ํŒจ์น˜๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
$ cd {flutterInstallationPath}
$ git remote add arm-all https://github.com/blasten/flutter
$ git fetch arm-all apk_defaults
$ git checkout apk_defaults

$ git build appbundle --release --target-platform=android-arm-all

๋‹น์‹ ์ด ๋ฌด์—‡์„ ์ฐพ์•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

+1

@danysz +1์„ ์“ฐ๋Š” ๋Œ€์‹  ์ด ๋ฌธ์ œ์—

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

@blasten ์•ฑ ์‹œ์ž‘ ์‹คํŒจ:

05-14 10:50:35.979  3445 28828 I ActivityManager: Start proc 30019:xxx/u0a262 for activity xxx/com.example.flutterapp.MainActivity
05-14 10:50:36.067 30019 30019 I FirebaseInitProvider: FirebaseApp initialization successful
05-14 10:50:36.108 30019 30019 E flutter : [ERROR:flutter/runtime/dart_vm_data.cc(19)] VM snapshot invalid and could not be inferred from settings.
05-14 10:50:36.108 30019 30019 E flutter : [ERROR:flutter/runtime/dart_vm.cc(241)] Could not setup VM data to bootstrap the VM from.
05-14 10:50:36.108 30019 30019 E flutter : [ERROR:flutter/runtime/dart_vm_lifecycle.cc(89)] Could not create Dart VM instance.
05-14 10:50:36.108 30019 30019 F flutter : [FATAL:flutter/shell/common/shell.cc(218)] Check failed: vm. Must be able to initialize the VM.
05-14 10:50:36.108 30019 30019 F libc    : Fatal signal 6 (SIGABRT), code -6 in tid 30019 (xxx), pid 30019 (xxx)

์ด๊ฒƒ์€ ๋‚ด ๋ฌผ๋ฆฌ์  ์žฅ์น˜์™€ 9/10 ํ…Œ์ŠคํŠธ ๋žฉ ์žฅ์น˜๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. Pixel-Q-๋ฒ ํƒ€์— ๋Œ€ํ•ด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@danysz +1์„ ์“ฐ๋Š” ๋Œ€์‹  ์ด ๋ฌธ์ œ์—

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

์™„๋ฃŒ

@blasten ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‚ดํŽด๋ณด๋ฉด ๊ธฐ์กด ์•ฑ์˜ ๊ฒฝ์šฐ AndroidManifest.xml ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

diff --git a/packages/flutter_tools/templates/app/android.tmpl/app/src/main/AndroidManifest.xml.tmpl b/packages/flutter_tools/templates/
app/android.tmpl/app/src/main/AndroidManifest.xml.tmpl
index 4778a2080..f3492835e 100644
--- a/packages/flutter_tools/templates/app/android.tmpl/app/src/main/AndroidManifest.xml.tmpl
+++ b/packages/flutter_tools/templates/app/android.tmpl/app/src/main/AndroidManifest.xml.tmpl
@@ -24,6 +24,11 @@
             <meta-data
                 android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
                 android:value="true" />
+            <!-- If true, the snapshots are read from lib instead of the assets 
+                 directory in the APK. -->
+            <meta-data
+                android:name="io.flutter.view.FlutterMain.snapshot-in-lib"
+                android:value="${snapshotInLib}" />
             <intent-filter>
                 <action android:name="android.intent.action.MAIN"/>
                 <category android:name="android.intent.category.LAUNCHER"/>

๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์—ฌ์ „ํžˆ ์‹คํŒจ...

@๋ธ”๋ผ์Šคํ…

git build
$ git build appbundle --release --target-platform=android-arm-all
"git build" or "flutter build" ? :-)

์Šฌํ”„๊ฒŒ๋„ ๋‚˜๋Š” ๋‹น์‹ ์˜ ์ง€์‹œ์— ๋”ฐ๋ผ appbundle์„ ์ƒ์‚ฐํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. Gradle์€ ์–ด๋–ป๊ฒŒ๋“  app:properties ์—์„œ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค("Building flutter tool..." ๋ฐ android-arm-*....์˜ ์ผ๋ถ€ ๋‹ค์šด๋กœ๋“œ ํ›„).

๋‹ค์šด๋กœ๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ flutter.jar๋ฅผ ๋ฎ์–ด์“ด ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@MoacirSchmidt ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ( flutter clean ) ๋ฐ gradle ์บ์‹œ( ~/.gradle/caches & ${projectRoot}/android/.gradle )๋ฅผ ์ฒญ์†Œํ•˜๋ฉด ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

64๋น„ํŠธ APK๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด.
์ด ์„ค์ •์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

build.gradle

flutter build apk --release --target-platform=android-arm

๋ฒ„์ „ ์ฝ”๋“œ ์ฆ๊ฐ€

flutter build apk --release --target-platform=android-arm64

https://github.com/flutter/flutter/issues/18494์—์„œ ๋” ๋งŽ์€ ํ† ๋ก 

flutter build appbundle ์ด(๊ฐ€) ์ด์ œ ๋งˆ์Šคํ„ฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐœ์ ์œผ๋กœ ์‹œ๋„ํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜์ฒ˜๋Ÿผ gradle ํŒŒ์ผ ๋ณ€๊ฒฝ์„ ๋‘๋ ค์›Œํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด โ€“ 64๋น„ํŠธ ๋ฒ„์ „๋งŒ ์›ํ•˜๋ฉด build.gradle์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š์•„๋„ flutter build apk --release --target-platform=android-arm64 ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

@blasten beta ์ฑ„๋„์—์„œ flutter build appbundle ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. Play ์Šคํ† ์–ด์— ์—…๋กœ๋“œํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์—ฌ์ „ํžˆ 32/64 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

master ๋ผ๊ณ  ๋ง์”€ํ•˜์…จ์ง€๋งŒ ์•„์ง ํ•ด๋‹น ์ง€์ ์—์„œ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ •๋ณด๋ฅผ ์•Œ๋ ค๋“œ๋ฆฌ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค!

๋‚˜๋Š” ๋˜ํ•œ์ด ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›๊ณ ์žˆ๋‹ค!

๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์•ฑ ๋ฒˆ๋“ค์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

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

์•ฑ ๋ฒˆ๋“ค์„ ์ฐธ์กฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฒ„๊ทธ๋ฅผ ๋‹ซ์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ๋ถ„๊ธฐ๋กœ ์ „ํ™˜ํ•˜๋ฉด flutter build appbundle ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 32๋น„ํŠธ ๋ฐ 64๋น„ํŠธ CPU ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ง€์›ํ•˜๋Š” ์•ฑ ๋ฒˆ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ฑ ๋ฒˆ๋“ค์„ ์„ ํ˜ธํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ด ์Šค๋ ˆ๋“œ ๋ฅผ ๋”ฐ๋ผ ํŒป APK๋ฅผ ํ†ตํ•œ ์ถ”๊ฐ€ ์ง€์›์„ ๋ฐ›์œผ์„ธ์š”.

@blasten - Android Studio ๋‚ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์„ ์ œ๊ณตํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
ํ˜„์žฌ ํ”Œ๋Ÿฌํ„ฐ ๊ตฌ์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์˜์‚ฌ ์š”์•ฝ(๋ชจ๋“  ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด flutter Doctor -v ์‹คํ–‰):
[โˆš] Flutter(์ฑ„๋„ ์•ˆ์ • ๋ฒ„์ „, v1.2.1, Microsoft Windows [๋ฒ„์ „ 10.0.17763.503], ๋กœ์ผ€์ผ en-US)
[โˆš] Android ํˆด์ฒด์ธ - Android ๊ธฐ๊ธฐ์šฉ ๊ฐœ๋ฐœ(Android SDK ๋ฒ„์ „ 28.0.3)
[โˆš] ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค(๋ฒ„์ „ 3.4)

์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์–ธ์ œ stable ์ง€์ ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๊นŒ?

@blasten ์€

@blasten flutter build appbundle์—์„œ ๋งŒ๋“  ์•ฑ ๋ฒˆ๋“ค์— ์„œ๋ช…ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@blasten ์€ ํ”„๋กœ๋•์…˜ ์•ฑ์— ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๊นŒ?

@dbokhin flutter channel master ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์Šคํ„ฐ ์ฑ„๋„๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด์ œ dev ์ฑ„๋„์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@tvolkert - stable ๋ถ„๊ธฐ์— ๋ณ‘ํ•ฉ๋˜๋Š” ๊ธฐ๊ฐ„์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@angel1st ์ง€๊ธˆ๋ถ€ํ„ฐ ์•ฝ 3๊ฐœ์›” ํ›„์— ๊ฒŒ์ŠคํŠธ๋กœ

@truongsinh - 8์›” 1์ผ์ด ์ง€๊ธˆ์œผ๋กœ๋ถ€ํ„ฐ ์•ฝ 2๊ฐœ์›”

@angel1st ์ด๋ฏธ ์•ˆ์ •ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ๋” ์•Œ์•„๋ณผ๊ฒŒ์š”...

@angel1st ์ด๋ฏธ ์•ˆ์ • ์ƒํƒœ์ž…๋‹ˆ๋‹ค!

๋‹น์‹ ์€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ํ™•์‹ ํ•ฉ๋‹ˆ๊นŒ? ํ˜„์žฌ ์•ˆ์ • ๋ฒ„์ „์€ 1.5.4-hotfix 2 ant์ด๋ฉฐ 32์™€ 64 ๋ชจ๋‘์—์„œ ๋ฒˆ๋“ค์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ์ œ๊ฐ€ ๋†“์นœ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@shinayser ์•„์ง ์•„๋‹™๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋” ์•Œ์•„๋ณด๊ณ  ์Šค๋ ˆ๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Todd๊ฐ€ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ํ˜„์žฌ๋กœ์„œ๋Š” master ์ฑ„๋„์ด ์œ ์ผํ•œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์•ฑ ๋ฒˆ๋“ค์„ ์‹œ๋„ํ–ˆ๋‹ค. ๋งˆ์Šคํ„ฐ์— Flutter 1.6.1-pre ๋ฒ„์ „์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
์ฑ„๋„.

๋ฒˆ๋“ค์˜ ์ถœ๋ ฅ์€ ๊ฒฝ๊ณ ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์€ ์•ฝ 12MB์˜€์Šต๋‹ˆ๋‹ค.
๊ฐœ๋ณ„ APK ํฌ๊ธฐ๋Š” ์•ฝ 7์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ Play ์Šคํ† ์–ด๋ฅผ ํ†ตํ•ด ์—…๋ฐ์ดํŠธํ•œ ํ›„ ์•ฑ์„ ์—ด์—ˆ์„ ๋•Œ ๋‚ด ์•ฑ์€
์‹œ์ž‘ ํ™”๋ฉด์— ๋ฉˆ์ท„์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ž˜ ์ž‘๋™ํ•˜๋Š” ํ”Œ๋Ÿฌํ„ฐ ๋นŒ๋“œ APK๋กœ ๋˜๋Œ๋ฆด ์„ ํƒ์˜ ์—ฌ์ง€๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์™œ.

๋”ฐ๋ผ์„œ ๊ฒฝ๊ณ ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ด ๋ฌธ์ œ๊ฐ€ ์•„์ง ์ข…๋ฃŒ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์•ฑ ๋ฒˆ๋“ค๊ณผ ํ•จ๊ป˜ ์‚ฌ๋ผ์กŒ๊ณ  ์•ฑ ์ž์ฒด๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์•ฑ๋ฒˆ๋“ค์€
์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด์— ๊ฐ‡ํžŒ ์•ฑ์„ ์“ธ๋ชจ ์—†๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๊ฒฝ์šฐ Gitter์—์„œ ์ €์—๊ฒŒ ์ง์ ‘ ์—ฐ๋ฝํ•ด ์ฃผ์„ธ์š”: https://gitter.im/flutter/flutter. ๊ฐ€๋Šฅํ•˜๋ฉด ๋„๊ตฌ์—์„œ ์ƒ์„ฑํ•œ .aab ํŒŒ์ผ์„ ๋ณด๋‚ด์ฃผ์‹œ๋ฉด ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ์‹์œผ๋กœ๋“  ์‚ฌ์šฉ๋ฒ•์„ ๋ฌธ์„œํ™” ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Flutter ํŒ€์ด ๊ฐœ๋ฐœ์ž๋ฅผ ๊ณ„์† ์œ ์ง€ํ•˜๋ ค๋ฉด 6์›” ๋ง ์ด์ „์— ์ด๊ฒƒ์„ stable ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@angel1st ์šฐ๋ฆฌ๋Š” ์ด ์ž‘์—…์„ 6์›” ๋ง๊นŒ์ง€ stable ๋กœ ์Šน๊ฒฉ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์—ด์‹ฌํžˆ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ถ€ ์—…๋ฐ์ดํŠธ:

์•ฑ ๋ฒˆ๋“ค(๋งˆ์Šคํ„ฐ ์ฑ„๋„์—์„œ flutter build appbundle ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ)์—์„œ APK๋ฅผ ๋ฐฐํฌํ•œ ํ›„ ์‹œ์ž‘ ํ™”๋ฉด์—์„œ ๋ฉˆ์ถ”๋Š” ์•ฑ์„ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ AOT ์Šค๋ƒ…์ƒท( vm-snapshot-data , vm-snapshot-instr , isolate-snapshot-data , isolate-snapshot-instr )์„ /lib/{abi}/lib_{snapshot}.so ๋‚ด์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ฐฐ์น˜ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•ฑ ๋ฒˆ๋“ค์— ๋Œ€ํ•œ ABI ๋ถ„ํ• ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ๊ทผ๋ณธ ์›์ธ์€ Android ์ž„๋ฒ ๋”์˜ ์ฝ”๋“œ๊ฐ€ ์ด ์ค„ ์— flutter_assets ๋ผ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์˜ˆ์ƒํ•˜์ง€๋งŒ ์ตœ๊ทผ์— ์•ฑ ๋ฒˆ๋“ค์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ๋ณ€๊ฒฝ์œผ๋กœ ์ด๋Ÿฌํ•œ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ์ด ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์•ฑ์ด ์‹œ์ž‘๋˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. @jason-simmons https://github.com/flutter/engine/compare/7f4f52f95294...e8db5dfd52ee์˜ ์ด ์ปค๋ฐ‹์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

ํ˜„์žฌ ๊ณ„ํš์€ flutter ๋„๊ตฌ๊ฐ€ AOT ์Šค๋ƒ…์ƒท ๋Œ€์‹  ELF ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ https://github.com/dart-lang/sdk/commit/af93ebcf4cb55ae5f0f39a183ad2d42ca13ae51f์˜ Dart SDK์— ๋ฐฉ๊ธˆ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋Š” ์‹ค์ œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ ๋ฒˆ๋“ค ๋ฐ ํŒป APK์— ๋Œ€ํ•œ ABI ๋ถ„ํ• ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋ฉด ์ด ๋ฒ„๊ทธ์™€ https://github.com/flutter/flutter/issues/18494๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•œํŽธ --target-platform ์„ build appbundle ๋กœ ์ „๋‹ฌํ•˜๋ฉด AOT ์Šค๋ƒ…์ƒท์„ lib/ ์ด๋™ํ•˜์ง€ ์•Š๊ณ  ์•ฑ ๋ฒˆ๋“ค์„ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ถ€ ์—…๋ฐ์ดํŠธ:

์•ฑ ๋ฒˆ๋“ค(๋งˆ์Šคํ„ฐ ์ฑ„๋„์—์„œ flutter build appbundle ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ)์—์„œ APK๋ฅผ ๋ฐฐํฌํ•œ ํ›„ ์‹œ์ž‘ ํ™”๋ฉด์—์„œ ๋ฉˆ์ถ”๋Š” ์•ฑ์„ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ AOT ์Šค๋ƒ…์ƒท( vm-snapshot-data , vm-snapshot-instr , isolate-snapshot-data , isolate-snapshot-instr )์„ /lib/{abi}/lib_{snapshot}.so ๋‚ด์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ฐฐ์น˜ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•ฑ ๋ฒˆ๋“ค์— ๋Œ€ํ•œ ABI ๋ถ„ํ• ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ, ์Šค๋ƒ…์ƒท์€ ์‹ค์ œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ฉฐ ์ด ๋™์ž‘์„ ์–ป๊ธฐ ์œ„ํ•œ ํ•ดํ‚น์€ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ๊ณ„ํš์€ flutter ๋„๊ตฌ๊ฐ€ AOT ์Šค๋ƒ…์ƒท ๋Œ€์‹  ELF ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ dart-lang/ sdk@af93ebc ์˜ Dart SDK์— ๋ฐฉ๊ธˆ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋Š” ์‹ค์ œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ ๋ฒˆ๋“ค ๋ฐ ํŒป APK์— ๋Œ€ํ•œ ABI ๋ถ„ํ• ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋ฉด ์ด ๋ฒ„๊ทธ์™€ #18494๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•œํŽธ --target-platform ์„ build appbundle ๋กœ ์ „๋‹ฌํ•˜๋ฉด AOT ์Šค๋ƒ…์ƒท์„ lib/ ์ด๋™ํ•˜์ง€ ์•Š๊ณ ๋„ ์•ฑ ๋ฒˆ๋“ค์„ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ @blasten ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ? ์˜ˆ: VLC. APK๋ฅผ ๋นŒ๋“œํ•  ๋•Œ .so ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ - APK ๋‚ด์—์„œ ๋‹ค๋ฅธ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ํŒจํ‚ค์ง• ํ˜•์‹์—์„œ Flutter ์•ฑ์—๋Š” ์•ฑ์˜ Dart ์ฝ”๋“œ์—์„œ ์ปดํŒŒ์ผ๋œ AOT ์Šค๋ƒ…์ƒท ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๋Š” ๋‹ค๋ฅธ .so ์™€ ํ•จ๊ป˜ libflutter.so ์—”์ง„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์•ฑ์€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ Flutter์™€ ๊ด€๋ จ์ด ์—†๋Š” ๋‹ค๋ฅธ .so ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ ์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด์—์„œ ๋ฉˆ์ถ”๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์€ (์ถœ์‹œ ์˜ˆ์ •) 1.7.0 dev ์ฑ„๋„ ๋ฆด๋ฆฌ์Šค(https://github.com/flutter/flutter/wiki/Bad-Builds#v161--- v167)

์•ˆ๋…• ๋ชจ๋‘. ์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด์—์„œ ๋ฉˆ์ถ”๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด dev ์ฑ„๋„์— ๋„์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค. v1.7.0์œผ๋กœ flutter upgrade ํ•˜๋ฉด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•ด ๋ณด์‹œ๊ณ  flutter build appbundle ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

@tvolkert ์ด์ „์—๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๊ณ  ์ง€๊ธˆ์€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฑ„๋„ ๊ฐœ๋ฐœ(1.7.0)์ด๋‚˜ ์ฑ„๋„ ๋งˆ์Šคํ„ฐ(1.7.1)์—๋Š” ์—†์Šต๋‹ˆ๋‹ค. flutter build appbundle ๊ฐ€ ํฌํ•จ๋œ ์•ฑ ๋นŒ๋“œ๋Š” Play ์Šคํ† ์–ด๋ฅผ ํ†ตํ•ด ๊ฒŒ์‹œํ•˜๊ณ  ์‹ค์ œ ๊ธฐ๊ธฐ์—์„œ ์‹คํ–‰ํ•œ ํ›„ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.
ํŽธ์ง‘: ์ด์ œ ๊ธฐ๊ธฐ์—์„œ ์•ฑ์„ ์‚ญ์ œํ•˜๊ณ  Play ์Šคํ† ์–ด์—์„œ ๋‹ค์‹œ ์„ค์น˜ํ•œ ํ›„ ์ฑ„๋„ dev(1.7.0)์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
Edit2: ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Play ์Šคํ† ์–ด๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์„ ๋ฐฐํฌํ•˜๋Š” ๋™์•ˆ ํ‰์†Œ๋ณด๋‹ค ์•ฝ๊ฐ„ ๋Š๋ ธ์Šต๋‹ˆ๋‹ค. ๋ฒˆ์‹์„ ๋•๊ธฐ ์œ„ํ•ด ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@masewo ๊ทธ ๋‹น์‹œ ์–ด๋–ค ๋ฒ„์ „์˜ Flutter๊ฐ€ ์‹คํ–‰ ์ค‘์ด์—ˆ๋Š”์ง€์™€ ํ•จ๊ป˜ ์žฅ์น˜์—์„œ ์‚ญ์ œ ํ‘œ์‹œ๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@jason-simmons @blasten ์ด ๋ฌธ์ œ๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๊ณ  ์‹ถ์€ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@tvolkert

๋ฌ˜๋น„:

2019-06-04 08:32:44.375 8326-8326/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2019-06-04 08:32:44.375 8326-8326/? A/DEBUG: Build fingerprint: 'samsung/crownltexx/crownlte:9/PPR1.180610.011/N960FXXS2CSDJ:user/release-keys'
2019-06-04 08:32:44.375 8326-8326/? A/DEBUG: Revision: '28'
2019-06-04 08:32:44.375 8326-8326/? A/DEBUG: ABI: 'arm64'
2019-06-04 08:32:44.375 8326-8326/? A/DEBUG: pid: 8261, tid: 8261, name: asewo.myfirstapp  >>> net.masewo.myfirstapp <<<
2019-06-04 08:32:44.375 8326-8326/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG: Abort message: '[FATAL:flutter/shell/common/shell.cc(218)] Check failed: vm. Must be able to initialize the VM.
    '
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     x0  0000000000000000  x1  0000000000002045  x2  0000000000000006  x3  0000000000000008
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     x4  0000000000000000  x5  0000000000000000  x6  0000000000000000  x7  0080000000000000
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     x8  0000000000000083  x9  000000767c1f9890  x10 fffffff87ffffbdf  x11 0000000000000001
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     x12 00000075ded1c000  x13 0000000000000008  x14 ffffffffffffffff  x15 0000402003ff3b02
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     x16 000000767c2302b0  x17 000000767c16f958  x18 0000007fdd2251da  x19 0000000000002045
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     x20 0000000000002045  x21 0000000000000083  x22 00000075edde02e0  x23 00000075dec79fc0
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     x24 00000075de3a6150  x25 0000000000000000  x26 00000075f7614ca0  x27 0000000000000003
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     x28 0000000000000000  x29 0000007fdd225b00
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     sp  0000007fdd225ac0  lr  000000767c162da0  pc  000000767c162dcc
2019-06-04 08:32:44.377 8326-8326/? A/DEBUG: backtrace:
2019-06-04 08:32:44.377 8326-8326/? A/DEBUG:     #00 pc 0000000000021dcc  /system/lib64/libc.so (abort+124)
2019-06-04 08:32:44.377 8326-8326/? A/DEBUG:     #01 pc 0000000000e4a6a0  /data/app/net.masewo.myfirstapp-J4PFXKn_O2diLnKpCeu2eg==/split_config.arm64_v8a.apk (offset 0xe2d000)

์‹ค๋ฃฉ ๊ฑฐ๋ฆฌ๋‹ค:

D:\Programme\Android\flutter\bin\flutter.bat doctor --verbose
[โˆš] Flutter (Channel dev, v1.7.0, on Microsoft Windows [Version 10.0.18362.145], locale de-DE)
    โ€ข Flutter version 1.7.0 at D:\Programme\Android\flutter
    โ€ข Framework revision f36a35d20a (3 days ago), 2019-05-31 15:27:56 -0400
    โ€ข Engine revision a32df2c928
    โ€ข Dart version 2.3.2 (build 2.3.2-dev.0.0 445a23a9bc)

[โˆš] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    โ€ข Android SDK at D:\Programme\Android\sdk
    โ€ข Android NDK location not configured (optional; useful for native profiling support)
    โ€ข Platform android-28, build-tools 28.0.3
    โ€ข Java binary at: D:\Programme\Android\Android Studio Dev\jre\bin\java
    โ€ข Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
    โ€ข All Android licenses accepted.

[โˆš] Android Studio (version 3.5)
    โ€ข Android Studio at D:\Programme\Android\Android Studio Beta
    โ€ข Flutter plugin version 36.0.7
    โ€ข Dart plugin version 191.7221
    โ€ข Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b02)

[โˆš] Connected device (1 available)
    โ€ข SM N960F โ€ข xxxxxxxxxxxxxxxx โ€ข android-arm64 โ€ข Android 9 (API 28)

@jason-simmons @blasten @masewo ์˜ ๊ฒฝ์šฐ ์ถฉ๋Œ์„ ์ผ์œผํ‚ค๋Š” ๊ฒƒ์€ ์ด ์ฃผ์žฅ ์ž…๋‹ˆ๋‹ค.

@masewo ์•ฑ ์ด ์—†์œผ๋ฉด ๋‹น์‚ฌ ์ธก์—์„œ ์ถฉ๋Œ์„ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋™์ž‘์„ ๋ณด์—ฌ์ฃผ๋Š” 1.7.1 ๋ฆด๋ฆฌ์Šค์—์„œ ์„œ๋ช…๋˜์ง€ ์•Š์€ .aab ํŒŒ์ผ์„ ๋นŒ๋“œํ•˜์—ฌ ์ด๋ฉ”์ผ(tvolkert@google .com)? ๊ทธ๋ ‡๋‹ค๋ฉด ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

์ฐธ๊ณ ๋กœ, 64๋น„ํŠธ ์ง€์›๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋‹ค์Œ ๋ฐœํ‘œ๊ฐ€ [email protected] ์œผ๋กœ ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

https://groups.google.com/forum/#!topic/flutter -announce/oIzwT9EDczc

@tvolkert ๋Š” https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps ๋ฅผ ๋‚˜์—ดํ•œ ๋ชจ๋“  ํฌ์ธํŠธ์™€ ํ˜ธํ™˜๋˜๋„๋ก ํ•˜๋Š” ํŒ€์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

  1. 32๋น„ํŠธ์™€ 64๋น„ํŠธ๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•˜๋Š” ์•ฑ ๋ฒˆ๋“ค์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•(๊ธฐ๋ณธ์ ์œผ๋กœ)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. (์ด๋ฏธ dev ์ฑ„๋„์—์„œ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ)

  2. ๊ธฐ๋ณธ์ ์œผ๋กœ 32๋น„ํŠธ์™€ 64๋น„ํŠธ๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•˜๋Š” APK๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. (์ง„ํ–‰ ์ค‘)

@truongsinh ์˜ˆ, ๋ณด๋ฅ˜ ์ค‘์ธ PR์—์„œ ์ด ์˜๊ฒฌ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. https://github.com/flutter/flutter/pull/33696#issuecomment -498934359

@masewo ๋ฐ ๊ธฐํƒ€ ๋ชจ๋“  ์‚ฌ์šฉ์ž: https://github.com/flutter/flutter/issues/31922#issuecomment -498541765์— ์„ค๋ช…๋œ ์ถฉ๋Œ์„ ๋ณต์ œํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ์ถ”์  ์ค‘์ž…๋‹ˆ๋‹ค.

tldr: ์ž ์‹œ๋งŒ ๊ธฐ๋‹ค๋ ค ์ฃผ์„ธ์š” - ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค ๐Ÿ™‚

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„,

TLDR:

Play ์Šคํ† ์–ด์—์„œ ๋‹ค์šด๋กœ๋“œํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ถฉ๋Œ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ–ˆ์œผ๋ฉฐ ์œ„์— https://github.com/flutter/flutter/issues/31922#issuecomment์— ์„ค๋ช…๋œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๊ธฐ๊ฐ„ ๋‚ด์— ์ œ๊ณต๋  ์ˆ˜์ • ์ž‘์—…์„ ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. -498880614

๊ณ ๊ธ‰ ์„ค๋ช…

๊ด€์‹ฌ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด Android Marshmallow ์ด์ƒ์„ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๊ธฐ์—์„œ Play ์Šคํ† ์–ด๊ฐ€ ์—ฌ๋Ÿฌ ABI๋ฅผ ํฌํ•จํ•˜๋Š” App Bundle๋กœ ํŒจํ‚ค์ง•๋œ ์•ฑ์„ ๊ฐ์ง€ํ•˜๊ณ  "split APK". ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ทธ ์•ˆ์— ํฌํ•จ๋œ .so ํŒŒ์ผ์ด APK zip ์•„์นด์ด๋ธŒ์—์„œ ์ถ”์ถœ๋˜์ง€ ์•Š๋Š”๋ฐ, ์ด๋Š” ๋น„๋ถ„ํ•  APK์˜ ๋™์ž‘๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. .so ํŒŒ์ผ์„ ์ฐพ๋Š” Flutter ์—”์ง„์˜

์†”๋ฃจ์…˜์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ dlopen ํ•˜๊ณ  Android๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ๋Š” ์œ„์น˜(์˜ˆ: ์•„์นด์ด๋ธŒ ๋‚ด๋ถ€ ์—ฌ๋ถ€)๋ฅผ ์ถ”์ƒํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•„์š”ํ•œ .so ํŒŒ์ผ์€ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ง„์ •ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค. Dart VM์— ๋กœ๋“œํ•œ ๋ฐ์ดํ„ฐ์˜ ์ด์ง„ ๋ฉ์–ด๋ฆฌ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๊ฒƒ์˜ ์ผ๋ถ€๋กœ ELF ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: https://github.com/dart-lang/sdk/commit/6d608fb52bc1926a73d986d73ab228b77cfb7ca2 ๋ฐ https://github.com/flutter/flutter/pull/33696).

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„,

์ˆ˜์ • ์‚ฌํ•ญ์ด ๋ชจ๋‘ master ์ฑ„๋„์˜ ์ •์ ์— ๋„๋‹ฌํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•ด ๋ณด๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜์‹ญ์‹œ์˜ค.

  • flutter build appbundle

    ๊ธฐ๋ณธ์ ์œผ๋กœ App Bundle์—๋Š” armeabi-v7a (32๋น„ํŠธ) ๋ฐ arm64-v8a (64๋น„ํŠธ)์šฉ์œผ๋กœ ์ปดํŒŒ์ผ๋œ Dart ์ฝ”๋“œ์™€ Flutter ๋Ÿฐํƒ€์ž„์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • flutter build apk --split-per-abi

    ์ด ๋ช…๋ น์€ ๋‘ ๊ฐœ์˜ APK๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    build/app/outputs/apk/release/app-armeabi-v7a-release.apk
    build/app/outputs/apk/release/app-arm64-v8a-release.apk

  • flutter build apk

    ๊ทธ๋Ÿฌ๋ฉด ๋ชจ๋“  ๋Œ€์ƒ ABI์— ๋Œ€ํ•ด ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ๋šฑ๋šฑํ•œ APK๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ APK๋Š” ๋ถ„ํ• ๋œ APK๋ณด๋‹ค ํฌ๊ธฐ๊ฐ€ ๋” ํฌ๋ฏ€๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๊ธฐ ์•„ํ‚คํ…์ฒ˜์— ์ ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ธฐ๋ณธ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

flutter build appbundle ์ด(๊ฐ€) ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. @tvolkert ๊ฐ์‚ฌ

์—ฌ๋Ÿฌ Android ๊ธฐ๊ธฐ์—์„œ ์ด๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋งˆ์Šคํ„ฐ๋กœ ์ „ํ™˜ํ•œ ํ›„). ์ƒ๋ช…์˜ ์€์ธ, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์—„์ฒญ๋‚œ! @blasten , @jason-simmons ๋ฐ @rmacnak-google์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ €๋Š” ๋ฉ”์‹ ์ €์ผ ๋ฟ์ž…๋‹ˆ๋‹ค ๐Ÿ™‚

๋น ๋ฅธ ์‘๋‹ต์„ ์œ„ํ•ด Flutter ํŒ€๊ณผ ๊ธฐ์—ฌ์ž ๋ชจ๋‘์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋ฐ”๋ผ๊ฑด๋Œ€, ์ด๊ฒƒ์€ 1.5 ๊ฐœ์›” ์ด๋‚ด์— ๋ฒ ํƒ€ ์ฑ„๋„์— ๋„์ฐฉํ•ฉ๋‹ˆ๋‹ค :)

@tomaszpolanski ๊ณ„ํš์€ 6์›” ๋ง๊นŒ์ง€ ๋ฒ ํƒ€ ๋ฒ„์ „์„ ๋งŒ๋“ค๊ณ  7์›” ์ดˆ๊นŒ์ง€ ์•ˆ์ •ํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค ๐Ÿ™‚

@tvolkert x86๋„ ํฌํ•จํ•˜๋„๋ก ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” flutter build appbundle ๋ช…๋ น ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@athornz ๊ฐ€ ๋ฆด๋ฆฌ์Šค ๋ชจ๋“œ atm์— ์—†์Šต๋‹ˆ๋‹ค. ์ฐธ์กฐ: https://github.com/flutter/flutter/issues/9253. ํ•˜์ง€๋งŒ ๊ฐ€๊นŒ์šด ์žฅ๋ž˜์— x86_64 ์— ๋Œ€ํ•œ AOT ์Šค๋ƒ…์ƒท์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์Šคํ„ฐ ๋ถ„๊ธฐ๋กœ ์ „ํ™˜ํ•˜๋ฉด ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์•ˆ์ •์ ์ธ ๋นŒ๋“œ์ด์ง€๋งŒ ๋ฆด๋ฆฌ์Šค ๋ฒˆ๋“ค์— 64๋น„ํŠธ๋ฅผ ํฌํ•จํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

Running flutter doctor...
Doctor summary (to see all details, run flutter doctor -v):
[โœ“] Flutter (Channel master, v1.7.4-pre.108, on Mac OS X 10.14.5 18F132, locale nl-NL)
[โœ“] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[โœ“] Xcode - develop for iOS and macOS (Xcode 10.2.1)
[โœ“] iOS tools - develop for iOS devices
[โœ“] Android Studio (version 3.4)
[โœ“] IntelliJ IDEA Community Edition (version 2018.2.7)
[โœ“] Connected device (1 available)

โ€ข No issues found!
MacBook-Pro-van-Wendel:zaira wendel$ flutter build appbundle --build-name=1.0.6 --build-number=6 -t lib/main_prod.dart --flavor=prod
Initializing gradle...                                              0,9s
Resolving dependencies...                                           2,2s
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
Running Gradle task 'bundleProdRelease'...                              
Running Gradle task 'bundleProdRelease'... Done                    78,6s
Gradle task bundleProdRelease failed with exit code 1

@xinoxapps , flutter build appbundle -v ์˜ ์ „์ฒด ์ถœ๋ ฅ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ (์ด ์Šค๋ ˆ๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด gist.github.com ๋งํฌ๋กœ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค ๐Ÿ™‚)?

@xinoxapps , ์ด ๋ฌธ์ œ๋ฅผ ๋กœ์ปฌ์—์„œ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด์ œ, ๋‹น์‹ ์ด ๋ฐ›๊ณ  ์žˆ๋Š” ๊ฒฝ๊ณ ๋ฅผ ๋ณด๋ฉด, ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๊ฑฐ๋‚˜ ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์‚ฌ์šฉ์ž ์ •์˜ build.gradle ๊ตฌ์„ฑ ๋กœ์ง์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ์˜ ์žฌํ˜„ ์‚ฌ๋ก€์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด ์ž‘๋™ํ•  ๋•Œ๊นŒ์ง€ ์‚ฌ์šฉ์ž ์ง€์ • Gradle ๊ตฌ์„ฑ ์ค‘ ์ผ๋ถ€๋ฅผ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ์ •ํ™•ํžˆ ๋ฌธ์ œ์˜ ์›์ธ์„ ๊ณต์œ ํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ๋ง›์„ ์ •์˜ํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

android {
  flavorDimensions "version"
    productFlavors {
        prod { }
    }
}

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„,

์ด๋Ÿฌํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์€ ์ด์ œ dev ์ฑ„๋„, v1.7.4 ๋ฆด๋ฆฌ์Šค ์ด์ƒ์—์„œ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์•ฑ ๋ฒˆ๋“ค๋กœ ์ „ํ™˜ํ•˜๊ณ  Play ์Šคํ† ์–ด์— ํ‘ธ์‹œํ–ˆ๋Š”๋ฐ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ์กฑํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ARM ์—๋ฎฌ๋ ˆ์ด์…˜์„ ์ง€์›ํ•˜๋Š” x86 ์žฅ์น˜์ธ Asus ZenFone 2 ZE551ML์—์„œ ์•ฑ์ด ์ „ํ˜€ ์‹œ์ž‘๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋‘ ๊ฐ€์ง€ ๋ณด๊ณ ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. https://www.gsmarena.com/asus_zenfone_2_ze551ml-6917.php. ๋ถˆํ–‰ํžˆ๋„ ์‚ฌ์šฉ์ž๋Š” logcat ์ถœ๋ ฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ELF ํ˜•์‹์ด ๊ทธ๋Ÿฌํ•œ ์žฅ์น˜์—์„œ ์ž‘๋™ํ•˜๋„๋ก ์˜๋„๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

Screen Shot 2019-06-16 at 11 55 54 PM

master ๋ฐ dev ์ฑ„๋„๋กœ ์ „ํ™˜ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ flutter build appbundle ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

* What went wrong:
Execution failed for task ':app:transformNativeLibsWithMergeJniLibsForProductionRelease'.
> More than one file was found with OS independent path 'lib/armeabi-v7a/libapp.so'

@darioielardi flutter build appbundle -v ์ถœ๋ ฅ๊ณผ android/build.gradle ๋ฐ android/app/build.gradle ํŒŒ์ผ์˜ ๋‚ด์šฉ๊ณผ ํ•จ๊ป˜ gist.google.com ๋งํฌ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์•ฑ ๋ฒˆ๋“ค๋กœ ์ „ํ™˜ํ•˜๊ณ  Play ์Šคํ† ์–ด์— ํ‘ธ์‹œํ–ˆ๋Š”๋ฐ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ์กฑํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ARM ์—๋ฎฌ๋ ˆ์ด์…˜์„ ์ง€์›ํ•˜๋Š” x86 ์žฅ์น˜์ธ Asus ZenFone 2 ZE551ML์—์„œ ์•ฑ์ด ์ „ํ˜€ ์‹œ์ž‘๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋‘ ๊ฐ€์ง€ ๋ณด๊ณ ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. https://www.gsmarena.com/asus_zenfone_2_ze551ml-6917.php. ๋ถˆํ–‰ํžˆ๋„ ์‚ฌ์šฉ์ž๋Š” logcat ์ถœ๋ ฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ELF ํ˜•์‹์ด ๊ทธ๋Ÿฌํ•œ ์žฅ์น˜์—์„œ ์ž‘๋™ํ•˜๋„๋ก ์˜๋„๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

Screen Shot 2019-06-16 at 11 55 54 PM

๋„ค, ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ flutter build appbundle๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋ฉฐ ๋Œ€๋ถ€๋ถ„์˜ ์žฅ์น˜๋Š” ๋‚ด ์•ฑ์„ ์ž˜ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์•„์ˆ˜์Šค๋Š” ์•„๋‹ˆ๋‹ค

@blasten ์˜ˆ, ๋„ค์ดํ‹ฐ๋ธŒ x86์ด ์ง€์›๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ ๋ฌธ์ œ๋Š” ARM/ARM64 ์•ฑ ๋ฒˆ๋“ค์ด Google Play์—์„œ ๋ฒˆ์—ญ์„ ํ†ตํ•ด ARM ์ง€์›์„ ๊ด‘๊ณ ํ•˜๋Š” x86 ๊ธฐ๊ธฐ์— ์„ค์น˜๋˜๊ณ  ์žˆ์ง€๋งŒ ์ƒˆ๋กœ์šด ์•ฑ ๋ฒˆ๋“ค์€ ์–ด๋–ป๊ฒŒ๋“  ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์žฅ์น˜์—์„œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค(์ƒˆ ELF ํ˜•์‹์ด ARM ๋ณ€ํ™˜๊ธฐ๋ฅผ ํ˜ผ๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Œ). ์›๋ž˜ ARM(๋น„ ARM64) APK๋Š” ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด์ง€๋งŒ 2์ฃผ ๋œ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜(๊ตฌ์ฒด์ ์œผ๋กœ e1a784ae)๋กœ ๋˜๋Œ๋ฆฌ๊ณ  ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ์žˆ๋˜ ๋‘ ์‚ฌ์šฉ์ž๊ฐ€ ์ด์ œ ๋‚ด ์•ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ZenFone 2 ์žฅ์น˜์—์„œ ๋‹ค์‹œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด v1.7.4๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@xinoxapps , flutter build appbundle -v ์˜ ์ „์ฒด ์ถœ๋ ฅ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ (์ด ์Šค๋ ˆ๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด gist.github.com ๋งํฌ๋กœ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค ๐Ÿ™‚)?

์ง€๊ธˆ์€ ๊ฐœ๋ฐœ์ž ์ฑ„๋„์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์•„์ง ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜์‹ญ๋‹ˆ๊นŒ?

@xinoxapps ์•„๋‹ˆ์š” - ๋‹น์‹ ์„ ์œ„ํ•ด ์ผํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์†Œ์‹์„ ๋“ค์œผ๋‹ˆ ๊ธฐ์ฉ๋‹ˆ๋‹ค.

@darioielardi ๋ฌธ์ œ๋Š” ์ด์ œ ๋งˆ์Šคํ„ฐ์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ์ฑ„๋„์—์„œ flutter upgrade ๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

@darioielardi ๋ฌธ์ œ๋Š” ์ด์ œ ๋งˆ์Šคํ„ฐ์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ์ฑ„๋„์—์„œ flutter upgrade ๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

@blasten ๋งˆ์Šคํ„ฐ๋กœ ์ „ํ™˜ํ–ˆ๋Š”๋ฐ flutter build appbundle ์‹คํ–‰ํ•  ๋•Œ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.

์ด๊ฒƒ์€ ๋‚ด gradle ๋ฐ ์ „์ฒด ์ถœ๋ ฅ์ž…๋‹ˆ๋‹ค. https://gist.github.com/julindra/80cd2e588cf11bdd0df3f34239b07409

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„,

์šฐ๋ฆฌ๋Š” ์•ฑ์— ์ถ”๊ฐ€ ๋ฐ ํ”Œ๋ ˆ์ด๋ฒ„์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋ฒ„๊ทธ ์ˆ˜์ •์„ ๋” ์ถ”๊ฐ€ํ•˜๊ณ  v1.7.5 ๊ฐœ๋ฐœ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ฒ ํƒ€๋กœ์˜ ์Šน๊ฒฉ์„ ๋ณด๋ฅ˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ 7์›” ์ดˆ์— ์ด๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

flutter build appbundle ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค. @tvolkert ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@julindra -ignorewarnings ๋ฅผ 'proguard-rules.pro ์ถ”๊ฐ€ํ•˜๋ฉด ํ•ด๋‹น ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ android.arch.* ํŒจํ‚ค์ง€๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์€ android/app/build.gradle ๋ฅผ ํŽธ์ง‘ํ•˜๊ณ  ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

.gradle dependencies { implementation "android.arch.lifecycle:common-java8:1.1.1" implementation 'android.arch.lifecycle:extensions:1.1.1' }

cc @matthew-carroll

Play ์Šคํ† ์–ด์— app.aab ๋ฒˆ๋“ค์„ ์—…๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. 64๋น„ํŠธ ๋ˆ„๋ฝ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๊ฐ€ ์‚ฌ๋ผ์กŒ์ง€๋งŒ Play ์Šคํ† ์–ด์—์„œ ์„ค์น˜ํ•œ ํ›„ ์•ฑ์ด ์‹คํ–‰๋  ๋•Œ ์ถฉ๋Œํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ œ์•ˆ?

๋˜ํ•œ ํ”„๋กœ๋•์…˜์—์„œ ๋ฆด๋ฆฌ์Šคํ•˜๊ธฐ ์œ„ํ•ด flutter build appbundle ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๊นŒ?

@sulaysumaria flutter doctor ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

Doctor summary (to see all details, run flutter doctor -v):
[โœ“] Flutter (Channel stable, v1.5.4-hotfix.2, on Mac OS X 10.14.5 18F132, locale en-IN)

[โœ“] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[โœ—] iOS toolchain - develop for iOS devices
    โœ— Xcode installation is incomplete; a full installation is necessary for iOS development.
      Download at: https://developer.apple.com/xcode/download/
      Or install Xcode via the App Store.
      Once installed, run:
        sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
    โœ— libimobiledevice and ideviceinstaller are not installed. To install with Brew, run:
        brew update
        brew install --HEAD usbmuxd
        brew link usbmuxd
        brew install --HEAD libimobiledevice
        brew install ideviceinstaller
    โœ— ios-deploy not installed. To install:
        brew install ios-deploy
    โœ— CocoaPods not installed.
        CocoaPods is used to retrieve the iOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without resolving iOS dependencies with CocoaPods, plugins will not work on iOS.
        For more info, see https://flutter.dev/platform-plugins
      To install:
        brew install cocoapods
        pod setup
[!] Android Studio (version 3.4)
    โœ— Flutter plugin not installed; this adds Flutter specific functionality.
    โœ— Dart plugin not installed; this adds Dart specific functionality.
[โœ“] VS Code (version 1.35.1)
[โœ“] Connected device (1 available)

! Doctor found issues in 2 categories.

@truongsinh

๋˜ํ•œ ์•ฑ ๋ฒˆ๋“ค์—์„œ apk๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์„ค์น˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์‹คํ–‰ ์‹œ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

$ bundletool build-apks --bundle=build/app/outputs/bundle/app.aab --output=app.apks
$ bundletool install-apks --apks app.apks

dev ์ฑ„๋„๋กœ ์ „ํ™˜ํ•˜์—ฌ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

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

๋˜ํ•œ ํ”„๋กœ๋•์…˜ ๋ฆด๋ฆฌ์Šค์— dev ์ฑ„๋„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๊นŒ?

์–ด๋จธ ๋ฏธ์•ˆํ•ฉ๋‹ˆ๋‹ค. ์ƒ์‚ฐ์šฉ์ด๋ผ๋ฉด ๋” ์กฐ์‹ฌํ• ํ…๋ฐ.

์ง€๊ธˆ์€ APK ๋นŒ๋“œ๋ฅผ ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. Google์—์„œ๋Š” apk ๋Œ€์‹  ๋ฒˆ๋“ค์„ ์—…๋กœ๋“œํ•  ๊ฒƒ์„ ์ œ์•ˆํ•˜์ง€๋งŒ ์•ˆ์ •์ ์ธ ๋ธŒ๋žœ์น˜์˜ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์—์„œ ์ˆ˜์ •๋˜๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

adb logcat์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๊ฒƒ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

[FATAL:flutter/runtime/dart_vm.cc(389)] Error while initializing the Dart VM: Snapshot not compatible with the current VM configuration: the snapshot requires 'product use_bare_instructions no-"asserts" causal_async_stacks no-bytecode arm-eabi softfp' but the VM has 'product use_bare_instructions no-"asserts" causal_async_stacks no-bytecode arm64-sysv'

stable ์ฑ„๋„์— ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/flutter/flutter/issues/19865์˜ ์†”๋ฃจ์…˜์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ build.gradle์—์„œ splits ์„น์…˜์„ ์ œ๊ฑฐํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

@sulaysumaria ์ˆ˜์ • ์‚ฌํ•ญ์€ ์•„์ง ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ˆ์ •์ ์ธ ์ƒํƒœ์ธ ๊ฒฝ์šฐ โ€“ flutter doctor ์ถœ๋ ฅ์— ํ‘œ์‹œ๋œ ๋Œ€๋กœ

[โœ“] Flutter (Channel stable, v1.5.4-hotfix.2, on Mac OS X 10.14.5 18F132, locale en-IN)

์ˆ˜์ • ์‚ฌํ•ญ์ด ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•ˆ์ •์ ์œผ๋กœ ๋นŒ๋“œํ•˜๋ ค๋ฉด ์ˆ˜์ • ์‚ฌํ•ญ์ด ์•ˆ์ •์ ์ผ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋•Œ๊นŒ์ง€๋Š” APK๋ฅผ ๋ณ„๋„๋กœ ์—…๋กœ๋“œํ•ด์•ผ ํ•  ๋•Œ๊นŒ์ง€ 1.7.x ์ •๋„์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์˜ค... ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @pythoneer . ์•ˆ์ •์ ์ธ ์ฑ„๋„์— ์–ธ์ œ์ฏค ๋‚˜์˜ค๋Š”์ง€ ์•„์‹œ๋‚˜์š”?

@sulaysumaria ๋ฌธ์ œ ์—†์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ์–ธ๊ธ‰๋ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ 7์›” ์ดˆ์— ์ด๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

dev ์ฑ„๋„์—์„œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. flutter build appbundle --target-platform android-arm,android-arm64 ํ•˜๊ณ  ๋ฒˆ๋“ค์„ ํ”Œ๋ ˆ์ด ์Šคํ† ์–ด์— ์—…๋กœ๋“œํ–ˆ๋Š”๋ฐ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

@sulaysumaria - ๋งˆ์Šคํ„ฐ ๋˜๋Š” ๊ฐœ๋ฐœ์ž ์ฑ„๋„์—์„œ ์ด๋ฏธ ์ค€๋น„๋œ ์ง€์นจ ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@julindra -ignorewarnings ๋ฅผ 'proguard-rules.pro ์ถ”๊ฐ€ํ•˜๋ฉด ํ•ด๋‹น ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ android.arch.* ํŒจํ‚ค์ง€๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์€ android/app/build.gradle ๋ฅผ ํŽธ์ง‘ํ•˜๊ณ  ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

dependencies {
  implementation "android.arch.lifecycle:common-java8:1.1.1"
  implementation 'android.arch.lifecycle:extensions:1.1.1'
}

cc @matthew-carroll

๊ฐ์‚ฌ ํ•ด์š”. ์ €๋Š” dev ์ฑ„๋„์„ ์‚ฌ์šฉํ•˜๊ณ  -ignorewarnings ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

flutter build appbundle ๋กœ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.
https://github.com/flutter/flutter/issues/18494#issuecomment -489807239

@blasten ์ด ์‹œ์ ์—์„œ

@cbracken , ์ง€๊ธˆ์ด๋‚˜ ๋‹ค์Œ ์•ˆ์ •์ ์ธ ๋ฆด๋ฆฌ์Šค ์ดํ›„์— ๋‹ซ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Play ์Šคํ† ์–ด์—์„œ ARM ์•ฑ์„ ์„ค์น˜ํ•˜๊ณ  libhoudini๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ZenFone 2 ์žฅ์น˜ ๋ฐ ์œ ์‚ฌํ•œ x86 ์žฅ์น˜์™€์˜ ๋น„ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋ฅผ ๊ณ„์† ํ•ด๊ฒฐํ•  ๊ณ„ํš์ž…๋‹ˆ๊นŒ?

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

๋˜ํ•œ ํ”„๋กœ๋•์…˜ ๋ฆด๋ฆฌ์Šค์— dev ์ฑ„๋„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๊นŒ?

์ €๋Š” dev๊ฐ€ ์•„๋‹Œ ๋ถ„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•œ ์ ์ด ์—†์œผ๋ฉฐ ์•ฑ์ด ์›ํ™œํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ๊ฒฐ์ฝ” ์‹ค๋ง์‹œํ‚ค์ง€ ์•Š๋Š” ์ง€์ ์„ ๋ฏฟ์œผ์‹ญ์‹œ์˜ค. @sulaysumaria

@matthewlloyd Play ์Šคํ† ์–ด ํŒ€์œผ๋กœ๋ถ€ํ„ฐ ๊ธฐ์กด ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ arm->x86 ๋ณ€ํ™˜๊ธฐ์™€ ์ž˜ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ช…์‹œ์  x86 ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚ซ๋‹ค๊ณ  ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. - ๊ทธ๋Ÿฐ๋ฐ ์ตœ๊ทผ์— Dart ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ํŒ€์—์„œ ๊ฐœ์„ ํ–ˆ๋Š”๋ฐ, ๋ฒˆ์—ญ์ด ์ž˜ ๋˜์—ˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋„ํ•ด ๋ณด๊ณ  ์•Œ๋ ค์ฃผ์„ธ์š”. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ผ๋ฐ˜์ ์œผ๋กœ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ๋””๋ฒ„๊น…/ํ”„๋กœํŒŒ์ผ๋ง์— ์‚ฌ์šฉ๋˜๋Š” x86์šฉ JIT ๋ฒ„์ „์„ ๋นŒ๋“œํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@blasten ์ •๋ณด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๋Ÿฌํ•œ ์žฅ์น˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์•ฝ๊ฐ„์˜ ๊ตฌ์†์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋ถˆ๋งŒ์„ ํ’ˆ์€ ZenFone 2 ์‚ฌ์šฉ์ž์˜ ์ต๋ช…์˜ Play ์Šคํ† ์–ด ๋ฆฌ๋ทฐ๊ฐ€ ๋‘ ๊ฐœ๋ฟ์ด๋ฏ€๋กœ ํ…Œ์ŠคํŠธํ•  ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ฐœ์„ ๋œ ์ฝ”๋“œ๊ฐ€ ์‹ค์ œ๋กœ ํ•ด๋‹น ์žฅ์น˜์—์„œ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ๋•Œ๊นŒ์ง€ ๋‹ค๋ฅธ ์•ฑ ๋ฒˆ๋“ค ๋นŒ๋“œ๋ฅผ ํ‘ธ์‹œํ•˜๊ธฐ์—๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์œ„ํ—˜์ด ๋„ˆ๋ฌด ํฝ๋‹ˆ๋‹ค. Play ์Šคํ† ์–ด์— ์ด๋Ÿฌํ•œ ๊ธฐ๊ธฐ๋ฅผ ์ œ์™ธํ•˜๋„๋ก ์ง€์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋Š” ํ•œ Google์—์„œ ํ…Œ์ŠคํŠธ ๋ฐ ํ™•์ธ์„ ๊ฑฐ์น˜๊ฑฐ๋‚˜ ๋” ์ด์ƒ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๊ณ  ํ™•์ธ๋  ๋•Œ๊นŒ์ง€ Flutter์˜ ์ด์ „ ๋ฒ„์ „(๋ฐ 32๋น„ํŠธ APK)์œผ๋กœ ๋งŒ๋“  ๋นŒ๋“œ๋ฅผ ๊ณ„์† ์ถœ์‹œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ. ์ƒˆ๋กœ์šด appbundle/.so ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋” ๋งŽ์€ ์•ฑ์ด ์Šคํ† ์–ด์— ํ‘ธ์‹œ๋  ๋•Œ๊นŒ์ง€๋Š” ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋‹ค๋ฆด๊ฒŒ...

์—ฌ์ „ํžˆ ์ฐพ๊ณ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌํ„ฐ ๋นŒ๋“œ apk --split-per-abi
๋นŒ๋“œ gradle์„ ํŽธ์ง‘ ํ•œ ํ›„์—๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
https://flutter.dev/docs/deployment/android#build -an-apk์—์„œ

๋Œ€์‹  ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

  1. ํ”Œ๋Ÿฌํ„ฐ ๋นŒ๋“œ ์•ฑ ๋ฒˆ๋“ค
  2. ๊ทธ๋Ÿฐ ๋‹ค์Œ app.aab ๋ฅผ ์—…๋กœ๋“œ

32๋น„ํŠธ์™€ 64๋น„ํŠธ ๋ชจ๋‘์— ๋Œ€ํ•ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์œผ๋ฉฐ '๋ฆด๋ฆฌ์Šค๊ฐ€ Play 64๋น„ํŠธ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ค€์ˆ˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.'๋ผ๋Š” ๊ฒฝ๊ณ ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

@juliengit2 ๋•๋ถ„์— flutter build appbundle ๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ v1.5.0์ด ์žˆ์—ˆ๊ณ  ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— flutter ๋ฒ„์ „๋„ ์–ธ๊ธ‰ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ž‘๋™ํ•˜๋ ค๋ฉด ์—…๋ฐ์ดํŠธ(ํ˜„์žฌ v1.7.9)ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

@PerechicK , ์ตœ๊ทผ์— ์•ˆ์ •์ ์ธ ์ฑ„๋„ ๋˜๋Š” ๊ฐœ๋ฐœ ์ฑ„๋„์„ ์˜๋ฏธ ํ–ˆ์Šต๋‹ˆ๊นŒ?

์˜ค๋Š˜ ์—ฌ๊ธฐ์— ํ‘œ์‹œ๋˜๋Š” DEV ์ฑ„๋„: https://flutter.dev/docs/development/tools/sdk/releases?tab=windows

์ด ๋ฌธ์ œ๊ฐ€ ์–ด๋Š ๋ฒ„์ „๋ถ€ํ„ฐ ์ˆ˜์ •๋˜์—ˆ๋Š”์ง€๋Š” ์•„์ง ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์•ˆ์ •์ ์ธ ๋ธŒ๋žœ์น˜ ์ด์™ธ์˜ ๋‹ค๋ฅธ ๊ฒƒ์„ ์‚ฌ์šฉํ•  ๋•Œ " @UiThread ๋กœ ํ‘œ์‹œ๋œ ๋ฉ”์„œ๋“œ๋Š” ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค"๋ผ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๋Š” ์ด flutter sdk ์ปค๋ฐ‹ https://github ์™€ ํ•จ๊ป˜ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค

1.5.4-hotfix.2 ์•ˆ์ • ๋ธŒ๋žœ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ 64๋น„ํŠธ ์•ฑ ๋ฒˆ๋“ค์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@uj์ด ๋ฌธ์ œ https://github.com/flutter/flutter/issues/33562์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์˜ ์˜ค๋ฅ˜์™€ ๊ด€๋ จ ๋  ์ˆ˜ firebase_database์„ .

Flutter Docs ์— ๋”ฐ๋ฅด๋ฉด 1.7.4+์—์„œ 64๋น„ํŠธ๊ฐ€ ๋„์ž…๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”, firebase_database๊ฐ€ ์•„๋‹ˆ๋ผ ์‹ค์ œ๋กœ OneSignal์ด์ง€๋งŒ ์œ ์ผํ•œ ์†”๋ฃจ์…˜์€ "Flutter์˜ ์•ˆ์ •์ ์ธ ๋ถ„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ"์ž…๋‹ˆ๋‹ค.

1.5.4-hotfix.2 ์•ˆ์ • ๋ธŒ๋žœ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ 64๋น„ํŠธ ์•ฑ ๋ฒˆ๋“ค์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@uj 1.5.4-hotfix.2 ํ•˜์—ฌ 64๋น„ํŠธ ์•ฑ ๋ฒˆ๋“ค์„ ๋นŒ๋“œํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ 2๊ฐœ์˜ apk๋ฅผ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” 32๋น„ํŠธ์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” 64๋น„ํŠธ์ž…๋‹ˆ๋‹ค. ๋‘ apk๋ฅผ ๋ชจ๋‘ Google ์Šคํ† ์–ด์— ์—…๋กœ๋“œํ•˜์—ฌ ๊ฒฝ๊ณ ๋ฅผ ํ•ด๊ฒฐํ•˜์„ธ์š”.

Flutter 1.5.4-hotfix.2 ์•ฑ๋ฒˆ๋“ค์€ ํ˜„์žฌ 32๋น„ํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ( flutter build appbundle -h )๋งŒ ๋นŒ๋“œํ•˜๋Š” android-arm์„ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด flutter build appbundle --target-platform=android-arm64 ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๊ธฐ๋ณธ ๋Œ€์ƒ์„ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์€ ํ˜„์žฌ v1.7.8+hotfix.2 ๋ฆด๋ฆฌ์Šค์˜ ๋ฒ ํƒ€ ์ฑ„๋„์—์„œ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

@tvolkert - ์ข‹์€ ์†Œ์‹, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ • ์‚ฌํ•ญ์ด ์–ธ์ œ ์•ˆ์ •ํ™” ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ๋ง์”€ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@angel1st https://en.wikipedia.org/wiki/Forward-looking_statement ๐Ÿ™‚

(์šฐ๋ฆฌ๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ๊ทธ๊ฒƒ์„ ์‹คํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค)

@tvolkert - 64๋น„ํŠธ APK์˜ Google ๋งˆ๊ฐ์ผ๊นŒ์ง€ ์•ฝ 3์ฃผ
๊ทธ ์™ธ์—๋„ ์ง€๋‚œ ๋ช‡ ๋‹ฌ ๋™์•ˆ์˜ ๋…ธ๋ ฅ๊ณผ ๊ฒฐ๊ณผ๋ฌผ์— ์ •๋ง ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ๋ถ„์ด ์šฐ๋ฆฌ์˜ ์ž…์žฅ์ด ๋˜์–ด ๊ทธ ๊ด€์ ์—์„œ ์‚ฌ๋ฌผ์ด ์–ด๋–ป๊ฒŒ ๋ณด์ด๋Š”์ง€ ๋ณผ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์ดํ•ด์™€ ๋…ธ๋ ฅ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

@angel1st ์ ˆ๋Œ€. ์ด์ „ ๋ฐœํ‘œ์— ๋”ฐ๋ฅด๋ฉด, ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ 7์›” ์ดˆ๊นŒ์ง€ ์•ˆ์ •์‹œํ‚ค๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Unity 2017.4.20 ๋˜๋Š” 2019.1.2์— ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ
ํƒ€๊ฒฉ ๋งํฌ์— ์žˆ์Šต๋‹ˆ๋‹ค : https://stackoverflow.com/questions/56687339/what-is-this-error-in-build-adroid-and-build-app-bundle-in-unity-2017-4-17 ๋„์™€์ฃผ์„ธ์š” ๋‚˜๋Š” 2 ๊ฐœ์›” ๋™์•ˆ์ด ๋ฌธ์ œ์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ธฐํ•œ์ด ์ด‰๋ฐ•ํ•˜๋‹ค

@DoubleHub ๋ฒ ํƒ€ ์ฑ„๋„๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜๋Š” 7์›” 8์ผ์— ์•ˆ์ •์ ์ธ ๋ฒ„์ „์ด ์ถœ์‹œ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์‹ญ์‹œ์˜ค.

@abc873693 ์ฝ์–ด ๋‚˜์˜ฌ๋•Œ ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ๋งˆ์นจ๋‚ด ๊ณต์‹์ ์œผ๋กœ ํ•ด๊ฒฐ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค!

@abc873693 _beta_ ์ฑ„๋„์„ ์‚ฌ์šฉํ•˜์—ฌ Play ์Šคํ† ์–ด์— Android ์•ฑ์„ ๊ฒŒ์‹œํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ถœ์‹œ ์ „ ๋ณด๊ณ ์„œ์— ์ ‘๊ทผ์„ฑ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•ฑ์ด ์‹œ์ž‘ ํ™”๋ฉด์„ ๋„˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์žฅ์น˜์˜ ๋ชจ๋“  ์Šคํฌ๋ฆฐ์ƒท์€ ์‹œ์ž‘ ํ™”๋ฉด์— ์œ ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•œ ํ•ด๊ฒฐ์ฑ…์€ ๋‹จ์ˆœํžˆ STABLE ์ฑ„๋„๋กœ ์ „ํ™˜ํ•˜๊ณ  --target-platform ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ ๋ฒˆ๋“ค์„ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„,

v1.7.8+hotfix.2 ์ด ์•ˆ์ •์ ์ธ ์ฑ„๋„์— ๋ฆด๋ฆฌ์Šค๋˜์—ˆ์œผ๋ฏ€๋กœ ์ด ์ˆ˜์ • ์‚ฌํ•ญ์€ ์ด์ œ ๋ชจ๋“  ์ฑ„๋„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ๋‚ด์‹ฌ์„ ๊ฐ–๊ณ  ๋„์™€์ฃผ์‹  ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

@tvolkert ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์—ฌ๊ธฐ์„œ ์–ธ๊ธ‰ํ•œ ๊ด€์ฐฐ์ด ๋” ์ด์ƒ ์•ˆ์ •์ ์ธ ์ฑ„๋„์— ์—†๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค!

@tvolkert ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์— ์ด v1.7.8+hotfix.2 ์„ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋‚˜์š”?

@jaasaria ์ด ๋ฌธ์ œ๋Š” ๋ฆด๋ฆฌ์Šค์šฉ ์•ฑ ๋นŒ๋“œ์™€ ๊ด€๋ จ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•ˆ์ •์ ์ธ ์ƒํƒœ๋ผ๋ฉด ํ”Œ๋Ÿฌํ„ฐ ์„ค์น˜๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋ณด๊ณ ๋œ ๋ฌธ์ œ๋Š” ์ด ๋งํฌ์— ๋”ฐ๋ผ ์•ฑ ๋ฒˆ๋“ค์„ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ๊ณผ

@jaasaria ๊ทธ๋ƒฅ ์‹คํ–‰: $ flutter channel stable && flutter upgrade

@MaikuB ํ•œ ๋‹ฌ ์ „์— ๋‚ด src ํŒŒ์ผ์„ ๋งŒ๋“ค์—ˆ๊ณ  ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•  ๋•Œ๋งˆ๋‹ค playstore x64 ์˜ค๋ฅ˜๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด flutter build appbundle ๋Œ€์‹  flutter build appbundle --target-platform=android-arm64 ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@dbokhin ๋ฐฉ๊ธˆ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜์—ˆ๊ณ  ์šด ์ข‹๊ฒŒ๋„ ๋‚ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์ค‘๋‹จ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. :) ๊ฐ์‚ฌ ํ•ด์š”

@juliengit2 ๋•๋ถ„์— flutter build appbundle ๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ v1.5.0์ด ์žˆ์—ˆ๊ณ  ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— flutter ๋ฒ„์ „๋„ ์–ธ๊ธ‰ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ž‘๋™ํ•˜๋ ค๋ฉด ์—…๋ฐ์ดํŠธ(ํ˜„์žฌ v1.7.9)ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ  ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

ํ”Œ๋Ÿฌํ„ฐ ๋ฒ„์ „ 1.7.8+hotfix.3์„ ์‚ฌ์šฉํ•˜๋ฉด "flutter build appbundle"์ด 32๋น„ํŠธ ๋ฐ 64๋น„ํŠธ ๋ชจ๋‘์—์„œ app.aab๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๊นŒ?

์ด์ƒํ•˜๊ฒŒ ์ฑ„๋„์ด ์•ˆ์ •์ ์ธ ์ƒํƒœ์—์„œ 1.7.8+hotfix.3์œผ๋กœ ์‹œ๋„ํ–ˆ๋Š”๋ฐ ํ”Œ๋ ˆ์ด์Šคํ† ์–ด ๊ฒฝ๊ณ ๊ฐ€ ๋‹ค์‹œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

"์ด ๋ฆด๋ฆฌ์Šค๋Š” Google Play 64๋น„ํŠธ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ค€์ˆ˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค..."

_flutter build appbundle_ ์ดํ›„์— ๋ฒˆ๋“ค์„ ์—…๋กœ๋“œํ•  ๋•Œ

๋‚˜๋Š” ๋˜ํ•œ flutter๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ƒˆ๋กœ์šด Flutter ์„ค์น˜๋กœ : ๋™์ผํ•œ ๊ฒฐ๊ณผ

๋‚ด ์„ค์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
m

์–ด๋–ค ์ƒ๊ฐ??

@juliengit2 .aab ํŒŒ์ผ์„ ์ผ๋ฐ˜ zip์œผ๋กœ ์—ด๊ณ  base/lib ํด๋”์— armeabi-v7a , arm64-v8a ํด๋”๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ

๋‚ด ์•ฑ "flutter build appbundle" lib ํด๋”์— v8a ๋ฐ v7a๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ์—…๋ฐ์ดํŠธ๋ฅผ ํ‘ธ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚ด ๋จธ๋ฆฌ์˜ ์ด๋ฉ”์ผ์— ๋‹ค๋ฅธ ๊ฒฝ๊ณ ๊ฐ€ ์˜ค๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ ๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ๋จผ APK์˜ ๋˜ ๋‹ค๋ฅธ ์œ ์‚ฌํ•œ ์‚ฌ๋ก€ https://github.com/flutter/flutter/issues/18494#issuecomment -509937209

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด build.gradle ์—์„œ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

ndk {
    abiFilters "armeabi-v7a", "x86", "armeabi", "mips"
}

๊ทธ๋ฆฌ๊ณ  ๊ฒฝ๊ณ ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

(abifilter๋ฅผ ์œ ์ง€ํ•˜๋ฉด _flutter build appbundle_์„ ์‚ฌ์šฉํ•ด๋„ "release is not compliant"๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๊ณ„์† ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์„ฑ๊ณต์ ์œผ๋กœ ์•ฑ ๋ฒˆ๋“ค์„ ๊ตฌ์ถ•ํ–ˆ์ง€๋งŒ ํ”Œ๋ ˆ์ด ์Šคํ† ์–ด์— ์—…๋กœ๋“œํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค...
Android App Bundle์„ ์—…๋กœ๋“œํ•˜๋ ค๋ฉด Google Play ์•ฑ ์„œ๋ช…์— ๋“ฑ๋กํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
Android Studio์—์„œ ํ‚ค๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค. ๋นŒ๋“œ ๋ฉ”๋‰ด์—์„œ ์„œ๋ช…๋œ ๋ฒˆ๋“ค/APK ์ƒ์„ฑ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ฒˆ๋“ค ์˜ต์…˜์„ ์„ ํƒํ•˜๊ณ  ๋‹ค์Œ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”๋œ ํ‚ค ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์„ ํƒํ•˜๊ณ  ๋‹ค์Œ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ๋ชจ๋“ˆ์—์„œ ์ง์ ‘ ์•”ํ˜ธํ™”๋œ ํ‚ค๋ฅผ ๋‚ด๋ณด๋‚ด๋ ค๊ณ  ํ•˜์ง€๋งŒ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์„ธ์Šค๋ฅผ ์™„๋ฃŒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์„ธ์Šค '๋ช…๋ น '/Users/oaacelasu/Documents/flutter/bin/flutter''๊ฐ€ 0์ด ์•„๋‹Œ ์ข…๋ฃŒ ๊ฐ’ 1๋กœ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

bref ๊ทธ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค... flutter build appbundle ๋ช…๋ น์—์„œ ์ง์ ‘ ์•ฑ์„ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•œ ์•”ํ˜ธํ™”๋œ ํ‚ค๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋‹ค๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

ํ”Œ๋ ˆ์ด์Šคํ† ์–ด์—์„œ appbundle์„ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋Š”๋ฐ,
๊ทธ๋Ÿฌ๋‚˜ Android 6.0 arm 64์—์„œ๋Š” libflutter.so๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์ž‘ ์‹œ ์ถฉ๋Œํ–ˆ์œผ๋ฉฐ libflutter.so๋ฅผ ํ™•์ธํ•œ ํ›„ aab arm 64์— ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@matthewlloyd , ๋กœ์ปฌ ํฌ๋กฌ๋ถ์œผ๋กœ ์ด๊ฒƒ์„ ์žฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค(ํฌ๋กฌ๋ถ์ด ์›”์š”์ผ์— 3์ฃผ ๋™์•ˆ ์—ฌํ–‰์„ ๋– ๋‚  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ํ™•์ธํ•ด์•ผ ํ•จ). ๋Œ€๋ถ€๋ถ„์˜ x86 ํฌ๋กฌ๋ถ์— ๋Œ€ํ•ด ์žฌ์ƒ์‚ฐํ•ด์•ผ _ํ•ด์•ผ_ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. x86 ์ „ํ™”๋ณด๋‹ค ์ด๋Ÿฌํ•œ ํฌ๋กฌ๋ถ์ด ๋” ๋งŽ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํŒ€์€ ์ตœ๊ทผ Dart ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ–ˆ๋Š”๋ฐ, ๊ทธ๊ฒƒ์ด ๋ฒˆ์—ญ์ด ์ž˜ ๋˜์—ˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋„ํ•ด ๋ณด๊ณ  ์•Œ๋ ค์ฃผ์„ธ์š”. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ผ๋ฐ˜์ ์œผ๋กœ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ๋””๋ฒ„๊น…/ํ”„๋กœํŒŒ์ผ๋ง์— ์‚ฌ์šฉ๋˜๋Š” x86์šฉ JIT ๋ฒ„์ „์„ ๋นŒ๋“œํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@blasten , ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋˜ ํŠน์ • ๋ฒ„์ „์˜ Dart๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? 2.3.1๋กœ ์žฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค(ํ”Œ๋Ÿฌํ„ฐ 1.7.8+hotfix.2 ํฌํ•จ). 2.4.0์œผ๋กœ ํ…Œ์ŠคํŠธํ• ๊นŒ์š”?

๋˜ํ•œ ์•ŒํŒŒ ๋นŒ๋“œ๋ฅผ ์ถœ์‹œํ–ˆ์„ ๋•Œ ์žฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. Play ์Šคํ† ์–ด๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์•ฑ ๋ฒˆ๋“ค์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•„์ง ์กฐ์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@wreppun ๋ฏธ๋ฆฌ ์•Œ๋ ค ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ Google์—์„œ ์ธ์ •ํ•œ ๊ฒƒ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ์ง€๊ธˆ์€ ์ƒˆ๋กœ์šด ์Šคํƒ€์ผ์˜ AAB๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ณต๊ฐœํ•˜๋Š” ๊ฒƒ์„ ๋ณด๋ฅ˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํŠน์ • ํฌ๋กฌ๋ถ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ถฉ๋Œ ๋กœ๊ทธ๋ฅผ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@matthewlloyd ์ด๊ฒƒ์€ Play ์Šคํ† ์–ด ์ถฉ๋Œ ๋กœ๊ทธ์— ๋‚˜ํƒ€๋‚œ ๊ฒƒ์ž…๋‹ˆ๋‹ค:

java.lang.UnsatisfiedLinkError: 
  at java.lang.Runtime.loadLibrary0 (Runtime.java:984)
  at java.lang.System.loadLibrary (System.java:1530)
  at io.flutter.view.FlutterMain.startInitialization (FlutterMain.java:122)
  at io.flutter.view.FlutterMain.startInitialization (FlutterMain.java:99)
  at io.flutter.app.FlutterApplication.onCreate (FlutterApplication.java:22)
  at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1024)
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:5549)
  at android.app.ActivityThread.-wrap2 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1595)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:154)
  at android.app.ActivityThread.main (ActivityThread.java:6320)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:891)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:781)

์‚ฌ์šฉ์ž๊ฐ€ ํ†ต๊ณ„ ๊ณต์œ ๋ฅผ ์„ ํƒํ•œ ๊ฒฝ์šฐ (์ด์ „) ์ถฉ๋Œ ๋กœ๊ทธ ์ค‘ ์ผ๋ถ€์— ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๊ธฐ๋Š” HP ํฌ๋กฌ๋ถ x360์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๊ตฌ์„ฑ์˜ 100%์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์œ ๊ฐ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ SDK ๋ฐ ์žฅ์น˜์—์„œ ๋” ๋‚˜์€ ํ…Œ์ŠคํŠธ ๋ฒ”์œ„๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋™์•ˆ Firebase ํ…Œ์ŠคํŠธ ๋žฉ์—์„œ ๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ์„ค์ •ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ์‹œ์ ์—์„œ ์šฐ๋ฆฌ๊ฐ€ ์ด ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฐ€์žฅ ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์€ ์•„๋งˆ๋„ ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜๊ณ  ์ด ๋ฌธ์ œ์— ๋‹ค์‹œ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. @tvolkert ์™€ ์ €๋Š” ๊ฐ๊ฐ์„ ์‚ดํŽด

Dart ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์•ฝ๊ฐ„ ์กฐ์ •ํ•ด์•ผ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’์Šต๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ์—๋Š” ํŠน์ • ํ”„๋กœ์„ธ์„œ ํŠน์„ฑ์ด ์žˆ๋Š” CPU ๋˜๋Š” ์—๋ฎฌ๋ ˆ์ดํ„ฐ์— ๋Œ€ํ•ด ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. x86 Chromebook์—์„œ ์ง์ ‘ ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š๊ณ (์•„์ง ํ•ด๋ณด์ง€ ์•Š์€) ํ™•์‹คํ•˜๊ฒŒ ๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์ด ๊ฐ๊ฐ์— ๋Œ€ํ•ด ์ƒˆ ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜์—ฌ ๋‚˜๋จธ์ง€ ๋ฌธ์ œ๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@wreppun ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค - ๋‚ด ์•ฑ์˜ ์ถฉ๋Œ ๋ณด๊ณ ์„œ๋ฅผ ํ™•์ธ

@blasten ๊ฑฑ์ •ํ•˜์ง€ ๋งˆ์„ธ์š”. ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์ƒˆ๋กœ์šด ์•ฑ๋ฒˆ๋“ค์ด Asus ZenFone 2 ๊ธฐ๊ธฐ์—์„œ ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค๋ฉด, ๊ทธ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์—†์ง€๋งŒ Google์˜ ๋ชจ๋ฐ”์ผ ํ…Œ์ŠคํŠธ ์—ฐ๊ตฌ์†Œ์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@matthewlloyd Firebase ํ…Œ์ŠคํŠธ ๋žฉ์—์„œ "Asus ZenFone"์ด ์—†์Šต๋‹ˆ๋‹ค. ์–ด๋–ค SDK ๋ฒ„์ „์ž…๋‹ˆ๊นŒ? ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ํŠน์ • ๋ฒ„์ „์˜ Android SDK๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค SDK ๋ฒ„์ „์ž…๋‹ˆ๊นŒ? ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ํŠน์ • ๋ฒ„์ „์˜ Android SDK๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ˜‚

์•ˆ๋…•ํ•˜์„ธ์š” ํ”Œ๋Ÿฌํ„ฐํŒ€์ž…๋‹ˆ๋‹ค.
์ด ์ฃผ์ œ ์ƒํƒœ์— ๋Œ€ํ•ด ๊ฐ•์กฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ œ ์ž…์žฅ์—์„œ๋Š” ๋‘ ๊ฐ€์ง€ ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ˜„์žฌ ์•ˆ์ •์ ์ธ ํ”Œ๋Ÿฌํ„ฐ ๋ฒ„์ „ 1.7.8+hotfix.3 ์€ ์•ˆ์ •์ ์ธ apk๋ฅผ ๋นŒ๋“œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. - ์ตœ์†Œํ•œ split-per-abi ๋Š” ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. - arm32์—๋Š” ํšŒ๊ท€ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ผ๋ถ€ arm32 ์žฅ์น˜์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค . ์ด ๋ฌธ์ œ๊ฐ€ ์–ธ์ œ ์ˆ˜์ •๋ ์ง€๋Š” ์•„์ง ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • 8์›” 1์ผ ๋งˆ๊ฐ์ผ - ์•ฝ ์ผ์ฃผ์ผ ์•ˆ์— ์šฐ๋ฆฌ ๊ฐœ๋ฐœ์ž๋“ค์€ Google Play ์Šคํ† ์–ด์— ์ƒˆ๋กœ์šด Flutter ์•ฑ์„ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ์ถœ์‹œํ•  ์ˆ˜ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ Flutter ๋ฒ„์ „ ๋ฌธ์ œ(์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋Œ€๋กœ)์™€ ๋‚จ์€ ์‹œ๊ฐ„์„ ๊ณ ๋ คํ•  ๋•Œ ์›”๋ง ์ด์ „์— ์•ˆ์ •์ ์ธ ์ฑ„๋„์—์„œ ์ˆ˜์ •์„ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒƒ์€ ์‹คํ˜„ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์—ฌ๋Ÿฌ๋ถ„ ์ค‘ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋งˆ์ˆ  ์ง€ํŒก์ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋Š” ํ•œ :- ))

์œ„์˜ ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ IMO๊ฐ€ ๊ฐœ๋ฐœ์ž๋กœ์„œ ์šฐ๋ฆฌ์—๊ฒŒ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋น„์ƒ ๊ณ„ํš์„ ์ œ์•ˆํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

  • ํ”Œ๋Ÿฌํ„ฐ ์•ˆ์ • ์ฑ„๋„์„ hotfix.2 ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋กค๋ฐฑ
  • 8์›” 1์ผ ๋งˆ๊ฐ์ผ์„ ๋‘ ๋‹ฌ ์—ฐ๊ธฐ - ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์•ฝ๊ฐ„์˜ ์—์Šค์ปฌ๋ ˆ์ด์…˜์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€๋งŒ ๊ฐœ๋ฐœ์ž๊ฐ€ 8์›” 1์ผ ์ดํ›„์— Flutter ํ”„๋ ˆ์ž„์›Œํฌ ๋ฌธ์ œ๋กœ ์•ˆ์ •์ ์ธ Flutter ์•ฑ์„ ์ถœ์‹œํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์–ผ๋งˆ๋‚˜ ์‹ฌ๊ฐํ•œ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋Š”์ง€ ์ดํ•ดํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ €๋Š” ์ €๋ฅผ ๋Œ€์‹ ํ•ด์„œ๋งŒ ๋งํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ณ„์•ฝ์ด ์žˆ๋Š” ๊ณ ๊ฐ์ด ์žˆ๊ณ  Google์ด ์ž์ฒด ์ œํ’ˆ์— ๋Œ€ํ•ด ๋” ๋‚˜์€ ์ง€์›์„ ์ œ๊ณตํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— React Native์—์„œ Flutter๋กœ ์ด๋™ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ์™€ ์ง€์›ํ•ด์•ผ ํ•  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ด์ œ Google์—์„œ 64๋น„ํŠธ apk ๋ฒ„์ „์„ ์ถœ์‹œํ•˜๋„๋ก ๊ฐ•์š”ํ•˜๋Š” ๋™์‹œ์— Google์—์„œ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ํ„ฐ๋ฌด๋‹ˆ์—†๋Š” ์ƒํ™ฉ์— ์ฒ˜ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ, Flutter ํŒ€์ด Google Play์™€ ๊ฐ™์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์••๋‹ˆ๋‹ค. ํŒ€์ด์ง€๋งŒ ๋‚ด๊ฐ€ ์„œ์žˆ๋Š” ๊ณณ - ๋‹น์‹ ์€ ๊ฐ™์€ ์‚ฌ์—…์ฒด์ž…๋‹ˆ๋‹ค).
Google์ด ์ œ์‹œ๊ฐ„์— ์ œ๊ณตํ•˜์ง€ ๋ชปํ•˜๋ฉด Flutter์˜ ๊ฐ•๋ ฅํ•œ ๋ฐ˜๋ฐœ๋กœ ์ด์–ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 8์›” 1์ผ ์ดํ›„ ๋งค์ผ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์‹ ๋ขฐ์„ฑ์ด ์ค„์–ด๋“ค๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
์ œ ๋ง์ด ์กฐ๊ธˆ ๋” ๊ฐ•ํ•˜๊ฒŒ ๋“ค๋ฆฌ์…จ๋‹ค๋ฉด ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ž ์‹œ๋งŒ ์ œ ์ž…์žฅ์ด ๋˜์…จ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฌ๋“ ์ง€ - ์ด๊ฒƒ์— ํˆฌํ‘œํ•ด ์ฃผ์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฌ๋ฉด ์šฐ๋ฆฌ์˜ ๋ชฉ์†Œ๋ฆฌ๊ฐ€ ๋“ค๋ฆด ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

์ €๋„ ์ด์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค... ํ•˜์ง€๋งŒ ๋น„์ƒ ๊ณ„ํš์œผ๋กœ ์ด์ „ ๋ฆด๋ฆฌ์Šค๋กœ ๋กค๋ฐฑํ•˜์ง€ ์•Š๊ณ  dev ์ฑ„๋„๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค....

์ œ ๊ฐœ์ธ์ ์ธ ๊ฒฝํ—˜์œผ๋กœ๋Š” ์ €๋„ ์ฒ˜์Œ์— dev ์ฑ„๋„ i๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ถˆํŽธํ–ˆ์Šต๋‹ˆ๋‹ค. stable ์ฑ„๋„์„ ๊ณ„์† ์“ฐ๋ ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์•ˆ์ •์ ์ด๊ฑฐ๋“ ์š”!... ๊ทธ๋Ÿฐ๋ฐ ์ง€๊ธˆ์€ dev ์ฑ„๋„์„ ์‚ฌ์šฉํ•˜๊ณ  ํ”Œ๋ ˆ์ด์Šคํ† ์–ด์—์„œ ์•ฑ ๋ฒˆ๋“ค์„ ์ด์šฉํ•˜์—ฌ ์•„๋ฌด ๋ฌธ์ œ ์—†์ด ์•ฑ์„ ์ถœ์‹œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.. ..

๋‘˜ ๋‹ค Google ์ œํ’ˆ์ด๋ฏ€๋กœ ๋ฐœ์ƒํ•ด์„œ๋Š” ์•ˆ๋˜๋Š” ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค ...

๋‚ด๊ฐ€ ์ œ์‹œํ•œ ๊ฒƒ์€ Google์—์„œ ์ œ์•ˆํ•œ apk ์•„๋‹Œ aab ์‚ฌ์šฉํ•˜์—ฌ ์—…๋ฐ์ดํŠธ ํ‘ธ์‹œ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋” ๊ฐ„๋‹จํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค...

@angel1st ๊ฐ™์€ ๋ฌธ์ œ ๊ฐ™์€ ๋ฌธ์ œ ๊ฐ™์€ ์‹ ๋ฐœ
@sulaysumaria dev ์ฑ„๋„๋กœ ์ „ํ™˜ํ•˜๋ฉด libapp.so ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋‚˜์š”?
๋งˆ์Šคํ„ฐ ์ฑ„๋„์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์—

๋‚ด๊ฐ€ ์ œ์‹œํ•œ ๊ฒƒ์€ Google์—์„œ ์ œ์•ˆํ•œ apk๊ฐ€ ์•„๋‹Œ aabs๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—…๋ฐ์ดํŠธ ํ‘ธ์‹œ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋” ๊ฐ„๋‹จํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค...

@sulaysumaria - ๋ณด์ด๋Š” ๊ฒƒ๋งŒํผ ๊ฐ„๋‹จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ €๋ฅผ ๋ฏฟ์œผ์„ธ์š”... ๋˜ํ•œ dev ์ฑ„๋„๋กœ ๋‹ค์‹œ ์ „ํ™˜ํ•˜๋ฉด ํƒ€์‚ฌ ํŒจํ‚ค์ง€ ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

@angel1st , ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋กค๋ฐฑ์ด ์œ ์ผํ•œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค... ํ•˜์ง€๋งŒ ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ƒˆ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค... ์ €๋„ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ•˜๋‚˜๋กœ ๊ทธ๋Ÿฐ ์ข…๋ฅ˜์˜ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ๋‹คํ–‰ํžˆ๋„ ์ตœ์‹  ๋ฒ„์ „์˜ flutter๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๋ฒ ํƒ€ ๋ฒ„์ „์œผ๋กœ ์ƒˆ ๋ฒ„์ „์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์œ ์ง€ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

@sulaysumaria ๋‚˜๋„์ด ๋ฌธ์ œ์— ์ง๋ฉด ํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค ... ๋งˆ์ง€๋ง‰ ๋นŒ๋“œ๊นŒ์ง€.
์‹œ๋„ํ•˜๊ฒ ์ง€๋งŒ ์ผ๋ถ€ ์žฅ์น˜์—์„œ๋งŒ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ…Œ์ŠคํŠธํ•˜๊ธฐ๊ฐ€ ๊ทธ๋ฆฌ ๊ฐ„๋‹จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Samsung Galaxy Tab 2 7.0 P3110, Android 4.2.2 ๋ฐ Android 4.1.2๊ฐ€ ์„ค์น˜๋œ ๋‹ค๋ฅธ ๊ตฌํ˜• ํƒœ๋ธ”๋ฆฟ์—์„œ

์˜ค์˜ค... ๋‚ด ์•ฑ์€ ํ™•์‹คํžˆ ํƒœ๋ธ”๋ฆฟ์šฉ์ด ์•„๋‹ˆ๋ผ... ํ•œ ๋ฒˆ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๋ฉด ์ข‹์„ํ…๋ฐ...

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„,

ํ˜„์žฌ ์ƒํƒœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. https://github.com/flutter/flutter/issues/35838 ์€ Android 4.2 ๋ฐ ์ด์ „ ๋ฒ„์ „์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฉฐ, ์ด๋Š” Android ํœด๋Œ€์ „ํ™”์˜ ~3%์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฒ„๊ทธ์— ๋Œ€ํ•ด ์˜ํ–ฅ์„ ๋ฐ›๋Š” ์‚ฌ๋žŒ๋“ค๊ณผ ํ˜‘๋ ฅํ•˜์—ฌ ์ˆ˜์ • ๋ฒ”์œ„๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ์ผ๋ถ€ ์•ฑ์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์น  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๊ฐ€๋Šฅํ•œ ๋ณด์กฐ ๋ฌธ์ œ(์˜ˆ: ๋ชจ๋“  ์•ฑ์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š” Dart VM์˜ ๊ด€๋ จ ์—†๋Š” ๊ฐ€๋Šฅํ•œ ๋ฒ„๊ทธ)๋ฅผ ์ถ”์ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์กฐ์‚ฌ์™€ ๊ทธ ๊ฒฐ๋ก ์— ๋”ฐ๋ผ ํ˜„์žฌ ์•ˆ์ • ๋ฒ„์ „์„ ํŒจ์น˜ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์€์ง€ ์•„๋‹ˆ๋ฉด ์ฑ„๋„์„ ํ†ตํ•ด ์ƒˆ ๋ฆด๋ฆฌ์Šค๋ฅผ ์•ˆ์ • ๋ฒ„์ „์œผ๋กœ ํ‘ธ์‹œํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์€์ง€ ๊ฒฐ์ •ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  2. ๋ˆ„๊ตฌ๋“ ์ง€ ์ด์ „ Flutter ๋ฒ„์ „์—์„œ ๋นŒ๋“œํ•˜๊ณ  32๋น„ํŠธ ๋ฐ 64๋น„ํŠธ APK๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋นŒ๋“œํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์—ฌ๊ธฐ ์—์„œ ์ด์ „ ๋ฒ„์ „์˜ Flutter๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋ฉด

  3. https://github.com/flutter/flutter/issues/35838 ์ด์™ธ์˜ Android์šฉ ๋นŒ๋“œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด ๋ณ„๋„์˜ ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜๊ณ  ์ €๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์ถ”์ ํ•˜๊ณ  ์‹ถ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  4. ์ด์™€ ๋ณ„๋„๋กœ ์šฐ๋ฆฌ๋Š” ํ”„๋กœ์„ธ์Šค ์ดˆ๊ธฐ์— ๋” ๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ/Android ๋ฒ„์ „์—์„œ ๋ฌธ์ œ๋ฅผ ๋” ์ž˜ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ŠคํŠธ ๋งคํŠธ๋ฆญ์Šค๋ฅผ ๋Š˜๋ฆฌ๊ธฐ ์œ„ํ•ด ์ ๊ทน์ ์œผ๋กœ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋ž˜์„œ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ๊ฐ€ ์ฒซ ๋ฒˆ์งธ ๋ฐฉ์–ด์„ ์ด ์•„๋‹˜).

@tvolkert - ํ”ผ๋“œ๋ฐฑ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ฐ™์€ ํŽ˜์ด์ง€์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด - 8์›” 1์ผ ๋งˆ๊ฐ์ผ์ด ์—ฐ๊ธฐ ๋  ๋•Œ๊นŒ์ง€ ์ด์ „ Flutter ๋ฒ„์ „์œผ๋กœ ๋กค๋ฐฑํ•˜๋Š” ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. Google Play์—์„œ๋Š” 8์›” 1์ผ ์ดํ›„์—๋งŒ 32๊ฐœ์˜ ์•ฑ ๋ฒ„์ „์„ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@angel1st ์ด ์˜ต์…˜์ด ๊ท€ํ•˜์˜ ๊ฒฝ์šฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๊นŒ?

  1. ํ”Œ๋Ÿฌํ„ฐ SDK๋ฅผ v1.5.4-hotfix.2( flutter version v1.5.4-hotfix.2 )๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ
  2. 2๊ฐœ์˜ ๊ฐœ๋ณ„ APK ๋นŒ๋“œ(32๋น„ํŠธ flutter build apk --target-platform android-arm ๋ฐ 64๋น„ํŠธ flutter build apk --target-platform android-arm64 ํ•˜๋‚˜์”ฉ)
  3. Google Play ์Šคํ† ์–ด์— ์ด ๋‘ APK๋ฅผ ๋ชจ๋‘ ์—…๋กœ๋“œํ•˜์„ธ์š”.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์ ์–ด๋„ ์•ˆ์ •์„ฑ ๋ฌธ์ œ์™€ "๊ฒฝ๊ณ " ๋ฌธ์ œ๋ฅผ ๋ชจ๋‘ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

@truongsinh - ์ œ์•ˆ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค - ๊ณ ๋ คํ•ด ๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„ ์ œ์•ˆ์˜ 2๋‹จ๊ณ„ ๊ฐ€ ์ด์ „ ์ œ์•ˆ( ์˜ˆ: app gradle ์ˆ˜์ •) ์—์„œ์™€ ๊ฐ™์ด ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Œ์„ ํ™•์ธํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@angel1st ๋Š” ์ „์ฒด ์•ฑ์ด flutter(์˜ˆ: https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps ์•„๋‹˜)์ด๊ณ  Gradle์—์„œ ์•„๋ฌด ๊ฒƒ๋„ ์ˆ˜์ •ํ•˜์ง€ ์•Š์€ ํ•œ ํŒŒ์ผ(์˜ˆ: flutter create ๋ฐ”๋‹๋ผ ํŒŒ์ผ), ์•„๋ฌด ๊ฒƒ๋„ ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋น ๋ฅธ ํ™•์ธ์„ ์ง์ ‘ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(https://github.com/flutter/flutter/issues/31922#issuecomment-512292798 ๋‹ค์Œ ๋ฒ„์ „ "3.4.5" ๊ฐ€์ •, "๋นŒ๋“œ ๋ฒˆํ˜ธ"์— ๋Œ€ํ•œ ๋‚ด ๊ฐœ์ธ์ ์ธ ์„ ํƒ ํ˜•์‹์€ bbxxyyzz , ์—ฌ๊ธฐ์„œ bb ๋Š” 32๋น„ํŠธ ๋˜๋Š” 64๋น„ํŠธ๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. xx ๋Š” ๋ฉ”์ด์ €, yy ๋Š” ๋งˆ์ด๋„ˆ, zz ๋Š” patch ์ด์ง€๋งŒ ๋‹ค๋ฅธ ๊ถŒ์žฅ ํ˜•์‹๋„ ์žˆ์Šต๋‹ˆ๋‹ค. https://developer.android.com/google/play/publishing/multiple-apks#using-a-version-code-scheme ์ฐธ์กฐ):

  • flutter create hello_world
  • flutter build apk --target-platform android-arm --build-number 32030405 --build-name=3.4.5
  • mv build/app/outputs/apk/release/app-release.apk build/app/outputs/apk/release/app-release-32.apk
  • flutter build apk --target-platform android-arm64 --build-number 64030405 --build-name=3.4.5
  • mv build/app/outputs/apk/release/app-release.apk build/app/outputs/apk/release/app-release-64.apk

์—ฌ๊ธฐ์— 2๊ฐœ์˜ APK๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋‚ด Pixel 2์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ APK ๋ถ„์„์„ ๋ณด๋ฉด ๊ฐ APK์— ์„œ๋กœ ๋‹ค๋ฅธ libflutter.so ๋ฐ 4๊ฐœ์˜ ์Šค๋ƒ…์ƒท/aot ํŒŒ์ผ์ด ์žˆ์Œ์„ ๋ถ„๋ช…ํžˆ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Screen Shot 2019-07-17 at 1855 27

์•ฑ ๋ฆด๋ฆฌ์Šค-32.apk.zip
์•ฑ ๋ฆด๋ฆฌ์Šค-64.apk.zip

๋‘ ๊ฐœ์˜ apk๋ฅผ ์—…๋กœ๋“œํ•  ๋•Œ ์ฐธ๊ณ ํ•˜์„ธ์š”... Google์€ ๋™์ผํ•œ ๋นŒ๋“œ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ 64๋น„ํŠธ์šฉ apk๋ฅผ ๋งŒ๋“ค๊ธฐ ์ „์— ๋นŒ๋“œ ๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋‘ ๊ฐœ์˜ apk๋ฅผ ์—…๋กœ๋“œํ•  ๋•Œ ์ฐธ๊ณ ํ•˜์„ธ์š”... Google์€ ๋™์ผํ•œ ๋นŒ๋“œ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ 64๋น„ํŠธ์šฉ apk๋ฅผ ๋งŒ๋“ค๊ธฐ ์ „์— ๋นŒ๋“œ ๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์•„, ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค(https://developer.android.com/google/play/publishing/multiple-apks#Rules ์ฐธ์กฐ). ๋ชจ๋“  ๋ฒ„์ „์— ๋Œ€ํ•ด 64๋น„ํŠธ์˜ ๋นŒ๋“œ ๋ฒˆํ˜ธ๊ฐ€ 32๋น„ํŠธ๋ณด๋‹ค ๋†’์€์ง€ ํ™•์ธํ•˜์„ธ์š”(์ด์ „ ์˜ˆ์ œ https://github.com/flutter/flutter/issues/31922#issuecomment-512223030 ์—…๋ฐ์ดํŠธ).

appbundle ๋กœ ๋นŒ๋“œํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. flutter build apk ๋Š” ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ Play ์Šคํ† ์–ด์— ์ƒˆ ๋ฒ„์ „์„ ๊ฒŒ์‹œํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋„์™€์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

flutter build appbundle --target-platform android-arm,android-arm64 --flavor my_flavor --release -t "bin/main.dart ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Initializing gradle...                                              0,6s
Resolving dependencies...                                           2,0s
Running Gradle task 'bundleMy_AppRelease'...                   
Running Gradle task 'bundleMy_AppRelease'... Done          1,9s
Gradle build failed to produce an Android bundle package.

์Šฌํ”„๊ฒŒ๋„ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ์‹ค์ œ๋กœ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ flutter Doctor์˜ ์ถœ๋ ฅ:

[โœ“] Flutter (Channel stable, v1.7.8+hotfix.3, on Mac OS X 10.14.5 18F132, locale de-DE)
    โ€ข Flutter version 1.7.8+hotfix.3 at /Users/tom/development/flutter
    โ€ข Framework revision b712a172f9 (2 weeks ago), 2019-07-09 13:14:38 -0700
    โ€ข Engine revision 54ad777fd2
    โ€ข Dart version 2.4.0

[โœ“] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    โ€ข Android SDK at /Users/tom/Library/Android/sdk
    โ€ข Android NDK location not configured (optional; useful for native profiling support)
    โ€ข Platform android-28, build-tools 28.0.3
    โ€ข Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    โ€ข Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
    โ€ข All Android licenses accepted.

[โœ“] Xcode - develop for iOS and macOS (Xcode 10.3)
    โ€ข Xcode at /Applications/Xcode.app/Contents/Developer
    โ€ข Xcode 10.3, Build version 10G8
    โ€ข CocoaPods version 1.6.1

[โœ“] iOS tools - develop for iOS devices
    โ€ข ios-deploy 1.9.4

[โœ“] Android Studio (version 3.4)
    โ€ข Android Studio at /Applications/Android Studio.app/Contents
    โ€ข Flutter plugin version 36.1.1
    โ€ข Dart plugin version 183.6270
    โ€ข Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[โœ“] Connected device (1 available)
    โ€ข iPhone Xส€ โ€ข 095B1A07-E138-4A80-9783-8CA36DC8049A โ€ข ios โ€ข com.apple.CoreSimulator.SimRuntime.iOS-12-4 (simulator)

โ€ข No issues found!

ํŽธ์ง‘ํ•˜๋‹ค
--split-per abi ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๊ฑด๋ฌผ๋„ flutter build apk ์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

@wreppun ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค - ๋‚ด ์•ฑ์˜ ์ถฉ๋Œ ๋ณด๊ณ ์„œ๋ฅผ ํ™•์ธ

@blasten ๊ฑฑ์ •ํ•˜์ง€ ๋งˆ์„ธ์š”. ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์ƒˆ๋กœ์šด ์•ฑ๋ฒˆ๋“ค์ด Asus ZenFone 2 ๊ธฐ๊ธฐ์—์„œ ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค๋ฉด, ๊ทธ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์—†์ง€๋งŒ Google์˜ ๋ชจ๋ฐ”์ผ ํ…Œ์ŠคํŠธ ์—ฐ๊ตฌ์†Œ์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ €๋„ Asus Zenfone ๋ฌธ์ œ์— ์ง๋ฉดํ•ด ์žˆ์Šต๋‹ˆ๋‹ค. flutter build apk ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ํ•  ๋•Œ ์•ฑ์ด ์ „ํ™”์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ appbundle์„ ์‚ฌ์šฉํ•˜์—ฌ App Store์— ์—…๋กœ๋“œํ•˜๋ฉด ์‹œ์ž‘ ํ™”๋ฉด ์•ž์œผ๋กœ ์ด๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์†”๋ฃจ์…˜ ??

"Play ์Šคํ† ์–ด"์—์„œ ๋‚ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(์•ฑ) ์ค‘ ํ•˜๋‚˜์˜ ์ƒˆ ๋ฒ„์ „์„ ์ปดํŒŒ์ผํ•˜๊ณ  ์ถœ์‹œํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

1-) 32๋น„ํŠธ์™€ 64๋น„ํŠธ๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด 32๋น„ํŠธ ๋ฒ„์ „ ๋•Œ๋ฌธ์— ์‚ฌ์ดํŠธ๊ฐ€ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.

2-) 32๋น„ํŠธ๋งŒ ์—…๋กœ๋“œํ•˜๋ฉด 64๋น„ํŠธ๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์ดํŠธ๊ฐ€ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.

3-) 64๋น„ํŠธ๋งŒ ์—…๋กœ๋“œํ•˜๋ฉด ์‚ฌ์ดํŠธ๊ฐ€ ์ž‘๋™ํ•˜์ง€๋งŒ ๊ณ ๊ฐ์—๊ฒŒ 64๋น„ํŠธ Android๊ฐ€ ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด ํœด๋Œ€ ์ „ํ™”์—์„œ๋Š”์ด ๋™์ผํ•œ ์•ฑ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋‚ด ํœด๋Œ€ ์ „ํ™”์—์„œ๋Š” apk 32 ๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ํœด๋Œ€ํฐ์— APK 64๋น„ํŠธ๋ฅผ ์„ค์น˜ํ•˜๋ฉด ์‹œ์ž‘ ํ™”๋ฉด์—์„œ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค.

์ด์ œ ํ•ด์ œํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”??

Tigerclaw1980์€ flutter ์•ฑ ๋ฒˆ๋“ค ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

appbundle ์˜ต์…˜ ํ”Œ๋Ÿฌํ„ฐ Tigerclaw1980 ์‚ฌ์šฉ @MoacirSchmidt

Delphi Beta๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 32๋น„ํŠธ ๋ฐ 64๋น„ํŠธ์šฉ apk ํŒŒ์ผ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค

"Play ์Šคํ† ์–ด"์—์„œ ๋‚ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(์•ฑ) ์ค‘ ํ•˜๋‚˜์˜ ์ƒˆ ๋ฒ„์ „์„ ์ปดํŒŒ์ผํ•˜๊ณ  ์ถœ์‹œํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

1-) 32๋น„ํŠธ์™€ 64๋น„ํŠธ๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด 32๋น„ํŠธ ๋ฒ„์ „ ๋•Œ๋ฌธ์— ์‚ฌ์ดํŠธ๊ฐ€ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.

2-) 32๋น„ํŠธ๋งŒ ์—…๋กœ๋“œํ•˜๋ฉด 64๋น„ํŠธ๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์ดํŠธ๊ฐ€ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.

3-) 64๋น„ํŠธ๋งŒ ์—…๋กœ๋“œํ•˜๋ฉด ์‚ฌ์ดํŠธ๊ฐ€ ์ž‘๋™ํ•˜์ง€๋งŒ ๊ณ ๊ฐ์—๊ฒŒ 64๋น„ํŠธ Android๊ฐ€ ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด ํœด๋Œ€ ์ „ํ™”์—์„œ๋Š”์ด ๋™์ผํ•œ ์•ฑ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋‚ด ํœด๋Œ€ ์ „ํ™”์—์„œ๋Š” apk 32 ๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ํœด๋Œ€ํฐ์— APK 64๋น„ํŠธ๋ฅผ ์„ค์น˜ํ•˜๋ฉด ์‹œ์ž‘ ํ™”๋ฉด์—์„œ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค.

์ด์ œ ํ•ด์ œํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”??

@Tigerclaw1980 ์ด ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜์…จ๋‚˜์š”?

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