본문 바로가기

전체 글530

[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] '==' vs '===' https://ios-development.tistory.com/393 [iOS - swift] == 와 === 의 차이 (+ Equtable) `==` vs `===` a == b: a의 값과 b의 value가 같은지 비교 let value1 = 1 let value2 = 2 print(value1 == value2) // false a === b: a가 참조하고 있는 인스턴스와 b가 참조하고 있는 인스턴스가 같은지 비교 swift에서는 크 ios-development.tistory.com == vs === == 각 변수의 Value를 비교한다. Stack 영역의 값을 비교 Equatable을 채택해서 static func ==() method를 선언하면 사용할 수 있다. === 각 변수가 참조하고 있.. 2024. 3. 17.
[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.
[IT용어] Adhoc https://jake-seo-dev.tistory.com/473 프로그래밍에서 말하는 애드혹 (ad-hoc, adhoc) 이란? 프로그래밍에서 말하는 애드혹 (ad-hoc, adhoc) 이란? 라틴어로 "for this particular purpose" 이다. 특정 상황에서만 정답이 되고 일반화될 수 없는 해답을 말한다. 그러므로 재사용되는 것이 거의 불가능 jake-seo-dev.tistory.com Ad-hoc 프로그래밍에서 말하는 '애드혹'이라는 말은 특정한 상황에서만 사용할 수 있고 일반적으로, 공통적으로 사용할 수 없는 Solution을 의미한다. 보통은 일반적으로 사용할 수 있는 설계를 할 수 없는 상황일 때 사용되므로, 프로그래밍 관점에선 부정적인 의미가 강하다. ex) 1 + 1의 결과.. 2024. 3. 17.