최근 Objective-C로 된 소스를 Swift로 바꾸는 작업을 하고 있다. (이젠 거의 막바지라는 것이 믿기지 않는다.)Objective-C에서는 C와 동일한 타입으로 사용할 수 있었지만, Swift에서는 C의 unsigned char, unsigned int 값들을 UInt8, UInt32로 포팅하여 사용해야 했다. 그러던 중 ... ... arithmetic overflowThread 1: Swift runtime failure: arithmetic overflow 이 오류를 만났다.해당 오류는 반드시 발생하는 것은 아니었다. (로직이 그랬음) 에러 문구에서 알 수 있듯이, 산술 오버플로우로 타입에서 처리할 수 있는 값 이상을 넣었기 때문에 발생했다. 문제가 있었던 변수는 UInt8 타입으로, ..
요즘에는 SwiftTest라고 SwiftUI에서 하는 테스트가 따로 있던데 우리 회사는 UIKit을 기반으로 Objc / Swift를 혼합하여 사용하고 있어 XCTest를 사용해야 했다.WWDC 즈음부터 공부하던 거라 ㄱ- 알고 보니 SwiftTest는 2024WWDC에서 새로 나온 거더라?! 전혀 몰라따 .... :3 XCTest의 처음과 끝먼저, 기본적인 순서는 다음과 같다.setUp(): 앱 실행test_something(): 기능 테스트tearDown(): 종료첨에 이런 순서를 알고 테스트를 했는데 갑자기? 막 오류가 나고? 이상하게 테스트가 진행되는 것이다.그러니까, 나는 … … setUp() → test_1() → test_2() → … → tearDown() 이런 순인 줄 알았는데 아니었다..
하게 된 계기팀 내에서 암호 고도화 프로젝트를 진행하는데, 관련하여 어떤 부분까지 암호화되어야 안전한지에 대해 의문이 생겼다. iOS 사용자의 입력 정보를 탈취하거나 하려면 어떻게 해야 할까? 탈취하면 어떤 정보가 나오는가? 간단히 시도해보았을 때 해커가 어느 부분까지 침투할 수 있는지를 살펴보고자 했다. (말은 거창하지만 실은 그닥 거창하지는 않다) 이용한 방법두 가지 방법을 이용하였다.memory dumpmethod hooking먼저, Memory Dump는 정적인 방법으로, 특정 시점의 메모리 상태를 알 수 있다. fridump를 이용하여 현재 메모리 상태를 dump 뜨고 관찰하는 방법은 조금 노가다에 가까웠다. (물론 내가 느끼기에는….) 아무래도 요며칠 동안 잡고 있으면서 가볍게 공부를 한..
테스트를 하다 보면 꽤 자주 뜨는 오류이당. 더는 까먹지 않기 위해 정리하고자 한다. Simulator의 캐시 때문에 해당 오류가 뜨는 것 같다. 해결하기 위해서 stackoverflow의 도움을 받았는데, 해당 방법은 다음과 같다.Xcode를 닫고 terminal에 sudo chmod 1777 /tmp~/Library/Developer/CoreSimulator/Caches/dyld 폴더에 남아 있는 캐시를 삭제해 준다.Xcode 재실행! 방법이 상당히 간단한데, chmod 1777은 왜 하는거지? 싶어서 조금 찾아보았다. chmod 는 흔히 알고 있듯이 파일이나 디렉토리의 권한을 변경할 수 있는 명령어이다. 해당 명령어는 각 bit 자리수를 계산하여 설정할 수 있는데,read(r): 4write(r):..
Swift와 Objective-C에서 Swizzling과 Hooking은 비슷한 기술이지만, 다른 목적과 구현 방식을 가지고 있다. Swizzling런타임에서 method 구현을 변경하는 것을 의미하며, 일반적으로 클래스의 method를 다른 method로 교체하는 것을 의미한다. 이를 통해 기존의 method 동작을 수정하거나 확장할 수 있다.Swift와 Objective-C가 동적으로 동작하기 때문에, Swizzling이 가능하다. (정적으로 동작하는 C / C++과 같은 경우에는 method Swizzling이 불가능)Swizzling은 주로 디버깅이나 런타임에서의 동작 변경에 사용된다.+ (void)swizzleMethod { Class class = [self class]; ..
Privacy Manifest 때는 바야흐로 24년 2월 29일. Apple Development News가 올라왔다. 바로 Privacy Manifest에 관한 것이었는데, 처음 봤을 때는 이… … 이게 뭐지? 싶었다. 그랬다. 내가 보지 않은 2023 WWDC 영상 중 하나가 Privacy Manifest 관련이었던 것이다…. Get started with privacy manifests - WWDC23 - Videos - Apple Developer Get started with privacy manifests - WWDC23 - Videos - Apple Developer Meet privacy manifests: a new tool that helps you accurately identify ..
문제 상황 .app has comflicting provisioning settings. Invalid Provisioning Profile Signature. The provisioning profile included in the bundle com.blablabla.BlaBla [com.blablaba.BlaBla.pkg/Payload/BlaBla.app] cannot be used to submit apps to the Mac App Store until it has a valid signature from Apple. For more information, visit the macOS Developer Portal. 회사 프로젝트를 빌드하다 보면 간혹 이런 인증서 오류가 뜨면서 빌드가 안 될 때..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.