반응형

iOS 13

xcrun SPM error: fatal: cannot use bare repository '/Users/user/Library/Caches/...' (safe.bareRepository is 'explicit')

문제$ xcrun swift run .........Fetched https://github.com/apple/swift-argument-parser from cachewarning: 'swift-async-algorithms': skipping cache due to an error: Couldn’t fetch updates from remote repositories: fatal: cannot use bare repository '/Users/user/Library/Caches/org.swift.swiftpm/repositories/swift-async-algorithms-c3a8d752' (safe.bareRepository is 'explicit')......해결~/.gitconfig 에서 ..

iOS 2024.11.11

UITests Error가 발생할 때 No target application path specified via test configuration

UITest를 실행하려고 할 때, 아래와 같은 에러가 발생하는 경우. UITest file을 어느 Target에 추가 했는지 확인해봐야 한다. 내 경우에는 UnitTests Tartget에 UITests를 추가해서 발생한 문제였고, UITest Target을 별도로 생성해서 UITest를 구성함으로써 문제를 해결했다. ErrorMessage: testLaunchPerformance(): No target application path specified via test configuration:

iOS 2023.02.20

Xcode14 Apple Clang Compiler gnu++20

Xcode14 ReleaseNote Xcode14 Release Note Apple Clang Compiler를 보면 C++ 컴파일러의 기본 옵션이 변경(93456065)된 걸 알 수 있다. 더보기 Apple Clang Compiler New Features New C++ projects you create in Xcode use C++20 language dialect by default. (93456065) Several C++20 and C++2b papers have been implemented: C++20 papers that have been implemented: P0692R1 - Access checking on specializations P0388R4 - Permit conversio..

iOS 2023.01.03

swift. 중첩 클로져(nested closure)에서 weak self 사용?

weak self weak self 는 순환 참조(strong reference cycle)를 방지하기 위해 사용한다. 일반적으로는 escaping closure에서 self를 사용할 때, 캡쳐리스트에 선언해두고 사용한다. escaping closure에서 self를 캡쳐하면 strong reference cycle(Automatic Reference Counting in Swift Docs)이 발생하기 쉽기 때문이다. class Fetcher { var x: String? func callFetch() { self.fetchSomething { [weak self] error in self?.x = "finished" print("error : \(error)") } } func fetchSometh..

iOS/Swift 2022.04.27

swift final class. final 키워드

어느 날 PR 리뷰에 이런 코멘트가 달렸다. class newClass { > >final 키워드를 붙여주세요. 새로 생성한 class는 한 곳에서 단 한가지 용도로 사용되었다. 사실 final을 생각하면서 붙이지 않았다. 그래서 생각해보기로 했다. swift org에서 final을 이렇게 설명하고 있다. You can prevent a method, property, or subscript from being overridden by marking it as final. final을 지정하면, overriding을 컴파일 단계에서 막는다. class 에 final을 붙이면 해당 클래스는 subclassing 할 수 없다. 상속 불가. override 불가. 상속과 method override를 막는 효..

iOS/Swift 2022.04.22

Swift. Ambiguous use of 'init'

아래와 같은 형태로 코드를 작성했다. 그런데 계속 에러가 뜨면서 빌드가 안됬다. class URLProviderFactory { private let url: URL init(_ url: URL) { self.url = url super.init() } .... } class A { private func makeURLProvider(_ url: URL) { let urlProvider = url.map(URLProviderFacoty.init) } .... } Error : Ambiguous use of 'init' 말그대로 init을 이상하게(모호하게) 썼다는 뜻이다. 어떻게 해도 저 에러가 뜨길래.... struct가 아닌 class로 구현한 것에 init을 적용해서 생긴 이슈라고 생각했다.(잘못된..

iOS/Swift 2022.04.21

Xcode Device build. 시스템 키체인을 사용하고자 합니다.

개발환경을 모두 설정하고 시뮬레이션 빌드할 때는 문제가 없었는데, 디바이스 빌드를 하니, 아래와 같은 얼럿이 반복해서 떴다. 디바이스에 빌드 한 번 올릴 때마다 아이디와 패스워드를 써야 하는데, 한 번 빌드할 때 한 번이 아니고 한 5번은 입력해야 하는 것 같다. 귀찮아서 별다른 조치안하고 개발하다가, 얼럿이 더 귀찮아져서 결국 시스템 키체인에 접근했다. macOS이(가) 변경하려고 합니다. 허용하려면 관리자 이름 및 암호를 입력하십시오. macOS이(가) 시스템 키체인을 사용하고자 합니다. Keychain Access.app 을 열어서 좌측 바에 시스템 키체인 > 시스템에 접근 후, 상단 탭에서 인증서를 클릭한다. 노출된 리스트 중에서 Apple Development 인증서를 찾는다. > 마크를 열어서..

iOS 2022.03.16

Xcode에서 자꾸 인증을 하라고 한다. "Authentication failed because no credentials were provided" 대응.

오랜만에 개발 환경을 설정하니 하나하나가 다 허들이다. 심지어 M1 맥북을 새로 수령해서 환경을 만들려니, 은근 자잘하게 인텔맥과 달라서 더 손이 많이 갔다. 하나씩 해결하면서 개발 환경으르 맞춰나가다가 드디어! Xcode가 열린 순간, 다시 한번 에러가 발생했다. Xcode 왼쪽 사이드바 하단에서 라이브러리 하나가 "Uncategorized. Authentication failed because the credentials were missing" 이라고 에러를 뱉고 있었다. 다 됐다고 생각했을 때 또 에러를 만나니 이제 그만두고 퇴근하고 싶었다. 하지만 다시 한번 힘을 내서 원인을 뒤져본다. 사이드 바에서 엑스표시가 뜨는 문구를 클릭하면 얼럿이 뜬다. ssh key로 로그인을 하라는 얼럿이다. 기존 ..

iOS 2022.02.11

RxSwift 는? Reactive 프로그래밍을 알아보자 1

이전에 Combine 에 대해 알아보면서 RxSwift를 언급했다. Reactive Programming 이라는 사실만 알 뿐, 실제로 사용해서 개발한 경험은 없다. 결국엔 iOS 네이티브를 한 번 랩핑해놓은 서드파티 라이브러리 라고 생각했기 때문이었다. 비동기 처리를 위해 거대한 서드파티 라이브러리를 개발에 포함시키고 싶지 않았다. Apple에서 정식으로 지원하는 것도 아니기에 굳이 위험부담을 감수할 필요가 없었다. 그런데 이번에 합류한 조직에서 RxSwift를 적극 사용한다고 한다. 그래서 RxSwift와 조금 친해져보려고 책을 펼쳤다. RxSwift: Reactive Programing with Swift RxSwift: Reactive Programming with Swift Leverage th..

iOS/Swift 2022.02.04

Combine은 무엇인가.(비동기 연산 처리 지원 프레임워크)

요즘 iOS 개발, 그 중에서도 Swift 언어로 개발하는 곳에는 Combine이 핫한 이슈인 것 같다. 여기저기서 "이제 combine을 적용해야 하는데...", "combine으로 넘어가야겠어." 라는 소리가 들린다. 어렴풋이 저기 어딘가 있는 Combine을 한번 알아봤다. WWDC2019에서 처음 소개된 Combine은 iOS13버전 부터 사용이 가능하다. 아래는 Apple Developer 사이트에서 제공하는 Combine 에 대한 설명이다. 가져와서 한글로 옮겨봤다. Combine event-processing operator (이벤트 처리 연산자)를 결합(combining)해서 비동기 이벤트를 입맛에 맞게 핸들링하도록 하는 프레임워크. iOS 13.0+ iPadOS 13.0+ 요약 Combi..

iOS/Swift 2022.01.20
반응형