์ ์ฒด ๊ธ
42

[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..

[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๊ฐ ๋ค์ด์๋ ๊ฐ๋ฐํ๊ฒฝ)๊ฐ ๋ชจ๋ ์ธํ
๋์ด ์๋ค๋ ๊ฐ์ ํ์ ..

[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 ์ ํ ์ถ๊ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉํด์ ํ๋ ์์ํฌ ๊ฐ๋ฐํ๋ฉด ๋จ.

[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 ์ ํ ์ด๋ฆ์ ..

[iOS] XCFramework build script
2023.04.06
A. ์ ์ฒด ๊ณผ์ ํ๋ ์์ํฌ > Targets > Build Phases ์ด๋ ํ new Target Aggregate ์ถ๊ฐ Run script phase ์ถ๊ฐ ์ ์ฝ๋ ์ถ๊ฐ ๋น๋ ํ
์คํธ B. ๊ฐ ๊ณผ์ ์์ธ - 1 Project Navigator์์ SDK Point Home ์ ํ ๋ง์ฝ ํ๋ก์ ํธ์ X ์ณ๋์ SdkPointHomeXCFramework ํ๊ฒ์ด ์๋ค๋ฉด ์๋ ๊ณผ์ ์๋ต ํ F ๋จ๊ณ๋ก ์ด๋. ์๋ค๋ฉด Project ์ ํ ํ ์ผ์ชฝ ์๋ + ๋ฒํผ ํด๋ฆญ C. ๊ฐ ๊ณผ์ ์์ธ - 2 Other → Aggregate → Next ์์ผ๋ก ์ถ๊ฐ Team์ None, Product name์ ์ํ๋ ์ด๋ฆ์ผ๋ก ์ถ๊ฐ D. ๊ฐ ๊ณผ์ ์์ธ - 3 ๋ง๋ ํ๊ฒ ์ ํ Build Phases ์ ํ + ๋ฒํผ ํด๋ฆญ New Run S..