Dev-iOS/iOS 14

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

[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

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

Localizable.xcstrings 사용 팁 (Localizable.string에서 전환 시)

XCode 15.2 부터 사용 가능한 Localizable.xcstrings를 기존 Localizable.strings에서 전환했을 때 경험했던 내용들을 작성해 보았다.  Localizable.xcstrings를 처음 만들고 빌드 시코드에서 'LocalizedStringKey'를 사용하는 모든 텍스트들(ex. Text("test"))은 자동으로 Localizable.xcstrings에 key로 추가된다.자동으로 추가된 key는 삭제할 수 없다.source code로 변환 후 삭제해도 빌드하면 자동으로 생성된다.자동으로 추가된 key를 기존 tw처럼 사용하고 싶으면 코드에서 사용하는 'LocalizedStringKey'를 기존 Localizable.strings에서 사용하던 key로 변환하고, 빌드를 한다..

Dev-iOS/iOS 2024.05.23

[iOS] CloudKit 학습 - CloudKit은 언제 사용할까?

CloudKit은 개발자들이 애플의 iCloud 서비스를 이용하여 앱의 데이터를 저장하고 동기화하는 기능을 제공하는 프레임워크입니다. 그렇다면 CloudKit을 언제 사용할까요? 여러가지 경우들이 있겠지만, 보통 아래와 같은 상황에서 사용하지 않을까 싶습니다. :D 1. 여러 기기 간 데이터 동기화 앱의 데이터가 사용자의 여러 기기 간에 동기화되어야 하는 경우 CloudKit을 사용할 수 있습니다. 예를 들어, 할 일 목록 앱에서 사용자가 여러 기기에서 동일한 할 일 목록을 보고 수정할 수 있어야 하는 경우입니다. 앱에서 CloudKit을 사용하기 위해 먼저 설정해야 할 것은 컨테이너와 데이터베이스입니다. 앱에 맞게 개인 데이터베이스와 공용 데이터베이스의 접근 권한을 설정해야 합니다. 그 다음으로, 앱에..

Dev-iOS/iOS 2023.07.20

[iOS] CloudKit 학습 - CloudKit 이해

본 문서는 학습을 위해 작성한 내용이며, 추가 내용 보강이나 수정이 이루어질 수 있습니다. CloudKit은 Apple이 개발한 클라우드 서비스 프레임워크로, 애플의 iCloud 서비스를 이용하여 앱의 데이터를 저장하고 동기화할 수 있도록 도와줍니다. CloudKit은 iOS, macOS, tvOS, watchOS에서 사용할 수 있습니다. 개발자들은 CloudKit을 사용하여 앱의 데이터를 안전하게 저장하고 관리할 수 있으며, 여러 기기 간의 데이터 동기화 및 사용자 간의 데이터 공유를 쉽게 구현할 수 있습니다. CloudKit의 주요 기능과 컴포넌트들은 아래와 같습니다. 컨테이너 (Container) 데이터베이스 (Database) 존 (Zone) 쿼리 (Query) 원격알림 (Push Notifica..

Dev-iOS/iOS 2023.07.19

[iOS 빌드] LLVM 컴파일러 (2)

LLVM 컴파일러 (1) 에 이어서... https://steady-dev.tistory.com/204 [iOS 빌드] LLVM 컴파일러 (1) LLVM 컴파일러이란? LLVM은 Low-Level Virtual Machine의 약자로, 컴파일러 및 코드 최적화 및 분석 도구의 집합체입니다. iOS 앱 개발에서 LLVM 컴파일러는 Objective-C 또는 Swift 코드를 iOS 디바이스에서 실행 steady-dev.tistory.com 이전 포스팅에서 LLVM 컴파일러는 Swift 코드와 Objective-C 코드를 기계어 코드로 변환한다고 했습니다. 하지만 더 자세하게 들어가면 LLVM 컴파일러를 통해 기계어 코드로 변환하기 전에 LLVM IR 코드로 변환된 후 기계어 코드로 변환됩니다. LLVM I..

Dev-iOS/iOS 2023.07.17