본문 바로가기

iOS/이슈32

[iOS Issue] loadView override시 view가 생성되지 않는 문제 https://developer.apple.com/documentation/uikit/uiviewcontroller/1621454-loadview loadView() | Apple Developer DocumentationCreates the view that the controller manages.developer.apple.comViewController에서 view를 load해올 때 실행되는 loadView함수와 관련된 문제이다.  사실 '문제'라고 하기엔 그냥 apple이 의도한 사항인 것 같긴 하지만 내가 알고 있던 개발 상식으론 선뜻 동작구조가 이해가 되지 않는 일이라 문제라고 지칭했다.  일반적으로 ViewController의 view를 만드는 방법은 크게 2가지이다.code로 View짜기.. 2024. 11. 10.
[iOS Issues] NWPathMonitor thread safety crash issue https://developer.apple.com/documentation/network/nwpathmonitor NWPathMonitor | Apple Developer DocumentationAn observer that you use to monitor and react to network changes.developer.apple.com네트워크 상태 탐지를 위한 API인 NWPathMonitor 사용 중 발생한 thread safety issue이다. 근본적인 원인은 이전에 공유한 thread safety issue와 같다. [iOS Issue] Multi thread 환경에서 Dangling Pointer Crash 이슈앱의 Logging을 담당하는 모듈에서 multi thread 환경에서 동작.. 2024. 11. 10.
[iOS Issue] Multi thread 환경에서 Dangling Pointer Crash 이슈 앱의 Logging을 담당하는 모듈에서 multi thread 환경에서 동작 시 잦은 Crash가 발생하는 이슈가 생겼다. 결론만 말하자면 원인은 Singletone 클래스에 있는 Thread-safety 처리가 되어있지 않은 stored property에 여러 스레드가 동시에 setter에 접근을 하면서 Dangling pointer 크래시가 발생했다. 이슈 상황은 크게 2가지 였다. Unknown Object Release 이 경우는 Setter가 여러 스레드에서 동시에 불리면서 이미 Retain Count가 0임에도 불구하고 추가로 Release를 시도하면서 생기는 크래시였다. 다음과 같은 상황으로 보면 될 것 같다.stored property에 이미 instance가 존재하는 중 (retain c.. 2024. 5. 5.
[iOS Issue] command codesign failed with a nonzero exit code 동일한 팀의 인증서 2개가 키체인에 동시에 존재하는 경우, Xcode에서 어떤 인증서를 써야할지 몰라서 빌드 시 생기는 이슈 키체인에서 Apple Development 인증서를 전부 삭제 Xcode -> Setting -> Account에서 변경을 원하는 Team 계정을 더블 클릭 왼쪽 하단의 '+' 를 눌러서 Apple Development 인증서를 새로 생성한다. (3-1 스크린샷 참조) 맥북 키체인에 접속해보면 새로운 인증서가 생성되었을 건데, 중요한건 '항상 신뢰'로 바꾸면 안되고 '시스템 초기 설정 사용'으로 놔두어야 한다. Xcode 완전 종료 후 새로 실행하고 Project파일의 Signing Certificate에 보면 Updating provisioning profile이라고 뜨는데 업데.. 2024. 3. 17.