티스토리 뷰
최근에 기존에 있던 앱에 기능을 추가해주고 싶어서
위젯 쪽을 해보는데 시뮬레이터에는 돌아가는데 실제 기기에서는 안돌아가는 아름다운(?) 버그가 나서
저와 같은 고통(?)을 겪으시는 분들을 위해 올려봅니다.
일단 제가 본 버그는 아래처럼 생겼습니다.
버그 내용
SendProcessControlEvent:toPid: encountered an error: Error Domain=com.apple.dt.deviceprocesscontrolservice Code=8 "Failed to show Widget 'com.testproject.TestWidget.TTestWiddget' error: Error Domain=FBSOpenApplicationServiceErrorDomain Code=1 "The request to open "com.apple.springboard" failed." UserInfo={NSLocalizedFailureReason=The request was denied by service delegate (SBMainWorkspace)., BSErrorCodeDescription=RequestDenied, NSUnderlyingError=0x870a3aac0 {Error Domain=SBAvocadoDebuggingControllerErrorDomain Code=1 "Failed to get descriptors for extensionBundleID (com.testproject.TestWidget.TTestWiddget)" UserInfo={NSLocalizedDescription=Failed to get descriptors for extensionBundleID (com.testproject.TestWidget.TTestWiddget)}}, FBSOpenApplicationRequestID=0x7cb6, NSLocalizedDescription=The request to open "com.apple.springboard" failed.}." UserInfo={NSLocalizedDescription=Failed to show Widget 'com.testproject.TestWidget.TTestWiddget' error: Error Domain=FBSOpenApplicationServiceErrorDomain Code=1 "The request to open "com.apple.springboard" failed." UserInfo={NSLocalizedFailureReason=The request was denied by service delegate (SBMainWorkspace)., BSErrorCodeDescription=RequestDenied, NSUnderlyingError=0x870a3aac0 {Error Domain=SBAvocadoDebuggingControllerErrorDomain Code=1 "Failed to get descriptors for extensionBundleID (com.testproject.TestWidget.TTestWiddget)" UserInfo={NSLocalizedDescription=Failed to get descriptors for extensionBundleID (com.testproject.TestWidget.TTestWiddget)}}, FBSOpenApplicationRequestID=0x7cb6, NSLocalizedDescription=The request to open "com.apple.springboard" failed.}., NSUnderlyingError=0x870aad9a0 {Error Domain=FBSOpenApplicationServiceErrorDomain Code=1 "The request to open "com.apple.springboard" failed." UserInfo={NSLocalizedFailureReason=The request was denied by service delegate (SBMainWorkspace)., BSErrorCodeDescription=RequestDenied, NSUnderlyingError=0x870a3aac0 {Error Domain=SBAvocadoDebuggingControllerErrorDomain Code=1 "Failed to get descriptors for extensionBundleID (com.testproject.TestWidget.TTestWiddget)" UserInfo={NSLocalizedDescription=Failed to get descriptors for extensionBundleID (com.testproject.TestWidget.TTestWiddget)}}, FBSOpenApplicationRequestID=0x7cb6, NSLocalizedDescription=The request to open "com.apple.springboard" failed.}}}
Domain: DTXMessage
Code: 1
User Info: {
DVTErrorCreationDateKey = "2023-04-18 08:18:27 +0000";
}
--
해결 방법
1. 프로젝트 > Targets 에 있는 Widget 클릭 > Build Settings > Deployment > iOS Deployment Target 을 변경해주세요.
-> 저는 테스트 기기 버전을 고려해 16.0 으로 변경했습니다.
2. 빌드 버전에 따라 작동하지 않는 부분이 생길수있습니다. 해당 부분은 주석처리 혹은 버전 처리를 해주세요.
-> 저는 자동으로 생성된 LiveActivity와 관련된 부분을 모두 주석으로 처리했습니다.
3. Edit Scheme.. 를 열어주세요.
4. Run > Arguments > Environment Variables > _XCWidgetKind 칸에 위젯 이름을 적어주세요.
-> 위젯이름은 코드에서 아래처럼 적혀있는 class 의 이름을 적어주시면 됩니다.
struct TTestWiddget: Widget {
let kind: String = "TTestWiddget"
var body: some WidgetConfiguration {
....
....
}
}
3일간의 사투(?) 끝에 저는 이렇게 했더니 해결이 되었습니다.
저와 같은 버그를 겪으시는 분들에게 도움이되길 바라며 올려봅니다.
오늘도 파이팅입니다ㅠ
'iOS개발 > 기타' 카테고리의 다른 글
Xcode Error "?? must be set in the app's Info.plist" (0) | 2023.06.27 |
---|---|
Xcode widget [NSConcreteFileHandle fileDescriptor]: No such file or directory (0) | 2023.04.25 |
Xcode 13.4 에러 : Command PhaseScriptExecution failed with a nonzero exit code (0) | 2023.04.06 |
Xcode 14.3 File not found: libarclite_iphonesimulator.a 에러 (0) | 2023.04.03 |
앱스토어 번들ID가 안보일때 등록 방법 (Identifier 등록) (0) | 2023.03.28 |