Neoself의 기술 블로그

XCode에서 Apple Watch 실기기로 디버깅 하기 본문

개발지식 정리/Swift

XCode에서 Apple Watch 실기기로 디버깅 하기

Neoself 2024. 10. 27. 15:04

XCode에서는 애플워치, 아이폰 등, 애플 생태계에 있는 기기들을 Simulator로 테스트 및 디버깅이 가능합니다. 하지만, 애플워치에서의 심박수 측정, WCSession 통신 등의 동작은 Simulator만으로는 테스트가 힘듭니다. 따라서 저는 여태껏 TestFlight로 앱을 배포하여 내부 테스트를 통해 로직 검증을 반복해왔었습니다...

무수한 App Store Connect 내부 배포기록들... 애플형님들 죄송합니다.

 

이러한 과정을 반복하면서 디버깅을 하다보니, 아래 문제점들이 있었습니다.

  • 매번 앱스토어에서의 앱 처리 절차와, 테스트 플라이트 업데이트 등 많은 시간이 불필요하게 소요
  • 이미 배포가 된 앱을 테스트하는 것이기에 콘솔 출력을 통한 디버깅 불가능
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

 

아이폰 개발자 모드가 활성화되지 않나요? 활성화하는 방법 알아보기

by 오준희   업데이트 시간 2024-10-21 / 업데이트 대상  iOS 16 iOS 18/17/16은 잠금 화면 등 시각적 변화가 두드러진 큰 업데이트입니다. 주목할 만한 변경 사항 외에도 여러 세부사항이 있습니다. 많은

www.tenorshare.kr

 

https://artieee.tistory.com/100

 

애플워치 개발자모드 활성화 시키기(feat. 애플워치로 빌드 및 실행이 되지 않을 때 꿀팁!)

시나리오 : 애플워치에서 앱을 실행하기 위해서는 애플워치에서 별도로 개발자 모드를 활성화 시켜줘야한다. 1.애플워치 설정 > Privacy & Security 를 클릭 2.스크롤로 쭈-욱 내려 Developer Mode를 클릭 3

artieee.tistory.com