DTDeviceKit:无法为应用标识符 XXX 启动软禁服务

Posted

技术标签:

【中文标题】DTDeviceKit:无法为应用标识符 XXX 启动软禁服务【英文标题】:DTDeviceKit: Could not start house arrest service for app identifier XXX 【发布时间】:2016-09-13 07:43:13 【问题描述】:

我正在使用 Xcode 7.3.1 并通过我的设备“iPhone 1”(运行 ios 9.3.5 的 iPhone 6)上的命令行执行 XCTest:

xcodebuild \
  -scheme Todo \
  -project Todo.xcodeproj \
  -destination "platform=iOS,name=iPhone 1"\
clean build test

构建成功,但是编译测试文件后失败:

2016-09-13 14:51:32.604 xcodebuild[79689:2064116]  DTDeviceKit: Could not start house arrest service for app identifier com.example.Todo [Error Domain=com.apple.dtdevicekit Code=-402653093 "Too many instances of this service are already running." UserInfo=NSLocalizedFailureReason=Too many instances of this service are already running., com.apple.dtdevicekit.stacktrace=(
    0   DTDeviceKitBase                     0x000000010fead3cb DTDKCreateNSError + 113
    1   DTDeviceKitBase                     0x000000010feadb09 DTDK_AMDErrorToNSError + 791
    2   DTDeviceKitBase                     0x000000010febf2f5 __70-[DTDKRemoteDeviceConnection startHouseArrestServiceForAppIdentifier:]_block_invoke + 100
    3   DTDeviceKitBase                     0x000000010febe1d1 __48-[DTDKRemoteDeviceConnection futureWithSession:]_block_invoke_4 + 22
    4   DTDeviceKitBase                     0x000000010feb0317 __DTDKExecuteInSession_block_invoke + 38
    5   DTDeviceKitBase                     0x000000010feaf940 __DTDKExecuteWithConnection_block_invoke_2 + 477
    6   DTDeviceKitBase                     0x000000010feaf73c __DTDKExecuteWithConnection_block_invoke + 107
    7   libdispatch.dylib                   0x00007fff99bda40b _dispatch_client_callout + 8
    8   libdispatch.dylib                   0x00007fff99bdb9f2 _dispatch_barrier_sync_f_invoke + 74
    9   DVTFoundation                       0x0000000106400bef DVTDispatchBarrierSync + 206
    10  DVTFoundation                       0x00000001063dd59b -[DVTDispatchLock performLockedBlock:] + 116
    11  DTDeviceKitBase                     0x000000010feaf646 DTDKExecuteWithConnection + 223
    12  DTDeviceKitBase                     0x000000010feb02a1 DTDKExecuteInSession + 121
    13  DTDeviceKitBase                     0x000000010febe108 __48-[DTDKRemoteDeviceConnection futureWithSession:]_block_invoke_3 + 117
    14  DVTFoundation                       0x00000001063fff4b __DVTDispatchAsync_block_invoke + 827
    15  libdispatch.dylib                   0x00007fff99be593d _dispatch_call_block_and_release + 12
    16  libdispatch.dylib                   0x00007fff99bda40b _dispatch_client_callout + 8
    17  libdispatch.dylib                   0x00007fff99becbd7 _dispatch_async_redirect_invoke + 1733
    18  libdispatch.dylib                   0x00007fff99bda40b _dispatch_client_callout + 8
    19  libdispatch.dylib                   0x00007fff99bde29b _dispatch_root_queue_drain + 1890
    20  libdispatch.dylib                   0x00007fff99bddb00 _dispatch_worker_thread3 + 91
    21  libsystem_pthread.dylib             0x00007fff9b5d94de _pthread_wqthread + 1129
    22  libsystem_pthread.dylib             0x00007fff9b5d7341 start_wqthread + 13
), NSLocalizedRecoverySuggestion=Too many instances of this service are already running., NSLocalizedDescription=Too many instances of this service are already running.]
2016-09-13 14:51:32.918 xcodebuild[79689:2063388] Error Domain=IDETestOperationsObserverErrorDomain Code=5 "Early unexpected exit, operation never finished bootstrapping - no restart will be attempted" UserInfo=NSLocalizedDescription=Early unexpected exit, operation never finished bootstrapping - no restart will be attempted

在 Xcode 中运行测试也没有成功。它总是会因这些帖子中描述的错误而失败:

dyld: could not load inserted library Xcode 7.0 XCTest dyld: could not load inserted library IDEBundleInjection

我已经尝试了帖子中建议的解决方案(即修复配置文件和代码签名),但没有帮助。有没有人遇到过类似的问题?

【问题讨论】:

github.com/appium/appium/issues/7192 【参考方案1】:

我试图确定DTDeviceKit 是否在我的机器上运行,但它没有。我的下一个怀疑是它可能在手机上运行。

重启手机后就可以了。

【讨论】:

太糟糕了,没有办法解决这个问题,而无需每次都重新启动手机......我希望苹果意识到这个错误并会修复它...... 重启手机也适用于我。糟透了,没有更好地理解为什么会发生这种情况。【参考方案2】:

我向苹果提交了技术支持请求。原来这是一个影响 32 位设备的错误。因此,如果您在 64 位设备上进行测试,则不会出现此问题。

【讨论】:

我刚刚在 64 位设备中看到它。我认为在此类设备中体现出来需要更长的时间。 好的,最好让苹果知道,如果是这种情况,他们可能会更努力地修复它:) 也许您可以告诉与您合作的支持工程师? 很遗憾,它是一个公司帐户,所以不能再访问了 在连接到 Mac Jenkins slave 的 iPhone 4S 和 iPhone 6S 上发生。每次发生这种情况都重启设备很烦人。

以上是关于DTDeviceKit:无法为应用标识符 XXX 启动软禁服务的主要内容,如果未能解决你的问题,请参考以下文章

DTDeviceKit:设备类型空

标识符为“xxx.yyy.zzz”的应用 ID 不可用。提交新版本时请输入不同的字符串

找不到匹配的配置文件... appID xxx.xxx 与标识符 xxx.xxxTests 不匹配

signpass错误:无法找到pass.com.xxx.xxxx的标识

sql语句,无法绑定由多个部分组成的标识符 "xxx"

Transportert添加APP时提示:找不到合适的应用程序记录。请验证您的捆绑标识符“xxx”是否正确。