일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- BindingAdapter
- DispatchQueue
- mac
- gradle
- EditText
- VM arguments
- xcframework
- 3rd part
- Andorid
- ndkVersion
- Registering an InstanceCreator with Gson for this type may fix this problem
- IOS
- Eclipse
- Compose
- Chat GPT
- AOS
- 3rd framework
- Framework
- Swift
- Jetpack
- Android
- NDK
- retrofit
- arm-linux-androideabi
- data binding
- Kotlin
- buildconfigfield
- Java
- defaultconfig
- boot
- Today
- Total
목록Swift (10)
grape

ConcurrencyQueue iOS에서 ConcurrencyQueue 사용 이유 결론부터 이야기하자면 Dead Lock 때문이다. 순차적으로 처리되어야 하는 API Set이 있고 API 처리시간이 짧아 Simple하게 API를 만들고 싶다면 iOS에 익숙지 않다면 SerialQueue에 Sync를 생각하게 된다. 하지만 기본적으로 UI가 처리되는 main thread는 SerialQueue Sync이고 UI 동작 내에서 API를 호출하면 DeadLock 이슈가 발생하게 된다. main.sync{ //[Todo]Print SerialQueue.sync{ ---DeadLock--- //[Todo]Print } } main.sync는 thread내에 처리가 완료되어야 next로 넘어 갈수 있고 SerialQ..
스위프트 메모리 타입 요약 [High] Stack Dynamic Heap BSS GVAR TEXT [Low] value type dump(variable:) dump(with:) dump(object:) EX) String stack 16byte 할당 heap 문자열 할당(짧은 문자열은 stack영역도 사용) dump(with:) copy-on-write Collection Heap print(MemoryLayout.size)//16 var fString = "a" var sString = "bb" print(MemoryLayout.size(ofValue: fString)) //16 print(MemoryLayout.size(ofValue: sString)) //16 주어진 instance 의 memor..
apple devloment https://developer.apple.com/documentation/dispatch/dispatchqos // 유저와 직접 응답형 : UI관련 DispatchQueue.global(qos: .userInteractive) // 비동기 처리 : 내부 데이터베이스 조회 등 DispatchQueue.global(qos: .userInitiated) // 일반적인 작업 DispatchQueue.global() // ProgressIndicator와 함께 지속적으로 사용되는 작업 : 지속적인 데이터 feed, Networking DispatchQueue.global(qos: .utility) // 사용자가 직접적으로 인지하지 않는 부분 : 데이터베이스 유지, 데이터 정리 등 -..
test setting xcode 14.2, iOS 16.3 We need check 3dr part library dynamic or static. Next step, check app project config(general -> framework) "Embed without signing" or "Do Not Embed" 3rd part static library use config "Do Not Embed" and use dynimic framework library You may see error messages Unable to install "App Name" Domain: com.apple.dt.MobileDeviceErrorDomain Code: -402652994 ... This app..

Objective C에서 사용하던 3rd part framework를 swift project에 사용하기 위해 framework를 추가하고 Build를 했더니 하기와 같이 link error 발생 예전에 특정버전에서 발생했던 libc++.dylib 를 찾지 못하는 이슈와 동일한것 같다. Undefined symbols for architecture arm64: "void std::__1::__sort(float*, float*, std::__1::__less&)", referenced from: 하기 두 경로중 어디서든 libc++.tdb 추가해 주면 해결 Project -> General -> Framework,Libraries, and Embedded Content Project -> Build Ph..

3rd part framwork를 만들어 배포시 bitcode를 지원 하려면 하기 와 같이 User-Defined을 추가해 주어야 한다. User-Defined BITCODE_GENERATION_MODE debug maker release bitcode BITCODE_GENERATION_MODE App빌드 시 개발용으로 빌드하면 bitcode를 확인하지 않지만 Archive 빌드 시 bitcode를 Yes로 설정하면 3rd part framwork가 bitcode를 지원하는지 확인 하게 된다. App 빌드 설정에도 User-Defined을 추가해주면 bitcode를 확인하게 되어 배포시 실수를 줄일 수 있다. debug maker경우 maker만 확인하기 때문에 Archive 빌드 시 오류가 발생하고 관..

결론부터 먼저 이야기하면 XCFramework로 변경하자. XCFramework Swfit 3rd party Framewrok를 기존 Object C에서 사용해 왔던 Fat Framwork 방식으로 만들어가다가 다양한 빌드 이슈에 직면하였고 오류의 내용들을 보면 문제가 발생한 원인이 버전 호환(swfitmodule) 및 다양한 지원에 대한 XCFramwork 추가로 인한 호환성 이슈로 판단. Project 생성 방법 Other - > Aggregate -> New Run Script Add Fat Framework Project ADD Script(New Run Script) XCFramework Fat Framework Tyep 구버전 FRAMEWORK_PATH="${SRCROOT}/../Framewo..

Project Create Target -> General -> Framework -> +Button -> Framework File import 후 사용 import simplelib let lib:simplelib = simplelib() lib.testW() 3rd part 에서 std library를 사용하였다면 app build 시 link error가 발생할 수 있다 Undefined symbols for architecture arm64: "std::__1::basic_string::operator=(std::__1::basic_string const&)", referenced from: Target Project -> Build Settings -> Linking -> Other Linke..