header-img
Info :
CS/iOS, Swift 18
[iOS] Framework, Library RnD
2023.04.07
iOS ํ”„๋ ˆ์ž„์›Œํฌ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์กฐ์‚ฌํ•œ ๋‚ด์šฉ๋“ค์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ๊ฐœ๋ฐœ ์‹œ ์—‘์Šค์ฝ”๋“œ์ƒ์—์„œ ์„ค์ •ํ•ด์ค˜์•ผ ํ•  ๋ถ€๋ถ„์ด ๋” ์žˆ๋Š”๋ฐ ํ•ด๋‹น ๋ถ€๋ถ„์€ ๊ธฐ๊ณ„ ๋งˆ๋ƒฅ ๊ณ„์† ์˜ค๋ฅ˜ ํ•˜๋‚˜์”ฉ ๋ณด๋ฉด์„œ ๋ผ์›Œ๋งž์ถ”๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฉ์‹ ์ •๋„๋งŒ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”. ์•„๋ž˜ ์ž‘์„ฑ๋œ ์ˆœ์„œ๋Œ€๋กœ ๋ณด์‹œ๋Š”๊ฒŒ ๋” ์ดํ•ด๊ฐ€ ์ž˜ ๋˜์‹ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ €๋Š” iOS ์ฒ˜์Œํ•˜๋Š” ์ž…์žฅ์—์„œ ์ž‘์„ฑํ•œ๊ฑฐ๋ผ ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ž ๋นŒ๋“œ ์„ธํŒ…์— ๋งž๊ฒŒ ์„ค์ •ํ•ด์ค˜์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด ๋งŽ๋‹ค๊ณ  ํŒ๋‹จํ•ด์„œ ์˜ค๋ฅ˜๋„ ๋งŽ์ด ๋‚˜์‹ค๊ฒ๋‹ˆ๋‹ค... [iOS] framework ๊ธฐ๋ณธ : https://dongdong216.tistory.com/4 [iOS] framework ๊ธฐ๋ณธ 1. CPU Architecture ์•„์ดํฐ์€ ๊ธฐ์ข…์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์•„ํ‚คํ…์ฒ˜์˜ CPU๋ฅผ ์‚ฌ์šฉํ•จ. ๋นŒ๋“œ๋ฅผ ํ•˜๋ฉด Execute file์ด ์ƒ..
list_img
[iOS] static framework to xcframework, cocoapod ๋ฐฐํฌ
2023.04.07
A. ๊ฒฐ๋ก  ํ˜ธ์ŠคํŠธ ์•ฑ์—์„œ static, dynamic ๊ด€๊ณ„ ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ ํ˜ธ์ŠคํŠธ ์•ฑ์—์„œ ์ด๋ฏธ a ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋„ a ์‚ฌ์šฉํ•ด์•ผ ๋˜๋ฉด ์ถฉ๋Œ ์—†์ด ๊ทธ๋ƒฅ ์„ค์น˜๋˜์–ด ์žˆ๋Š” ๊ฑธ๋กœ ์‚ฌ์šฉ๋จ. ํ”„๋ ˆ์ž„์›Œํฌ ์ž์ฒด๋Š” xcframework์ด๊ณ  ๊ทธ ๋‚ด๋ถ€๋Š” static library์ž„. ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด๋ถ€ ์†Œ์Šค์ฝ”๋“œ ๋น„๊ณต๊ฐœ, ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด PC์— ํ•ด๋‹น ํ”„๋ ˆ์ž„์›Œํฌ ์ „์ฒด ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด indexing์ด ๋˜์–ด์žˆ์Œ. ๋งŒ์•ฝ ์ œ3์ž๊ฐ€ ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด๋ถ€ ์†Œ์Šค ์ฝ”๋“œ ์—†์ด pod์œผ๋กœ ํ”„๋ ˆ์ž„์›Œํฌ๋งŒ ๋ฐ›๋Š”๋‹ค๋ฉด ์ฝ”๋“œ๊ฐ€ ๋ณด์ด์ง€ ์•Š์Œ. ์ฒดํฌํ•ด๋ณธ ๊ฒฐ๊ณผ ๊ฐ€๋Šฅํ•œ ๊ฒƒ ์ข…์†์„ฑ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ํ‚ค์ฒด์ธ ๊ฐ€๋Šฅ UIKit ์‚ฌ์šฉํ•ด์„œ vc, view … ๋“ฑ๋“ฑ ์‚ฌ์šฉ ๊ฐ€๋Šฅ Bundle๋กœ ๋‚˜๊ฐ€์•ผ ํ•˜๋Š” xib, image ํŒŒ์ผ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ฐฐํฌ ๋ถˆ๊ฐ€๋Šฅ. ํ…Œ์ŠคํŠธ ์ข…์†..
[iOS] pod dependency trouble shooting
2023.04.07
A. ์ง€ํ–ฅํ•˜๋Š” ๊ฒƒ third party lib๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” framework๋ฅผ xcframework๋กœ buildํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ. cocoapod์— ๋ฐฐํฌํ•  ๋•Œ ์ด xcframework๊ฐ€ ์˜์กดํ•˜๊ณ  ์žˆ๋Š” ์ข…์†์„ฑ๋“ค์„ ์ž๋™์œผ๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ. B. ํ•ด๊ฒฐ๋ฐฉ์•ˆ 2๋ฒˆ์€ ๋„ˆ๋ฌด ์‰ฌ์› ์Œ. ๋ฐฐํฌํ•  ํ”„๋ ˆ์ž„์›Œํฌ์˜ podspec์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜๋ฉด ๋จ. Pod::Spec.new do |s| s.name = "SampleFramework" s.version = "0.1.5" s.summary = "A brief description of XCFrameworkTest project." s.description = 'Copyright', :text => "๊นƒ ์ฃผ์†Œ", :tag => s.version.to_s } s.ve..
list_img
[iOS] 1st party framework์—์„œ 3rd party framework ์‚ฌ์šฉ
2023.04.07
A. Umbrella Framework ๋ถˆ๊ฐ€๋Šฅ Technical Note TN2435: Embedding Frameworks In An App Umbrella framework : ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํฌํ•จํ•˜๋Š” ํ˜•ํƒœ. macOS์—์„œ๋Š” ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ง€์–‘๋˜๋Š” ๊ตฌ์กฐ. iOS, watchOS, tvOS์—์„œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•จ. ๋”ฐ๋ผ์„œ ํ”„๋ ˆ์ž„์›Œํฌ ์•ˆ์— ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋„ฃ์ง€ ๋ง๊ณ  Embedding a framework ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•จ. B. ์ผ๋ฐ˜ 3rd party framework ํฌํ•จํ•˜๋Š” ๋ฐฉ๋ฒ• ์ „์ฒด ๊ณผ์ • ์•„๋ž˜ ๋‹จ๊ณ„๋Š” framework project, test project, ๊ฐœ๋ฐœ workspace(framework project, test project๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๊ฐœ๋ฐœํ™˜๊ฒฝ)๊ฐ€ ๋ชจ๋‘ ์„ธํŒ…๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฐ€์ • ํ•˜์— ..
list_img
[iOS] Framework์— ์ข…์†์„ฑ ์ถ”๊ฐ€ ์‹œ ์ž‘์—…ํ™˜๊ฒฝ ์„ธํŒ…
2023.04.06
A. Framework ๊ฐœ๋ฐœํ•  ๋•Œ Framework ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ cmd open → pod init ์ถ”๊ฐ€ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ .podfile์— ๋„ฃ์–ด์ค€ ํ›„ pod install ํ…Œ์ŠคํŠธ ํ”„๋กœ์ ํŠธ, ํ”„๋ ˆ์ž„์›Œํฌ ํ”„๋กœ์ ํŠธ ๊ฐ™์ด ๋„ฃ์–ด ๋‘” ์›Œํฌ์ŠคํŽ˜์ด์Šค open workspace์˜ project navigator ์šฐํด๋ฆญ ํ›„ add new files to “…workspace” ์„ ํƒ ํ”„๋ ˆ์ž„์›Œํฌ ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€์— 2๋ฒˆ์œผ๋กœ ์ƒ์„ฑ๋œ Pods > Pods.xcodeproj ์„ ํƒ ์ถ”๊ฐ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉํ•ด์„œ ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐœ๋ฐœํ•˜๋ฉด ๋จ.
list_img
[iOS] framework ์ž‘์—…ํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ
2023.04.06
A. ์ „์ฒด ๊ณผ์ • SDK Framework Project, Test App Project ๋‘˜ ๋‹ค ์กด์žฌํ•œ๋‹ค๋Š” ์ „์ œ ํ•˜์— ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. Workspace ์ƒ์„ฑ ๋งŒ๋“  ์›Œํฌ์ŠคํŽ˜์ด์Šค ์—ด๊ณ  Project Navigator ์šฐํด๋ฆญ > Add File to “workspace ์ด๋ฆ„” > ํ”„๋ ˆ์ž„์›Œํฌ, ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ…Œ์ŠคํŠธํ•  ํ”„๋กœ์ ํŠธ์˜ .xcodeproj ํŒŒ์ผ ์ถ”๊ฐ€ Project Navigator์—์„œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ…Œ์ŠคํŠธํ•  ํ”„๋กœ์ ํŠธ ๋ˆ„๋ฅด๊ณ  Targets > General > Frameworks, Libraries, and Embeded Content์—์„œ ํ”„๋ ˆ์ž„์›Œํฌ ์ถ”๊ฐ€ ํ›„ Do not Embed๋กœ ์†์„ฑ ์„ค์ • test ์‹œ์ž‘ B. ๊ฐ ๊ณผ์ • ์ƒ์„ธ - 1 Workspace ์ƒ์„ฑ File > New > Workspace ์„ ํƒ ์ด๋ฆ„์€ ..