실제 Apple Watch에서 디버그 : 응용 프로그램 확인 실패
오늘 실제 Apple Watch에서 내 WatchKit 앱을 디버깅하려고했습니다. Xcode에서 디버그 버튼을 누른 후 기본 iPhone 앱이 제대로 설치되었지만 Apple Watch는 Failed to install xxx, error : Application Verification Failed 메시지 만 표시했습니다 . WatchKit 앱이 설치되지 않습니다.
나는 이것을 알고 있었다 : WatchKit App Rejected for "Failing to Install" ,하지만 내 Xcode 프로젝트 파일이 괜찮 기 때문에 도움이되지 않았습니다.
실제 Apple Watch에서 디버그 작업을 수행하는 방법은 무엇입니까?
또한 Apple Watch의 UDID를 Apple 개발자 포털에 추가하고이 UDID를 포함하도록 개발 프로비저닝 프로파일을 업데이트해야합니다.
UDID는 Xcode의 Devices 창 에서 얻을 수 있습니다 . 페어링 후 Apple Watch의 정보가 iPhone 정보 아래에 자동으로 표시됩니다.
글을 쓰는 시점에서 이것은 어디에도 문서화되지 않은 것으로 보이며 Apple Watch의 오류 메시지는 특별히 도움이되지 않았습니다. 그래서 저는이 시도-오류 레슨이 여러분의 번거 로움을 덜어주기를 바랍니다.
위에서 설명한 UDID 문제가 범인 일 수 있지만 제 경우에는 Xcode에서 자동으로 처리했습니다. 장치 로그 (메뉴 창> 장치)를 보면 다음과 같이 표시됩니다.
companionappd [350] : WatchKit 응용 프로그램을 설치하지 못했습니다. 오류 : (Error Domain = LaunchServicesError Code = 0 "작업을 완료 할 수 없습니다. (LaunchServicesError 오류 0.)"UserInfo = 0x14e2f690 {Error = ApplicationVerificationFailed, ErrorDetail = -402620394, ErrorDescription = 다음의 코드 서명을 확인하지 못했습니다 : 0xe8008016 ( 프로비저닝 프로필에서 허용되지 않는 자격이 발견됨 )})
... 빌드 프로세스에서 포착되지 않았거나 화면상의 오류에서 명시 적으로 나와 공유되지 않은 문제입니다.
그래서 저는 자격을 살펴 보았습니다.
예, beta-reports-active
TestFlight에 제출하기 위해 수동으로 추가해야 했습니다.
TestFlight (및 기본 Entitlements 이외의 항목)를 사용하는 경우 플래그가 필요한 것 같지만 로컬에서 디버깅하는 경우 플래그가 필요 하지 않습니다 .
따라서이 모순에 대한 나의 해결책은 다음 과 같이 두 개의 권한 파일 을 갖는 것입니다.
여태까지는 그런대로 잘됐다. 앱 및 Watch Extension이 예상대로 실행 중입니다.
기본적으로 두 단계를 수행해야합니다.
- 개발자 포털에 Apple Watch의 UDID 추가
- 시계를 지원하도록 프로비저닝 프로필 업데이트
XCode는 다음과 같이 전체 프로세스를 관리 할 수 있습니다.
1. iPhone / iPad에 앱 배포
2. iPhone / iPad (시뮬레이터가 아님)에서도 WatchKit 앱을 시작합니다.
3. 코드 서명 오류 메시지가 나타나면 문제 해결을 선택합니다.
4. 개발 팀을 선택하고 나머지는 XCode가 알아서합니다.
이에 대한 짧은 튜토리얼 도 작성했습니다 .
Xcode의 "장치"디스플레이에서 아래로 스크롤하는 것을 잊지 마십시오. Xcode-> 창-> 장치-> "NameOfiPhone"을 선택한 다음 오른쪽의 "장치 정보"창에서 아래로 스크롤합니다. 그러면 페어링 된 장치가 표시됩니다. 네, 인정합니다 :-)
각각에 대해 AppID가 있어야합니다. 예를 들어 앱의 번들 식별자가 "com.xyz"인 경우 3 개의 appid와라는 프로비저닝 프로파일이 필요합니다.
- com.xyz
- com.xyz.watchkitapp
- com.xyz.watchkitapp.watchkitextension
각각에 대한 프로비저닝을 생성하고 관련 대상에 할당합니다.
이 문제가 해결됩니다. iPhone 및 시계 용 UUID를 이러한 프로필에 추가해야합니다.
또한 모든 대상의 버전이 동일해야합니다.
'development' 카테고리의 다른 글
이모티콘 (이모티콘)보기 / 키보드 레이아웃 구현 (0) | 2020.12.12 |
---|---|
C ++에서 빠른 텍스트 파일 읽기 (0) | 2020.12.12 |
IntelliJ IDEA 및 Gradle- '(groovy.lang.Closure)'에 적용 할 수 없습니다. (0) | 2020.12.12 |
왜 npm을 사용하여 얀을 설치하지 않습니까? (0) | 2020.12.12 |
내장 유형의 소멸자 (int, char 등) (0) | 2020.12.12 |