728x90

분류 전체보기 298

Xcode Asset Namespace 설정

안녕하세요. Xcode Asset에 Namespace 설정할 수 있다는 것 알고 계셨나요? 아주 간단하니 빠르게 살펴볼게요. Assets에서 폴더 선택 후 Provides Namespace 체크박스를 클릭하면 Namespace를 설정할 수 있어요. 코드에선 이렇게 이름에 Namespace까지 포함시켜줘야 합니다. 또한, 중첩된 폴더 하나하나 마다 Namespace를 설정해줄 수 있습니다. 이번 글은 여기서 마무리.

Xcode 2023.05.31

[Fastlane] [!] Read-only file system @ dir_s_mkdir - /Desktop (Errno::EROFS) 해결방법

안녕하세요. Fastlane 사용하던 중에 이런 에러가 발생했습니다.. 원인은 바로 Fastfile의 output_directory 때문이었습니다. output_directory의 경로를 Desktop에 있는 폴더로 했더니 이런 문제가 발생하더라구요. output_directory의 경로를 Read-only가 아닌 경로로 수정하면 해결됩니다! (저는 output_directory 경로를 /Users/{User}/Developer으로 수정했습니다ㅎㅎ) 이번 글은 여기서 마무리.

TroubleShooting 2023.05.30

SwiftUI View Lifecycle에 대해 알아보자.

안녕하세요. 그동안 대충은 알고 있었던 SwiftUI의 View Lifecycle에 대해서 정확하게 알고 가는 시간을 가져볼게요. 개인적으로 Lifecycle 개념도 중요하지만, Lifecycle이 정확하게 언제 호출되는지 (ex. 렌더링 전? 뷰 계층 제거된 후?)도 중요하다고 생각하기 때문에 로그 찍어보면서 하나씩 살펴보려고 합니다. (관련 공식 문서가 별로 없더라구요.. 그래서 추측성 분석이 될 수도 있을 것 같아요ㅠ) # Lifecycle method ## onAppear View가 보이기 전에 action을 수행하는 함수입니다. View가 첫 렌더링 되기 전에 action 클로저가 끝나는 것을 보장합니다. 그래서 아래처럼 onAppear에 수행시간이 오래 걸리는 action을 등록하면, 그만큼 ..

SwiftUI 2023.05.28

맥북에서 자동으로 대문자로 바뀌는 문제 재현 방법.. (해결 방법은 아직 모름;;)

혹시 맥북에 외장 키보드(특히 커스텀 키보드) 사용할 때 갑자기 대문자로 바뀌는 문제... 경험해 보신 적 있으신가요..? 한번 대문자로 바뀌면 Caps Lock을 눌러도 한/영 전환만 될 뿐 소문자로 바꾸려면 다시 Caps Lock을 꾹 눌러줘야 하고.... (그렇다고 난 Caps Lock을 꾹 누른 적도 없고... 허헣..) 안타깝게도 아직까지 해결방법은 못찾았는데요. 문제를 재현시킬 방법은 찾았습니다...;; Caps Lock + Backspace를 하면 자동으로 대문자로 바뀌는 것 같아요. 뭔가 커스텀 키보드 기판 문제인지... 맥북 키보드나 매직 키보드에서는 재현이 안되네요.. 혹시 해결방법 알고 계신 분 있으시면 공유 꼭꼭 부탁드리겠습니다. 이번 글은 여기서 마무리.

취미 2023.05.27

overlay + matchedGeometryEffect로 Hero Anmiation 비슷하게 만들기

안녕하세요. overlay와 matchedGeometryEffect 수식어를 잘 활용해서 SwiftUI에서 Hero Animation과 비슷하게 만드는 방법을 가볍게 공부했고 기록 목적으로 글을 쓰려고 합니다ㅎㅎ matchedGeometryEffect 에 대해선 정리해 둔 글이 있으니 참고해 주세요! matchedGeometryEffect 안녕하세요. 이번에는 matchedGeometryEffect에 대해 공부해 볼게요. # matchedGeometryEffect matchedGeometryEffect는 SwiftUI의 수식어 중 하나입니다. Defines a group of views with synchronized geometry using an identifier and namesp phillip5..

SwiftUI 2023.05.24

[SwiftUI] Unknown preview provider 해결방법

안녕하세요. 혹시 SwiftUI Preview에서 `Unknown preview provider` 라는 에러를 보신 적 있으신가요?? Xcode 14.3을 쓰고 있는데 저는 이런 에러로그가 뜨면서 Preview가 계속 안보이더라구요... 며칠 고민하다가 드디어 원인을 찾았습니다ㅠㅠ ## 원인 전 스터디용으로 만든 프로젝트 이름은 아래처럼 맨 앞에 날짜(숫자)를 적어둡니다. 이게 원인이었던 것 같아요. (정확히 기억은 안 나지만 Xcode 13에선 문제없었던 것 같아요..;;) ## 해결방법 프로젝트 이름을 영어로 시작했을 때 문제없이 잘 동작합니다. 이번 글은 여기서 마무리.

TroubleShooting 2023.05.17

[Swift 5.8] weak self 사용 시 self 생략 가능해짐

안녕하세요. Swift 5.8부터 클로저에서 [weak self] capture를 사용할 때 self가 unwrapped 되었으면 self를 생략할 수 있다는 것 알고 계셨나요?? (전 몰랐습니다..) 알아볼게요ㅎㅎ 이전 Swift 5.3에서도 클로저 안에서 self를 생략할 수는 있었어요. (SE-0269) 다만, 이때는 [self]로 capture 했을 때만 self를 생략할 수 있었고 [weak self]는 지원하지 않았습니다. Swift 5.8부터는 클로저 내부에서 [weak self]를 선언했다면, guard-let, if-let 등 self를 unwrapping 한 이후부터는 self를 생략할 수 있게 되었습니다. 단, nested 클로저의 경우 retain cycle 위험이 있기 때문에 se..

Swift 2023.05.15

[SwiftUI] 커스텀 폰트 사용할 때 터치 시 공백 자간이 줄어드는 현상

안녕하세요. SwiftUI에서 커스텀 폰트를 사용할 때 이상한 점을 발견했습니다. 우선 아래 코드를 살펴볼게요. 커스텀 폰트를 Text 뷰에 적용한 단순한 코드인데, 화면을 터치하면 글자 간격이 갑자기 줄어드는 현상이 발견되었습니다. 이상하죠...? 조사를 해보면서 몇 가지 알아낸 사실이 있습니다. 공백이 없는 문자열은 문제없음. -> 즉, 공백의 자간이 줄어드는 것 같음. 기본 폰트에서는 문제 없음. VStack, Group 등 컨테이너뷰가 감싸고 있는 형태일 때만 재현됨. 정확한 이유는 잘 모르겠지만, SwiftUI -> UIKit으로 렌더링하는 과정에서 발생하는 버그 때문이라는 추측글을 봤습니다. 이 문제를 해결하기 위한 제 나름의 방법을 공유드릴게요. # 해결방법 뷰에 강제로 자간(trackin..

TroubleShooting 2023.05.14

[CocoaPods] link_stat failed no such file or directory (2) 해결방법

CocoaPods을 사용하는 환경에서 Xcode 빌드 시 link_stat failed no such file or directory (2) 라는 에러가 발생했을 때의 해결방법 공유합니다. (참고로 저는 Xcode 14.3을 사용하고 있고 Alamofire.framework에서 이슈가 발생했어요.) xcworkspace > Pods > Targets Support Files > Pods-xxx > Pods-xxx-frameworks.sh 파일에서 아래 코드를 이렇게 바꿔주세요. (readlink 명령어 뒤에 -f 옵션을 넣어주세요.) 그럼 에러가 바로 해결됩니다ㅎㅎ 다른 해결방법으로는 Xcode를 14.3 -> 14.2로 다운그레이드시키는 방법도 있다고 해요. (저는 안해봐서 진짜 해결되는지는 잘 모르..

TroubleShooting 2023.05.11

Moya timeout 설정하기

안녕하세요. 이번에는 Moya에 timeout 설정하는 방법 공유드리려고 합니다. (Moya 15.0.0를 기준으로 Moya가 제공하는 GitHub API 예시를 활용할게요.) timeout 설정을 해주고 싶으면 MoyaProvider의 requestClosure 인자를 활용하면 됩니다. 아래 코드를 참고해 주세요! 끝! # 참고 - https://github.com/Moya/Moya/tree/15.0.0 GitHub - Moya/Moya: Network abstraction layer written in Swift. Network abstraction layer written in Swift. Contribute to Moya/Moya development by creating an account o..

iOS 2023.05.02