일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 사전청약
- 고금리
- ndk r24
- audio record
- 청약
- Andorid
- KB
- 달러예금
- EditText
- Android
- MG더뱅킹정기예금
- kotlin
- ndkVersion
- Swift
- JetPack
- Android Studio
- Data Binding
- gradle
- arm-linux-androideabi
- CHAT GPT
- RETROFIT
- ios
- BindingAdapter
- java
- 예금
- 3rd framework
- 용산 호반써밋 에이디션
- Mac
- ChatGPT
- 새마을금고
- Today
- Total
목록iOS/swift (13)
pear
AppDelegate Function Add (UIApplicationDelegate function override) func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask { // portrait fixed return UIInterfaceOrientationMask.portrait }
스위프트 메모리 타입 요약 [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..
Mobile/Web 등에서 간단한 녹음 API들은 일반적으로 FLOAT32LE/FLOAT32BE 사용한다. 내게 필요한 스펙은 PCM format은 S16LE 이다. swift record - 1을 참고하여 내 스펙에 맞게 변환 import Foundation import AVFoundation //음성버퍼와 녹음 이벤트를 전달할 프로토콜 protocol RecordProtocol: class { func onBuffer(len:UInt32, buffer:[Int16]) func onEvent(type:typeRecord, value:Int) } //녹음 이벤트 상태 값 정의 enum typeRecord: Int{ case start = 1, stop = 0, used = 2, err = 3 } clas..
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) // 사용자가 직접적으로 인지하지 않는 부분 : 데이터베이스 유지, 데이터 정리 등 -..

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

Apple 에서 M1 Chip을 사용하는 MAC이 추가되면서 발생한 이슈로 보인다. Simulator환경에서 APP을 실행시 아래와 같은 오류 문구를 볼 수 있다. Error creating LLDB target at path ... using an empty LLDB target which can cause slow memory reads from remote devices. 사용하는 MAC이 M1 Chip을 사용하지 않는다면 아래와 같이 Excluded Architectures 의 Simulator arm64 설정을 추가 해주면 해결이 된다. M1 Chip MAC은 없지만 아마 M1 Chip이라면 x86_64로 설정해야 할 것 같다.

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

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