반응형 분류 전체보기111 [iOS/Xcode] DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead 에러 내용: DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead 원인: Xcode 15.0 에서 iOS17 시뮬레이터를 사용할 수 있게 되면서 에러 발생 해결: CocoaPods 1.13.0 버전에서 버그 수정 // 최신 버전으로 업데이트 gem install cocoapods --pre // 그리고 업데이트해줘야함 pod update // 버전 확인 pod --version Ref. https://stackoverflow.com/questions/77219650/dt-toolchain-dir-cannot-be-used-to-evaluate-library-search-paths-use-tool.. 2024. 3. 8. [iOS/Xcode] Error ITMS-9017: “Invalid App Store Icon” 에러 내용: Error ITMS-90717: "Invalid App Store Icon. The App Store Icon in the asset catalog in 'YourApp.app' can't be transparent nor contain an alpha channel." 원인: 앱 아이콘 알파 채널을 포함할 수 없음. 해결: 앱 아이콘 알파 채널을 없애야 함. 아이콘 이미지 ‘미리보기’로 열기 → 파일 탭 내보내기 선택 → ‘알파’ 체크 해제 Ref. https://stackoverflow.com/questions/46585809/error-itms-90717-invalid-app-store-icon 2024. 3. 8. [iOS/Xcode] EXC_BAD_ACCESS 에러: Thread 1: EXC_BAD_ACCESS 원인: 해당 에러 원인이 다양하므로 원인 파악 필요 해결: 에러 원인 파악을 위한 아래 설정 필요 XCode 상단 Product 메뉴 -> [Scheme] -> [Edit Scheme] 탭 선택 Run ->[Diagnostics] 탭 -> [Zombie Objects] 체크 로그를 통해 해당 에러가 발생한 원인을 확인할 수 있음. 2024. 3. 8. [iOS/Xcode] Xcode Archive Stuck Xcode Archive 멈추는 이슈와 관련 내용을 기록합니다. 에러 내용: Xcode 아카이빙 멈추는 이슈 발생 원인: Firebase Crashlytics 스크립트 추가하면서 발생한 이슈 # Type a script or drag a script file from your workspace to insert its path. if [ "${CONFIGURATION}" != "Debug" ]; then "${PODS_ROOT}/FirebaseCrashlytics/run" "${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp ${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist -p ios ${.. 2024. 3. 8. [iOS/Xcode] Missing file libarclite_iphoneos.a (Xcode 14.3) Xcode 14.3 이상 버전에서 Pod 관련 에러 발생한 내용을 기록합니다. 에러 내용: SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a'; try increasing the minimum deployment target 원인: Xcode 14.3 부터 위 에러 발생 해결: Podfile에 아래 내용 추가 post_install do |installer| installer.generated_projects.each do |project| project.targets.e.. 2024. 3. 8. [RxSwift] Traits Part 2. RxCocoa Traits RxSwift Traits 기반으로 UI 개발을 위해 특화된 RxCocoa 에서 사용하는 Wrapper 구조체 Driver UI 계층에서 반응형 코드를 작성하는 직관적인 방법을 제공하거나 앱을 Driving 하는 데이터 스트림을 모델링하는 데 사용됨 error 을 방출하지 않음, 시퀀스 오류가 발생하더라도 앱은 input 에 대해서 반응하지 않음. Main Scheduler 사이드 이펙트를 공유함(share(replay: 1, scope: .whileConnected)) 기본 값으로 가장 최근에 방출했던 아이템 값을 방출함. 구독할 때마다 새로운 Observable 이 생성되지 않고 공유할 수 있음. .while Connected: Subscriber 가 0개가 되고 dispo.. 2024. 3. 8. [RxSwift] Traits Part 1. RxSwift Trait 관한 내용을 기록합니다. Traits Observable 시퀀스의 특성을 정의하는 Wrapper 구조체 직관적이고 작성하기 쉬운 코드를 작성하는데 도움을 줌 .asObservable() 호출을 통해 Observable 시퀀스로 변환될 수 있음. Traits 사용 이점 코드 간결성 및 가독성 향상 특정 상황에 맞는 Observable 시퀀스 생성 및 사용 용이 유지 관리 및 테스트 용이성 향상 Single 단일 element 또는 error를 방출 API 호출 결과 값 또는 데이터베이스에서 단일 레코드를 가져올 때 유용 .asSingle() 호출을 통해 Single 로 변환 가능 API 결과 예시 func fetchAllItems() -> Single { return Single... 2024. 3. 8. [RxSwift] Error Handling RxSwift에서 에러 핸들링에 관한 내용을 기록합니다. RxSwift에서의 에러 관리 Catch error 를 새로운 Observable 또는 값으로 처리 catch(_ handler:) 클로저를 매개변수로 받아 완전히 다른 형태의 observable로 변환 public func `catch`(_ handler: @escaping (Swift.Error) throws -> PrimitiveSequence) -> PrimitiveSequence { PrimitiveSequence(raw: self.source.catch { try handler($0).asObservable() }) } 예시 func getUser(id: Int) -> Observable { return network.getUser(id.. 2024. 3. 8. [iOS] Carthage Carthage의 특징과 사용법을 기록합니다. Carthage 오픈소스 라이브러리를 관리해주는 Dependency Manager decentralized(탈중앙화) Swift 코드 기반 바이너리 프레임워크 제공 미리 빌드된 프레임워크 사용(오래 걸릴 수 있는 단점 존재) → CocoaPods 이용할 때 보다 빠른 빌드 속도 프로젝트 파일이나 빌드 설정을 수동으로 해야 함. → Xcode 설정 또는 프로젝트 파일에 영향을 주지 않음. .xcodeproj로 프로젝트 실행 라이브러리 업데이트 및 제거가 쉬움. CI 서버에 쉽게 통합시킬 수 있음. 비교적 최신 프레임워크라 지원하지 않는 라이브러리들이 있음. 동적 프레임워크에서만 작동함. Carthage 적용해보기 1. Homebrew를 이용해서 carthage.. 2023. 1. 12. [Design Patterns] ReactorKit ReactorKit에 관해 정리한 것을 기록합니다. ReactorKit 반응형 및 단방향 Swift 애플리케이션 아키텍처를 위한 프레임워크 옵저버블 스트림을 통하여 각 User Action & View States 레이어에 전달 View만 Action을 방출하며, Reactor만 States를 방출함 ReactorKit’s Design Goal Testablility → 뷰에서 비즈니스 로직을 분리하여 테스트하기 쉬워짐. Start Small → ReactorKit은 애플리케이션 전체가 이를 따를 필요 없이 부분적으로 적용할 수 있음. → ReactorKit을 사용하기 위해 전체 코드를 재작성할 필요 없음. Less Typing → ReactorKit은 단순한 일에 복잡한 코드를 회피하며, 다른 아키텍처.. 2023. 1. 10. 이전 1 2 3 4 5 ··· 12 다음 반응형