-
Xcode 15.x 에서 갑자기 png 이미지가 회색으로 표시되는 현상
몇년째 잘 사용중이던 png 이미지 파일에서 알파채널이 포함된 부분이 회색으로 색칠되어 나오기 시작했다. Xcode 15.2인지... 이전인지는 모르겠다. 애플 개발자 포럼에서 해답을 찾았는데, 맥으로 이미지를 열고 cmd + i 를 누르면 이미지의 심도(bit)를 확인할 수 있다. 이 심도가 4bit라면 새로운 Xcode(15.x)에서 렌더링과정에서 문제가 생기는 이슈였다. 따라서 8비트로 바꿔주면 되는 문제였다. #!/bin/bash # input_folder 변수에 스크립트가 있는 폴더 경로를 설정합니다. input_folder="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # input_folder 내 *.png 파일을 찾아 while 루프로 순회합니..
-
XCode 15.3 프로젝트 안열리는 에러 (Abort)
Xcode 15.3으로 업데이트 한뒤에 매일 보던 프로젝트가 열리지 않았다... 아무리 구글링 해봐도 해결법은 없었는데 커뮤니티 단톡방에서 답을 얻었다. Path, 폴더, Assets 등에 한글로 된 것들이 있을때 크래시가 나는것이었다. 1. Xcode15.2를 다운받아서 Xcode 내에서 폴더와 에셋들을 전부 영어로 바꿔준다. 2. 실제 폴더명도 영어로 바꿔준다. (Finder 또는 터미널에서) 3. pbxproj 파일 열고 안바뀐거 있나 확인해본다. 이과정 끝나니까 열렸다 ㅠㅠ 한글 이슈기 때문에 구글링해도 잘 안나왔나보구나... https://forums.developer.apple.com/forums/thread/748340 XCode 15 Crash when opening my pro… | Ap..
-
Xcode) 폴더 vs 그룹 (Folder vs Group)
Xcode에서 "Folder"와 "Group"은 프로젝트 내에서 파일을 구성하는 두 가지 주요 방법입니다. 둘 다 프로젝트 내의 파일을 구조화하고 그룹화하는 데 사용되지만, 그들 사이에 몇 가지 중요한 차이점이 있습니다. Group "Group"은 물리적으로 디스크에 폴더를 만들지 않고 Xcode 프로젝트 파일 내에서 파일을 그룹화하는 역할을 합니다. 프로젝트 내에서 그룹을 만들고 파일을 이러한 그룹에 추가할 수 있습니다. 이것은 단순히 프로젝트 구조를 시각적으로 구성하기 위한 용도이며, 실제로 디스크에 해당 파일이 폴더 구조로 저장되지는 않습니다. 이러한 그룹은 프로젝트 파일의 XML로 표현되며, 파일 시스템에서는 실제 폴더가 아닌 단순히 Xcode에서 보이는 그룹으로만 존재합니다. Folder "Fo..
-
(RxSwift) Error 다루기, Retry, Catch
Observable -> Subscriber 로 ErrorEvent가 전달되면, 구독이 종료되고 더 이상 이벤트를 전달받지 못하게 된다. 그렇게되면 더 이상 새로운 이벤트에 대해서 핸들링할 수 없게된다. 일반적인상황에서 Observable은 Network를 요청하고, Subscriber는 UI를 업데이트한다. 이때 ErrorEvent가 발생하면 구독이 종료되어 더 이상 UI를 업데이트 하지 못하게된다. 이러한 문제를 catch 혹은 retry를 통해서 해결할 수 있다. Catch (Operator) CatchError를 사용하면 Next, Completed 이벤트는 평소대로 구독자에게 전달한다. 하지만 ErrorEvent가 발생하면 새로운 Observable을 생성하여 구독자에게 전달해주거나, 기본값을 ..
-
RxSwift (2) - Subject & Relay
Subject 이벤트 전달 방향: Observable -> Observer Observer는 이벤트를 전달할 수 없고, Observer를 구독할 수도 없다. (Observable만 구독할 수 있다.) 이 사이에서 도움을 주는게 Subject이다. Observable -> Subject(Observable or Observer) -> Observer 요런식으로 Subject는 Observable이나 Observer가 원래 못하던 이벤트 전달을 도와주게된다. 즉, Subject는 Observer도 될 수 있고, Observable도 될 수 있다. 두가지 역할을 모두 할 수 있다. 4가지 종류의 Subject PublishSubject BehaviorSubject ReplaySubject AsyncSubjec..
-
RxSwift (1) 주요 개념 (Observable , Subscribe, Disposable, Operator)
Observable 혹은 Observable Sequence , Sequence와도 같은 말이다. 관찰 가능한 객체이며, 구독자가 이를 구독하여 “이벤트”를 받을 수 있다. 이벤트에는 3가지 종류가 있다. 이벤트의 전달 방향 : Observable -> Observer 이벤트의 관찰 방향 : Observable Disposable in observer(50) observer(.next(100)) observer() return Disposables.create() } 2. From 연산자를 이용한 생성 let observerble2 = Observable.from([-50, -100]) SubScribe Observable은 Observer에게 이벤트를 전달한다. 이 전달되는 시점은 observer가 o..
-
(iOS) 통신사 정보 CTCarrier Deprecated 이슈 iOS 16.4.1~
회사앱에 접속시 통신사이름을 서버로 넘겨주고 있었는데, iOS 16.4.1 버전부터 통신사 이름을 리턴해주는 CTCarrier 클래스가 Deprecated되었다. (사실 16부터지만 16.4.1부터 Deprecated가 적용되었다) 애플 포럼을 통해 확인하니, 보안상의 문제로 통신사 정보를 get 할만한 대체 클래스 없이!!! Deprecated 한다고 답변이 있었다. 따라서 통신사 이름을 얻는건 포기하고, 접속한 아이폰이 개통된 휴대폰이 맞는지를 확인하기로 했다. (보안상의 이유) # 해결 방법은 단말기 기지국 사이의 무선접속(RadioAccessTechnology)을 확인하여 공기계인지, 유효한 Usim인지 체크하기로 했다. # ServiceCurrentRadioAccessTechnology의 종류 ..
-
(iOS) UITabBar, UINavigationBar shadow 제거, border 제거
2023. 4. 25. 문제 Custom TabBar와 NavigationBar 를 만들일이 생겼는데 VC와 닿는부분에 자꾸 Border? Shadow? 같은 줄이 하나 생긴다. Hierarchy를 보니 최상위 계층에 까만 ImageView가 뜬다. 그래서 구글링을 좀 해보니 UINavigationBarAppearance 객체의 backgroundImage 프로퍼티와 shadowImage프로퍼티에 빈 이미지를 넣어주면 원하는대로 색을 변경할 수 있다는 글을 보았다. if #available(iOS 13.0, *) { let appearance = UINavigationBarAppearance() appearance.backgroundImage = UIImage() appearance.shadowImage..
- 방문자수
전체 방문자
오늘 방문자
어제 방문자