Dev-iOS 30

Xcode 에서 GPX 파일 인식이 안될 때

Xcode 16.4에서 GPX 파일이 회색으로 나와서 선택 안 될 때, 이렇게 해결했어요! 🔧어느 평일 오후, iOS 앱 개발하면서 위치 기능을 테스트하려고 했는데 "엥? GPX 파일이 왜 회색으로 나와서 클릭이 안 되지?" 하는 당황스러운 상황이 발생했어요. Xcode 16.4 버전에서 갑자기 GPX 파일 선택이 안 되는 황당한 버그를 만나게 된 거죠. 😤 구글링해보니 저와 똑같은 증상으로 고생하는 개발자들이 꽤 많더라고요. 그래서 "이럴 때 얼른 해결책을 찾아야지" 싶은 촉이 발동해서 Stack Overflow와 각종 포럼을 뒤져가며 해결 방법을 찾아봤답니다!1. 문제 상황: GPX 파일이 선택이 안 돼요! 😱Xcode에서 위치 시뮬레이션을 하려고 하는데:Debug → Simulate Locat..

Dev-iOS/iOS 2025.08.31

디지털 인증서와 공개키 기반구조(PKI) 이해하기

디지털 인증서의 정의와 역할 디지털 인증서(공개키 인증서)는 전자적인 “신분증” 역할을 하는 문서입니다.웹사이트, 개인, 조직 등의 신원을 증명하고 해당 주체에 할당된 공개키의 유효성을 입증해주는 데이터 파일이라 볼 수 있습니다. 쉽게 말해, 디지털 인증서는 어떤 사람이나 서버의 공개키에 대한 신뢰할 수 있는 보증서입니다.이를 통해 상대방이 제시하는 공개키가 정말 그 당사자의 것인지를 확인할 수 있으며, 안전하게 암호화 통신을 시작하거나 전자 서명을 검증할 수 있습니다. 디지털 인증서가 없다면, 공개키 암호 방식에서 공개키의 주인이 누구인지 신뢰할 방법이 없어 중간자 공격 등의 위험에 노출되기 쉽습니다. 따라서 디지털 인증서는 인터넷 상에서 신원 확인(Authentication)과 데이터 암호화(Encr..

Dev-iOS 2025.05.21

iOS 버전별 점유율 - 2025년 5월 기준

iOS 18이 출시되기 전 iOS 17점유율은 아래에서 확인이 가능하다.https://lafortune.tistory.com/59 iOS 버전별 점유율 - 2024년 8월 기준iOS 및 iPadOS 버전별 점유율 (2024년 8월 기준)2024년 2월 기준 점유율에 비해서 iOS 17 및 iPad 17 점유율이 다소 증가된 것을 확인할 수 있다.https://lafortune.tistory.com/39 iOS 버전별 점유율 - 2024년 2월 기준ilafortune.tistory.com 1. iPhone 점유율1) 4년간 출시된 단말들 버전 점유율iOS 1876%iOS 1719%iOS 16 및 이전 버전5% 2) 모든 단말들 버전 점유율iOS 1868%iOS 1719%iOS 16 및 이전 버전13% ..

Dev-iOS 2025.05.15

[SwiftUI] MapKit - 기본

MapKit 설명SwiftUI는 iOS, macOS, watchOS 및 tvOS에서 사용자 인터페이스를 구축하는 데 사용되는 Map 프레임워크입니다. iOS 기준으로 iOS 14버전 이상부터 사용할 수 있습니다.SwiftUI에서 제공하는 Map 뷰를 사용하면 지도를 표시하고, 마커와 같은 추가 요소를 사용하여 위치 정보를 시각화할 수 있습니다. SwiftUI Map 예시 코드import SwiftUIimport MapKitstruct ContentView: View { @State private var region = MKCoordinateRegion( center: CLLocationCoordinate2D(latitude: 37.7749, longitude: -122.4194), ..

Dev-iOS/iOS 2024.09.09

[SwiftUI] 프로퍼티 래퍼 (Property Wrapper)

프로퍼티 래퍼란?프로퍼티 래퍼는 Swift에서 특정한 방식으로 프로퍼티를 동작시키는 구조를 정의하는 기능입니다.SwiftUI에서는 이 프로퍼티 래퍼를 통해 다양한 동작을 캡슐화하고 코드를 깔끔하게 유지하는데 도움이 됩니다. @State, @Binding, @ObservedObject, @EnvironmentObject 등이 대표적인 예입니다. 왜 프로퍼티 래퍼를 사용하는가?프로퍼티 래퍼를 사용하면 복잡한 로직을 래퍼 내부에 숨기고, 코드의 가독성을 향상시키며, 일관된 방식으로 특정 기능을 제공할 수 있습니다. 예를 들어, SwiftUI의 @State 프로퍼티 래퍼를 사용하면, UI의 상태를 안전하게 관리하고 UI가 상태의 변화를 자동으로 반영할 수 있게 만듭니다.struct ContentView: Vie..

Dev-iOS/SwiftUI 2024.09.09

errorHandler: NO with WCErrorCodeDeliveryFailed 발생 시

Watch - iPhone간에서 데이터를 전송하는데, WCSeesion이 활성화되어 있고, Reachable 상태인데도 아래와 같은 이벤트 로그가 발생하면서 데이터 송, 수신이 되지 않을때가 있다. WCSession _onqueue_notifyOfMessageError:messageID:withErrorHandler:] 0B2139AA-E8FA-4F2D-A368-20D058F45978 errorHandler: NO with WCErrorCodeDeliveryFailed 이런 경우에는 데이터를 전송하는 측에서 WCSession.default.sendMessage(message, replyHandler: nil) { error in print("Error sending message: \(error.l..

Dev-iOS/iOS 2024.09.05

Apple Watch - iPhone 간 데이터 전송 시

1.  Apple Watch -> iPhone으로 데이터 전송 시1-1. Apple Watch 구현WCSession은 init 함수에서 할 필요는 없으나, WCSessionDelegate 함수들은 구현해줘야 한다.임의의 sendMessageToiPhone 함수를 통해서 WCSession을 통해 활성화되고 Reachable이 된다면 데이터를 전송한다.전송하는 데이터 형태는 Dictionary형태로 전송 가능하다.import WatchConnectivityclass WatchSessionManager: NSObject, WCSessionDelegate { override init() { super.init() if WCSession.isSupported() { ..

Dev-iOS/iOS 2024.09.05

iOS 버전별 점유율 - 2024년 8월 기준

iOS 및 iPadOS 버전별 점유율 (2024년 8월 기준)2024년 2월 기준 점유율에 비해서 iOS 17 및 iPad 17 점유율이 다소 증가된 것을 확인할 수 있다.https://lafortune.tistory.com/39 iOS 버전별 점유율 - 2024년 2월 기준iOS 및 iPadOS 버전별 점유율 (2024년 2월 기준) 1. iPhone 점유율1) 4년간 출시된 단말들 버전 점유율iOS 1776%iOS 1618%iOS 15 및 이전 버전6% 2) 모든 단말들 버전 점유율iOS 1766%iOS 1623%iOS 15 및 이전 버전11%2. iPlafortune.tistory.com  1. iPhone 점유율1) 4년간 출시된 단말들 버전 점유율iOS 1786%iOS 1611%iOS 15 및 ..

Dev-iOS/iOS 2024.08.23