iOS 4

[iOS] Debuggging, LLDB

LLDB란?LLDB(Low-Level Debugger)는 LLVM 프로젝트의 일부로 개발된 디버거입니다. Xcode는 버전 5부터 기존의 GDB(GNU Debugger)를 대신하여 LLDB를 기본 디버거로 사용하고 있습니다.LLDB 시작하기앱을 실행하고 Breakpoint에 걸리거나 pause 시키면 콘솔에 (lldb)가 나타납니다.LLDB 기본 명령어 문법LLDB는 터미널 기반 인터페이스에서 명령어를 입력해 디버깅을 수행합니다.(lldb) command [subcommand] -option "this is argument"LLDB 자주 사용하는 명령어명령어설명breakpoint set -n 함수명특정 함수에 브레이크포인트를 설정breakpoint set -f 파일명 -l 라인번호특정 파일의 라인에 브레..

iOS 2024.11.12

[iOS] Debugging, Breakpoint

실행 중인 앱을 일시 정지하려면 브레이크포인트!소스 코드에서 버그가 의심되는 위치를 찾았다면, 해당 줄에 브레이크포인트를 설정하여 디버거가 일시 정지하도록 만들 수 있습니다.버그의 정확한 위치를 모르는 경우에는 심볼릭 브레이크포인트, 이슈 브레이크포인트로 특정 조건에서 중단되도록 설정할 수 있습니다.또한, 반복 작업 중 발생하는 버그나 특정 조건에서만 발생하는 문제를 추적하려면 브레이크포인트에 조건을 지정할 수 있습니다.브레이크포인트 위치 지정하기코드에서 앱 실행을 일시 정지할 위치로 이동한 뒤, 소스 편집기의 행 번호 또는 여백을 클릭하여 브레이크포인트를 설정합니다. 그러면 해당 줄에 브레이크포인트 아이콘이 표시됩니다.브레이크포인트를 끌어서 위아래로 이동하거나 여백 바깥으로 끌어내면 삭제할 수 있습니다..

iOS 2024.08.26

[iOS] App's life cycle

앱의 생명주기(Application Life Cycle)는 앱이 실행되고 종료되는 과정에서 다양한 상태로 전환되는 일련의 과정을 의미합니다.이러한 상태 전환은 시스템 이벤트에 의해 발생하며, 각 상태에 따라 앱이 수행할 수 있는 작업이 달라집니다.앱의 상태(App State)Not Running앱이 실행되지 않았거나 완전히 종료된 상태입니다.Foreground - Inactive앱이 실행 중이지만 사용자 이벤트를 받을 수 없는 상태입니다.멀티태스킹 창에 진입하거나 전화, 알림 등의 인터럽트로 인해 이 상태로 전환될 수 있습니다.Foreground - Active앱이 실행 중이며 사용자와 상호작용할 수 있는 상태입니다.일반적으로 Inactive 상태를 거쳐 이 상태로 전환됩니다.Background - Ru..

iOS 2024.08.20

[iOS] App SandBox

📦 SandBox란운영체제의 커널 수준에서 시행되는 접근 제어 기술로, 외부 프로그램이 보호된 영역에서 동작하게 하여 시스템이 부정하게 동작되는 것을 막는 보안 형태입니다. iOS에서는 각 앱이 설치될 때마다 샌드박스 공간이 생성되어, 해당 앱이 필요한 데이터를 저장하고 다른 앱과의 데이터 공유를 제한합니다. App Store에서 유통되는 App들은 모두 App SandBox를 적용시켜야만 합니다.🧪 샌드박스가 적용되지 않은 앱의 경우샌드박스가 적용되지 않은 앱은 실행하는 사용자와 동일한 모든 권한을 가지며, 사용자가 접근할 수 있는 모든 리소스에 접근할 수 있습니다.따라서, 해당 앱이나 연결된 프레임워크에 보안 허점이 발생하면 해커는 이를 악용하여 앱을 제어하고, 앱에서 접근 가능한 리소스에도 접근..

iOS 2024.08.20