Home [TIL] 2022-11-11
Post
Cancel

[TIL] 2022-11-11

๐Ÿ˜ฒ ์˜ค๋Š˜์˜ ๊ฐœ๋ฐœ ์ผ์ง€


  • ๋“œ๋””์–ด ์•ฑ 1์ฐจ ๋ฐฐํฌ์‹ ์ฒญ์„ ์™„๋ฃŒํ–ˆ๋‹ค.
    • ๋ฐฐํฌํ•˜๋Š”๋ฐ ์žˆ์–ด ํ•ด์•ผํ•  ์ผ๋“ค์ด ๋„ˆ๋ฌด ๋งŽ์•˜๋‹ค. ํ˜„์žฌ ๋งŒ๋“  ์•ฑ์ด ์œ ์ €๋กœ๋ถ€ํ„ฐ ์–ด๋–ค ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ค๋Š”์ง€ ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ •๋ณด๋ฅผ ์ž„์‹œ์ ์œผ๋กœ ์ €์žฅํ•˜๋Š”์ง€ ์ด๋Ÿฐ ๊ฒƒ๋“ค์„ ๋‹ค ์„ ํƒํ•ด์•ผํ•œ๋‹ค.
    • ์•ฑ์—์„œ ์š”๊ตฌํ•˜๋Š” ๊ถŒํ•œ๋“ค๋„ ํ•„์ˆ˜ ๊ถŒํ•œ์ธ์ง€ ์„ ํƒ์ ์ธ์ง€ ์ ์–ด์•ผ ํ•œ๋‹ค.
    • ๊ทธ๋ฆฌ๊ณ  ๊ฒ€์ˆ˜ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ŠคํŠธ์šฉ ์•„์ด๋”” ๋˜ํ•œ ๊ฐ™์ด ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค.
    • ์ด๋ ‡๊ฒŒ ํ•„์š”ํ•œ ๊ฒƒ๋“ค์„ ๋ชจ๋‘ ์ž‘์„ฑํ•˜๊ณ  ์š”์ฒญ์„ ํ•˜๋ฉด ์ด์ œ release์šฉ ์นด์นด์˜ค ๋กœ๊ทธ์ธ key hash ๊ฐ’์ด ํ•„์š”ํ•˜๋‹ค.
    • ์•ฑ์„ ์ถ”์ถœํ•˜๋Š” ๊ณผ์ •์—์„œ ์ด์ œ๋Š” apk ํŒŒ์ผ์ด ์•„๋‹Œ aab ํŒŒ์ผ๋กœ ์ถ”์ถœํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.
    • ๊ทธ ํ›„ ์ถ”์ถœํ•˜๋ฉด์„œ ์ž…๋ ฅํ•œ key store์™€ openssl์„ ์‚ฌ์šฉํ•˜์—ฌ release์šฉ key hash๋ฅผ ์–ป์–ด์„œ ์นด์นด์˜ค developer ์‚ฌ์ดํŠธ์— ์ถ”๊ฐ€ํ–ˆ๋‹ค.
  • aab ํŒŒ์ผ์„ ์ถ”์ถœํ•˜๋Š” ๊ณผ์ •์—์„œ Manifest ํŒŒ์ผ์—์„œ icon๊ณผ roundIcon์˜ ํŒŒ์ผ์ด ์ฝํžˆ์ง€ ์•Š๋Š” ์—๋Ÿฌ๊ฐ€ ์ƒ๊ฒผ๋‹ค.
    • ์•Œ๊ณ  ๋ณด๋‹ˆ ์•ฑ ์•„์ด์ฝ˜ ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ๋•Œ release์šฉ์œผ๋กœ ์ƒ์„ฑํ–ˆ์–ด์•ผ ํ–ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœํ•˜๋‹ค๊ฐ€ Can't toast on a thread that has not called Looper.prepare() ์ด์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.
    • Main Thread๊ฐ€ ์•„๋‹Œ Thread์—์„œ ํ† ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•˜๋ ค๊ณ  ํ•ด์„œ ์ƒ๊ธฐ๋Š” ์—๋Ÿฌ๋‹ค.
    • ํ•ด๋‹น ํ† ์ŠคํŠธ ์ถœ๋ ฅ ์ฝ”๋“œ๊ฐ€ ์ฝ”๋ฃจํ‹ด ์•ˆ์— Dispatcher.IO๋กœ ๋™์ž‘ํ•˜๊ธฐ์— withContext๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Main Thread๋กœ ๋ฐ”๊ฟ”์„œ ํ† ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ–ˆ๋‹ค.
  • flow ์“ฐ๋ฉด์„œ ์ž๊พธ ๊ฐ’์„ ๋„˜๊ธธ ๋•Œ emitํ•˜๋Š”๊ฑธ ๊นŒ๋จน๋Š”๋‹คโ€ฆ.
This post is licensed under CC BY 4.0 by the author.

[TIL] 2022-11-10

[Android] java.lang.RuntimeException: Can't toast on a thread that has not called Looper.prepare()