DK308C
close
프로필 배경
프로필 로고

DK308C

  • 분류 전체 보기 N
    • CS 지식
      • 컴퓨터 구조와 운영체제
      • Network
    • 알고리즘
    • iOS N
      • Objective-C N
      • App
      • Error
    • Cryptic
    • Study
    • TIL
    • 후기
    • 회고
      • 매주 회고
    • etc
  • 홈
  • 태그
  • 방명록
[Objective-C]SceneDelegate 이후 바뀐 UIWindow 접근법

[Objective-C]SceneDelegate 이후 바뀐 UIWindow 접근법

안녕하세요?iOS 13에 바뀐 걸 왜 2025년에... ...????? 라는 생각이 들기는 하지만살다보면 이해할 수 없는 일이 있는 법이다 보통 회사에 남아 있는 레거시 코드가 그렇다 찾아보면 Swift 기반 코드들은 많이 나오는데 Objective-C 에서 변경하는 코드들은 많이 안 나오더라 기존 코드는 아래와 같다.SceneDelegate를 사용하지 않는 프로젝트의 경우,window 변수를 사용하기 위해서는 보통 아래와 같은 선언을 사용한다. UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow; UIWindow *window = [[[UIApplication sharedApplication] dele..

  • format_list_bulleted iOS/Objective-C
  • · 2025. 6. 13.
  • textsms
[Instruments] Time Profiler 사용해서 앱이 멈추는 이유 찾기

[Instruments] Time Profiler 사용해서 앱이 멈추는 이유 찾기

분명........성능을 생각하며 개발하는데도 어느 순간 보면 앱이 멈추는 hanging 현상이 일어날 때가 있다. hanging 현상이 일어나지 않는 게 최고지만 마주하게 된다면 받아들이고 이별할 방법을 강구해야 한다. 환멸 격노 좌절 종말이 오기 전에 적당히 공포에서 탈출해야 한다.Xcode는 대부분의 경우에 나를 화나게 하는 경우가 많지만 좋은 기능이 꽤 많다. 그 중 하나는 Instruments인데, hanging 현상 debuging에 유용한 건 Time profiler이다. Time profiler 를 켜고 왼쪽 위 녹화 버튼을 누른 이후에 해당 현상을 재현해 보면 위와 같은 사진이 나온다.Hangs에 나와 있는 빨간 부분이 앱이 멈춰 있던 부분이다. ^__^ 아니면 xcode에서..

  • format_list_bulleted 카테고리 없음
  • · 2025. 5. 8.
  • textsms

Arithmetic Overflow in Swift & Objective-C

최근 Objective-C로 된 소스를 Swift로 바꾸는 작업을 하고 있다. (이젠 거의 막바지라는 것이 믿기지 않는다.)Objective-C에서는 C와 동일한 타입으로 사용할 수 있었지만, Swift에서는 C의 unsigned char, unsigned int 값들을 UInt8, UInt32로 포팅하여 사용해야 했다. 그러던 중 ... ... arithmetic overflowThread 1: Swift runtime failure: arithmetic overflow 이 오류를 만났다.해당 오류는 반드시 발생하는 것은 아니었다. (로직이 그랬음) 에러 문구에서 알 수 있듯이, 산술 오버플로우로 타입에서 처리할 수 있는 값 이상을 넣었기 때문에 발생했다. 문제가 있었던 변수는 UInt8 타입으로, ..

  • format_list_bulleted iOS/Objective-C
  • · 2025. 4. 7.
  • textsms
2024년 회고: 얼렁뚱땅 신입을 벗어나고 싶어

2024년 회고: 얼렁뚱땅 신입을 벗어나고 싶어

이제 막 개발을 한 지 2년 정도가 되었다. 새삼... ... 참 시간이 빠른 것 같기도 하고 느린 것 같기도 하다는 생각이 든다.회사에 들어온 지는 10개월! 이제 2월이면 1년차 개발자가 된다는 사실이 요상하다. ... ...작년 이맘 때 취준을 하고 있었다는 사실이 더 이상할지도 모르겠다. 아무튼.  2023년 한 해는 도전하고, 배우는 데 시간을 모두 쏟았고 2024년은 배우고, 또 적응하는 데 시간을 많이 쓴 것 같다. 왜 이렇게 시간이 빨리 갔지?! 싶을 정도로 순식간에 지나갔던 2024년이라고 해야 할까. :32023년은 유독 많은 걸 했고, 느리게 갔던 것 같은데 24년은 눈 한번 깜빡하니 지나간 느낌이다.      처음 회사에 들어왔을 때는 해당 코드를 쓴 사람의 의도나 방향보다는 단순히..

  • format_list_bulleted 회고
  • · 2025. 1. 11.
  • textsms

[SwiftUI Preview error] unrecognized selector sent to instance

Application Specific Information:        CoreFoundation:            *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIButton lbText]: unrecognized selector sent to instance 0x1052ce370' 이 오류가 왜 나는지는 알고 있었다.보통 swift 프로젝트에서 ObjC 라이브러리를 사용하게 되었을 때, other linker flag에 `-ObjC`를 추가 안 해 주면 해당 ObjC 파일을 스위프트 컴파일러가 찾지 못해 해당 오류가 발생하는 경우가 잦다. 하지만? 이번에는 그런 경우는 아니었따 . . ..

  • format_list_bulleted iOS/App
  • · 2024. 9. 26.
  • textsms
XCTestCase

XCTestCase

요즘에는 SwiftTest라고 SwiftUI에서 하는 테스트가 따로 있던데 우리 회사는 UIKit을 기반으로 Objc / Swift를 혼합하여 사용하고 있어 XCTest를 사용해야 했다.WWDC 즈음부터 공부하던 거라 ㄱ- 알고 보니 SwiftTest는 2024WWDC에서 새로 나온 거더라?! 전혀 몰라따 .... :3  XCTest의 처음과 끝먼저, 기본적인 순서는 다음과 같다.setUp(): 앱 실행test_something(): 기능 테스트tearDown(): 종료첨에 이런 순서를 알고 테스트를 했는데 갑자기? 막 오류가 나고? 이상하게 테스트가 진행되는 것이다.그러니까, 나는 … … setUp() → test_1() → test_2() → … → tearDown() 이런 순인 줄 알았는데 아니었다..

  • format_list_bulleted iOS/App
  • · 2024. 9. 17.
  • textsms
Frida를 이용한 iOS 메모리 분석

Frida를 이용한 iOS 메모리 분석

하게 된 계기팀 내에서 암호 고도화 프로젝트를 진행하는데, 관련하여 어떤 부분까지 암호화되어야 안전한지에 대해 의문이 생겼다. iOS 사용자의 입력 정보를 탈취하거나 하려면 어떻게 해야 할까? 탈취하면 어떤 정보가 나오는가? 간단히 시도해보았을 때 해커가 어느 부분까지 침투할 수 있는지를 살펴보고자 했다. (말은 거창하지만 실은 그닥 거창하지는 않다)    이용한 방법두 가지 방법을 이용하였다.memory dumpmethod hooking먼저, Memory Dump는 정적인 방법으로, 특정 시점의 메모리 상태를 알 수 있다. fridump를 이용하여 현재 메모리 상태를 dump 뜨고 관찰하는 방법은 조금 노가다에 가까웠다. (물론 내가 느끼기에는….) 아무래도 요며칠 동안 잡고 있으면서 가볍게 공부를 한..

  • format_list_bulleted iOS
  • · 2024. 7. 3.
  • textsms
[frida] error: externally-managed-environment

[frida] error: externally-managed-environment

$ python3 -m pip install requests # or any other moduleerror: externally-managed-environment× This environment is externally managed╰─> To install Python packages system-wide, try brew installxyz, where xyz is the package you are trying toinstall.If you wish to install a non-brew-packaged Python package,create a virtual environment using python3 -m venv path/to/venv.Then use path/to/venv/bin/pyt..

  • format_list_bulleted Cryptic
  • · 2024. 7. 3.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • ···
  • 13
  • navigate_next
공지사항
  • One day at a time
전체 카테고리
  • 분류 전체 보기 N
    • CS 지식
      • 컴퓨터 구조와 운영체제
      • Network
    • 알고리즘
    • iOS N
      • Objective-C N
      • App
      • Error
    • Cryptic
    • Study
    • TIL
    • 후기
    • 회고
      • 매주 회고
    • etc
최근 글
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바