๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Module, Library, Framework, XCFramework Module ํ•˜๋‚˜์˜ ์ฝ”๋“œ ๋ฐฐํฌ๋‹จ์œ„ ex) framework or application Xcode์—์„œ ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ์•ฑ ๋ฒˆ๋“ค๊ฐ™์€ ๋นŒ๋“œํƒ€์ผ“๋“ค์€ ๊ฐ๊ฐ ๋ชจ๋“ˆ์ด๋‹ค ๊ฐ ๋ชจ๋“ˆ์€ ๊ฐ์ž์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ฐ ์•ก์„ธ์Šค ์ปจํŠธ๋กค ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ์ž„ํฌํŠธ๋˜์–ด ์žฌ์‚ฌ์šฉ ๋  ์ˆ˜ ์žˆ๋‹ค Bundle ๋‚ด๋ถ€์— ์žˆ๋Š” ํŒŒ์ผ ๋””๋ ‰ํ† ๋ฆฌ์ด๋‹ค. iOS ์—์„œ ๋ฒˆ๋“ค์€ ์•ฑ์— ๊ด€๋ จ๋œ ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ํŒจํ‚ค์ง€๋กœ ์ œ๊ณต Object code object code ๋Š” ๋ณดํ†ต, ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ†ตํ•ด ์ƒ์‚ฐ๋œ ๊ฒฐ๊ณผ๋ฌผ Object file object code ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ํŒŒ์ผ์ด๋‹ค. Library Library๋Š” ํƒ€๊ฒŸ์—์„œ ์‚ฌ์šฉ๋  ํŒจํ‚ค์ง•๋œ Object ํŒŒ์ผ๋“ค์˜ ๋ชจ์Œ ํƒ€๊ฒŸ์— ์–ด๋–ป๊ฒŒ ๋งํ‚นํ•˜๋Š”๊ฐ€์— ๋”ฐ๋ผ 2 ํƒ€์ž…์œผ๋กœ ๋‚˜๋‰œ๋‹ค Static Library (.a) : ์ปดํŒŒ์ผ ์‹œ์ ์— ํƒ€๊ฒŸ.. 2023. 2. 3.
async/await, continuation, Actor async/await ๊ธฐ์กด completion handler๋ฅผ ํ†ตํ•œ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์€ ์—ฌ๋Ÿฌ ์ด์Šˆ ์กด์žฌ ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ๋ชจ๋“  case์—์„œ completion handler๋ฅผ ํ˜ธ์ถœํ–ˆ๋Š”๊ฐ€ self property์—์„œ retain cycle์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ completion handler๊ฐ€ ์ค‘์ฒฉ๋˜์–ด ํ˜ธ์ถœ๋˜๋Š”๊ฒฝ์šฐ ๋–จ์–ด์ง€๋Š” ๊ฐ€๋…์„ฑ, ์ฝœ๋ฐฑ์ง€์˜ฅ ์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Swift์— ์ฝ”๋ฃจํ‹ด(coroutine) ๋ชจ๋ธ์„ ๋„์ž… Coroutine์€ ํ•จ์ˆ˜๊ฐ€ ๋™์ž‘ํ•˜๋Š” ๋„์ค‘ ํŠน์ • ์‹œ์ ์— suspend(์ผ์‹œ์ •์ง€)ํ•  ์ˆ˜ ์žˆ๊ณ , resume(๋‹ค์‹œ ์žฌ๊ฐœ)ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ๋น„๋™๊ธฐํ•จ์ˆ˜(async/await)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ ์ฝ”๋“œ๋ฅผ ๋งˆ์น˜ ๋™๊ธฐ ์ฝ”๋“œ์ธ๊ฒƒ ์ฒ˜๋Ÿผ ์ž‘์„ฑ ํ•  ์ˆ˜ ์žˆ๋‹ค async ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ๋น„๋™๊ธฐ ํ•จ์ˆ˜์ž„์„ ๋‚˜ํƒ€๋‚ธ๋‹ค ํ•จ์ˆ˜๋ฅผ.. 2023. 2. 1.
Concurrency1 : GCD, Operation Concurrency Programming, ๋™์‹œ์„ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋™์‹œ์„ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋™์‹œ์— ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋™์‹œ์„ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์‹ฑ๊ธ€ ์ฝ”์–ด์—์„œ๋„ ๊ฐ€๋Šฅํ•œ ๋…ผ๋ฆฌ์ ์ธ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. Swift๋กœ ๋™์‹œ์„ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” completion handler, GCD, Operation, Structed Concurrency๊ฐ€ ์žˆ๋‹ค Parallel Programming, ๋ณ‘๋ ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ณ‘๋ ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ CPU(์ฝ”์–ด)๊ฐ€ ํ•˜๋‚˜์˜ ์ž‘์—…(Task)์„ ๋ถ„๋‹ดํ•ด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ ๋ฌผ๋ฆฌ์ ์ธ ๊ฐœ๋…์œผ๋กœ CPU(์ฝ”์–ด)๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์„ ๋•Œ์— ๊ฐ€๋Šฅ ๋ณ‘๋ ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋‹ค์ค‘ ์ฝ”์–ด๋ฅผ, ๋™์‹œ์„ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ ์ด ๋‘˜์€ ๋™์‹œ์— ์ผ์–ด๋‚  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. Serial Pr.. 2023. 1. 27.
PNG transparency bug report ios16 ๋ฒ„์ „ ๊ธฐ๊ธฐ์—์„œ ์„œ๋ฒ„์— png ์›๋ณธ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋Š”๋ฐ ์„œ๋ฒ„์— jpb๋กœ ์˜ฌ๋ผ๊ฐ€ ์žˆ๊ธธ๋ž˜ ํ™•์ธํ•ด ๋ดค๋”๋‹ˆ ์ž‘์€ ์‚ฌ์ด์ฆˆ์˜ png ํŒŒ์ผ๋“ค์„ ๋Œ€์ƒ์œผ๋กœ iOS์—์„œ ์‹œ์Šคํ…œ์ด ํฐ์ƒ‰ background๋ฅผ ๋งŒ๋“ค์–ด ๋ฒ„๋ฆฌ๋Š” ๋ฒ„๊ทธ๊ฐ€ ์กด์žฌํ–ˆ๋‹ค. ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ผ€์ด์Šค๋ฅผ ํ™•์ธํ•ด๋ณด๋‹ˆ ๊ฐ€๋กœ ๋˜๋Š” ์„ธ๋กœ์ค‘ 360px ์ดํ•˜์ด๋ฉด ์‹œ์Šคํ…œ์ด PNG ํŒŒ์ผ ํˆฌ๋ช…ํ•˜๋”๋ผ๋„ ํฐ์ƒ‰ background๋ฅผ ๋งŒ๋“ค์–ด ๋ฒ„๋ฆฌ๋Š”๊ฒƒ์ด์—ˆ๋‹ค.. ๊ตฌ๊ธ€๋ง์„ํ•ด๋ณด๋‹ˆ ์ด ๋ฒ„๊ทธ ๋•Œ๋ฌธ์— ๋งŽ์€ ๋ถ„๋“ค์ด ๊ณ ํ†ต๋ฐ›๊ณ  ์žˆ๋Š”๊ฒƒ ๊ฐ™์•˜๋‹ค;; https://discussions.apple.com/thread/253203125?answerId=256082596022#256082596022 https://tomolog.reafo.io/en/article/abount-iOS15-png-bug ํ˜„์žฌ ์„œ๋น„์Šค์—์„œ.. 2022. 12. 23.
Sign in with Apple ํ’€์Šคํƒ(iOS + Node.js) ๊ฐœ๋ฐœ ๋…ธํŠธ ์• ํ”Œ๋กœ๊ทธ์ธ๊ธฐ๋Šฅ์„ ํด๋ผ์ด์–ธํŠธ(iOS)์™€ ๋ฐฑ์—”๋“œ(Node.js)๋กœ ํ’€์Šคํƒ ๊ฐœ๋ฐœํ•˜๋ ค ํ–ˆ๋Š”๋ฐ iOS ๊ฐœ๋ฐœํ•˜๋Š” ์ž๋ฃŒ๋Š” ๋ฐฑ์—”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ ํ–ˆ๋Š”์ง€ ๋‚˜์˜ค์ง€ ์•Š๊ณ , ๋ฐฑ์—”๋“œ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ์ž๋ฃŒ๋Š” iOS๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”์ง€ ๋‚˜์˜ค์ง€ ์•Š๊ณ , ํ’€์Šคํƒ ๊ฐœ๋ฐœ ์ž๋ฃŒ๋Š” ์ „๋ถ€ iOS๊ฐ€ ์•„๋‹ˆ๋ผ ์›น+๋ฐฑ์—”๋“œ ํ’€์Šคํƒ ์ž๋ฃŒ๋“ค์ธ๋ฐ๋‹ค๊ฐ€ ์ž๋ฃŒ๋“ค์ด ์ „๋ถ€ ์˜ค๋ž˜๋˜์„œ ๋งž์ง€ ์•Š๋Š”๊ฒŒ ๋„ˆ๋ฌด ๋งŽ์•˜๋‹ค. ๊ทธ๋ž˜์„œ ์‚ฝ์งˆ์— ์‚ฝ์งˆ์„ ๊ฒช์œผ๋ฉฐ ๊ฐœ๋ฐœ์„ ํ–ˆ๋Š”๋ฐ ํ’€์Šคํƒ ๊ฐœ๋ฐœ ํ•˜๋Š” ๋ˆ„๊ตฐ๊ฐ€๋Š” ๊ทธ๋Ÿฐ ๊ณ ํ†ต์„ ๊ฒช์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋žŒ! ๋ชฉ์ฐจ 1. ์ค€๋น„ 2. iOS ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐœ 3. Node.js ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ 4. ๋งˆ๋ฌด๋ฆฌ ์ค€๋น„ 1. Apple Developer์—์„œ App ID ์„ค์ • Certificates, Identifiers & Profiles > Identifiers > App IDs ์ถ”๊ฐ€ ๋ฒˆ๋“ค.. 2022. 10. 12.
Unable to locate the App Tracking Transparency permission request when reviewed on iOS 15.4.1. iOS 15.4.1 ๋ฒ„์ „์—์„œ App Tracking Transparency permission request ํ”„๋กฌํ”„ํŠธ ์ฐฝ์ด ๋œจ์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์œ ๋กœ ์•ฑ ์‹ฌ์‚ฌ๊ฐ€ ๊ฑฐ์ ˆ์ด ๋‚ฌ์—ˆ๋˜ ์ด์Šˆ ๋ฆฌํฌํŠธ ์œ„์˜ ์‚ฌ์œ ๊ฐ€ ๊ธฐ์กด์— ๊ฑฐ์ ˆ๋‚ฌ์—ˆ๋˜ ์‚ฌ์œ ๋„ ์•„๋‹ˆ๊ณ , app tracking transparency ์ˆ˜์ •์‚ฌํ•ญ๋„ ์—†์—ˆ๊ณ , ํ…Œ์ŠคํŠธํฐ(iphone13 with ios 15.4.1)์—์„œ๋Š” ๋„์ €ํžˆ ๊ฑฐ์ ˆ ์‚ฌ์œ ๋ฅผ ์‹œํ˜„ ํ•ด๋ณผ์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค .. ์ด๋ฆฌ์ €๋ฆฌ ์‚ฝ์งˆํ•ด๋ณธ๊ฒฐ๊ณผ, ios 14๋ฒ„์ „ ์ด์ƒ์—์„œ๋Š” ATTrackingManager.requestTrackingAuthorization ์„ ํ†ตํ•ด์„œ ์œ ์ €์—๊ฒŒ IDFA ์ ‘๊ทผ๊ถŒํ•œ์„ ํ”„๋กฌํ”„ํŠธ๋กœ ์š”์ฒญํ•ด์•ผํ•˜๋Š”๋ฐ ์˜ค๋ž˜๋œ ๋””๋ฐ”์ด์Šค ex) iphone6 with iOS 15.4.1 ์—์„œ๋Š” ์•ฑ์„ ์ง€์› ๋‹ค๊ฐ€ ์žฌ์„ค์น˜ํ•ด๋„ ๊ณต์‹๋ฌธ์„œ( h.. 2022. 5. 13.