일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- boilerplate 제거
- 파노라마 뷰
- React-Native
- ios
- privacyinfo.plist
- react-native-fast-image
- 3b52.1
- 앱 성능 개선
- requirenativecomponent
- Android
- 네이티브
- launchscreen
- 스켈레톤 통합
- 360도 이미지
- 스플래시스크린
- 스켈레톤 UI
- 360도 이미지 뷰어
- 리액트 네이티브
- Privacy manifest
- 리엑트 네이티브
- Native Module
- native
- Skeleton UI
- react
- 리액트
- launch screen
- 360도 뷰어
- React Native
- 라이브러리 없이
- panorama view
- Today
- Total
Neoself의 기술 블로그
XCode에서 Apple Watch 실기기로 디버깅 하기 본문
XCode에서는 애플워치, 아이폰 등, 애플 생태계에 있는 기기들을 Simulator로 테스트 및 디버깅이 가능합니다. 하지만, 애플워치에서의 심박수 측정, WCSession 통신 등의 동작은 Simulator만으로는 테스트가 힘듭니다. 따라서 저는 여태껏 TestFlight로 앱을 배포하여 내부 테스트를 통해 로직 검증을 반복해왔었습니다...
이러한 과정을 반복하면서 디버깅을 하다보니, 아래 문제점들이 있었습니다.
- 매번 앱스토어에서의 앱 처리 절차와, 테스트 플라이트 업데이트 등 많은 시간이 불필요하게 소요
- 이미 배포가 된 앱을 테스트하는 것이기에 콘솔 출력을 통한 디버깅 불가능
func syncPendingData(forced: Bool = false) {
// 디버깅을 위한 메시지 iOS로 전송
WatchConnectivityManager.shared.sendMessage(["debug":"syncPendingData1"])
guard !isSyncing || forced else { return }
// 디버깅을 위한 메시지 iOS로 전송
WatchConnectivityManager.shared.sendMessage(["debug":"syncPendingData2"])
syncQueue.async { [weak self] in
self?.isSyncing = true
let fetchRequest: NSFetchRequest<HeartRateEntity> = HeartRateEntity.fetchRequest()
fetchRequest.predicate = NSPredicate(format: "isSynced == NO")
// 디버깅을 위한 메시지 iOS로 전송
WatchConnectivityManager.shared.sendMessage(["debug":"syncPendingData3"])
...
따라서, 울며겨자먹기로 WCSession을 통해 아이폰 화면에서 콘솔 내용을 확인해보며, 동작 테스트를 진행해왔었습니다.
근데, XCode에서 개발중인 앱을 실기기로 바로 테스트할수 있더라고요??
개발중인 WatchOS + iOS 프로젝트 실시간으로 테스트하기
0. 아이폰에서의 개발자 모드 활성화
이를 위해선 디버깅을 하고자 하는 실 기기에서 개발자 모드 활성화가 필요합니다. 먼저 라이트닝 케이블로 맥북과 아이폰을 유선으로 연결합니다. 처음으로 유선연결을 시도할 경우, 컴퓨터 신뢰 팝업이 표시되는데, 이를 수락해줘야만 개발자 모드 활성화 선택지가 설정 창에서 생깁니다.
신뢰를 선택할 경우, 설정 앱 > 개인정보 보호 및 보안 > 맨 하단에 개발자 모드 토글이 생기게 됩니다. 이를 눌러 아이폰에 대한 개발자 모드를 우선 활성화 시켜줍니다.
1. 애플워치에서의 개발자 모드 활성화
애플워치가 아이폰이 동일한 AppleID를 공유하고 있다면, 아이폰에 개발자 모드가 활성화 되면서 애플워치에서도 신뢰 관련 팝업이 자동으로 표시됩니다.(이때 표시가 되지 않는다면, 애플워치를 재시동해주어야 합니다)
신뢰를 선택할 경우, 아이폰과 마찬가지로, 워치앱에서의 설정 > 개인정보 보호 및 보안 > 최하단에 개발자 모드 토글이 생깁니다. 마찬가지로 개발자 모드를 활성화 시켜줍니다.
2. XCode에서 연동된 실제 기기 확인
XCode가 실행된 Mac 또한 동일한 AppleID를 사용하고 있다면, 개발자 모드가 활성화된 기기를 Xcode로 실시간 확인이 가능합니다. Window > Devices and Simulators 를 선택할 경우, 아래와 같이 연결된 실 기기들의 목록 확인이 가능합니다.
3. XCode Build의 Run Destination 선택하기
실기기가 Xcode와 연결이 되어있다면, XCode 상단의 Run Destinations 목록에서 선택이 가능해집니다. 실기기 선택 후, Build를 진행하게 되면, 프로젝트가 실기기로 설치되며, print로 지정한 출력문 또한 Xcode의 Executable 콘솔창에서 확인이 가능합니다. 저와 같이 WatchOS와 iOS 앱을 모두 필요로 하는 프로젝트여도, Build할 Target Scheme 상관없이 양 쪽 기기에서 모두 빌드가 반영되기 때문에, 스키마 선택 과정은 고려하지 않으셔도 됩니다.
이렇게 간단하게 Apple Watch 실기기로만 검증이 가능한 로직들을 Xcode로 디버깅할 수 있었네요...
저와 같은 피해자가 없길 바라며 글 작성 마치겠습니다.
감사합니다.
Reference
https://www.tenorshare.kr/ios-16/ios-16-developer-mode-not-showing.html
https://artieee.tistory.com/100
'개발지식 정리 > Swift' 카테고리의 다른 글
Keychain+UserDefaults+Combine을 활용해 iOS 로그인 플로우 고도화하기 (1) | 2024.11.07 |
---|---|
Swift 프로토콜 기반 아키텍처로 리팩토링하기 (1) | 2024.10.31 |
WatchOS에서의 CoreData 사용기 - 데이터 손실 없이 안정적으로 서버에 데이터 전송하기 (1) | 2024.10.25 |
UIKit + MVC 아키텍처 패턴 사용기 (3) | 2024.10.24 |
iOS Core Data 프레임워크로 데이터 구조화 및 유지하기 (1) | 2024.10.24 |