본문 바로가기

iOS & macOS6

[Swift] Profiling 방법 자주 쓰이는 프로파일링 방법 ✨ 📝 Memory Profiler 메모리가 얼마나 할당 되어 있고, 어디에 할당되어 있고, 누수 확인가능 1. 메모리 할당 확인 가능 2. 메모리 누수 등의 문제 해결 편리 3. 메모리의 과도한 할당으로 인해 앱이 느려질 경우, 사용 필요 📝 Timer Profiler 스크롤하거나 화면 전환이 될 때 갑자기 느려지는 현상이 일어날때, 해당 경로를 찾아 시간 복잡도를 낮추면 끊기거나 느려지는 현상이 없어짐 1. 뱡목을 유발하는 부분을 찾아 해결하기 편리 2. 각 함수 단위의 수행 시간 확인 가능 3. 호출 경로도 확인 가능 2024. 2. 20.
[iOS] NearbyInteraction - NISession이 .finding에서 .found로 넘어가지 않는 문제 해결 문제 상황 NISession이 .finding에서 .found로 상태 변경이 되지 않았습니다. NISessionManager 파일을 NISession을 수정 전으로 되돌려보니 잘 넘어간다. 뭐가 문제였을까? 해결 방법 문제 상황이 일어나는 NISessionManager 코드를 뜯어보았습니다. 이전에 NISessionManager를 수정하는 과정에서, iOS 12.0에서는 지원하지 않는다. 대신에 다른 함수를 써라. 는 경고사항을 마주한 적이 있는데 여기서 코드를 unarchivedObject 로 변경하였습니다. // 변경 전 func dataReceivedHandler(data: Data, peer: MCPeerID) { guard let receivedData = try? NSKeyedUnarchive.. 2024. 1. 13.
[macOS] SandBox 환경에서 개발 불가능한 상황 발생 샌드박스란? https://bokoo.tistory.com/entry/macOS-%EC%83%8C%EB%93%9C%EB%B0%95%EC%8A%A4%EB%9E%80 [macOS] 샌드박스란? App Sandbox란? 앱이 손상된 경우 손상을 방지하기 위해 macOS 앱의 시스템 리소스 및 사용자 데이터에 대한 액세스를 제한합니다. 앱 샌드박스는 권한을 통해 요청된 리소스에 대한 앱의 액세스를 bokoo.tistory.com -600에러와 샌드박스 상황 샌드박스 환경의 Xcode에서 applescript를 실행하여 다른 앱을 동작시키면 -600에러가 발생 에러 내용 AppleScript 실행 오류: { NSAppleScriptErrorAppName = Numbers; NSAppleScriptErrorBrie.. 2024. 1. 13.
[macOS] NSImage가 메모리에서 해제되지 않는 오류 해결 메모리 누수 프로파일링을 통해 메모리 누수 발생 확인 1. 메모리 누수 상황 1 - NSImage메모리 해제 안됨 원인 파악 프로파일링 결과, 앱의 한 사이클을 모두 돈 후, SelectFileView로 되돌아왔을때 VM에서 NSImage를 저장하는 메모리를 해제시켜주지 못하고 있음 똑같은 이슈: https://stackoverflow.com/questions/17666679/uiimageview-not-releasing-memory-according-to-vm-tracker-low-memory-warnings 참고 Allocation, Leak, VM Tracker 분석 결과 Allocation: 앱의 한 사이클을 다 돌고 난 후에도 CGImage가 VM영역에서 해지되지 못함 Leak: 여러가지 원인으.. 2024. 1. 13.